240 likes | 393 Views
Databehandling. Ett datorprogram består i huvudsak av En beskrivning av de data som skall behandlas i programmet En algoritm där vi med hjälp av programsatser beskriver hur data skall matas in, bearbetas och beräknas samt matas ut. indata. bearbetning. utdata. Uppstart av program.
E N D
Databehandling Ett datorprogram består i huvudsak av En beskrivning av de data som skall behandlas i programmet En algoritm där vi med hjälp av programsatser beskriver hur data skall matas in, bearbetas och beräknas samt matas ut indata bearbetning utdata
Uppstart av program Primärminne (RAM) Sekundärminne Programinstruktioner Program X (maskinkod) Operativsystemet ”ladda X” ”starta X” Processor (CPU) ”starta X” Styrenhet
Datorns språk • Bits och bytes • Binärkod – Maskinkod • Maskininstruktion • operationskod + operanddel • Instruktionscykel • Hämtning av instruktion • Avkodning • Aritmetisk och logisk bearbetning • Spara resultatet • Assembler
Maskinkod • Varje dator har ett ”maskinspråk” • Maskinspråket är ”binärt” (ettor & nollor) • Maskinspråket har ett begränsat antal möjliga instruktioner (grundläggande aritmetik, repetitioner, mm) • Maskinspråket är hårt knutet till processortypen (därför kan ett program inte flyttas till vilken dator som helst) 01001001101011100100110011001100110101001100011010101001010100101
Datorns språk Utenhet 101010101 101010101 Processor Primärminne 101010101 101010101 Inenhet
En bit om bitar • En bit (binary digit) • Är den minsta dataenheten • Kan ha två värden (noll eller ett) • Kan representera numeriska tal, alfanumeriska tecken eller datorinstruktioner
Fler bitar • Varje bit kan användas för att lagra lite information: • Svaret på en ja/nej-fråga • En signal för att slå på eller av något • Flera bitar tillsammans kan grupperas för att lagra mer information: • 8 bitar (en byte) kan kombineras på 256 olika sätt, dvs kan betyda 256 olika saker!
Binära tal Decimalt Binärt 0010 0010 = 34 1000 0010 = 130 Byte = 8 bitar = 28 Kombinationer dvs 256 st KByte = 210 Byte = 1024 Byte MByte = 220 Byte = 1048576 Byte ASCII
Bitar som tecken • ASCII - American Standard Code for Information Interchange • Mest spridda teckenuppsättningen, representerar varje tecken som en unik 7-bitars kod. (Den “åttonde” biten användes ibland som en slags “kontrollbit”)
Bitar som instruktioner • Datorn lagrar programmen som en samling av bitar. • Exempelvis skulle 01101010 kunna vara instruktionen för att addera ihop två tal • En annan instruktion kan vara att hitta var i primärminnet ett tal är lagrat…
Datorn Hur instruerar man en dator? Förutsättning: Datorns processor begriper bara maskinspråksinstruktioner. Lösning: Källkoden måste översättas till maskinkod, vilket kan ske på olika sätt.
Programexekvering Primärminne (RAM) Programinstruktioner Programdata 2 1 Hämta instruktion Hämta data Lagra data Processor (CPU) Styrenhet Aritmetisk-/logisk enhet 2 3 Exekvera Avkoda Instruktionsregister Dataregister 4
Assembler • För många processorer finns ett särskilt assembler-språk • Assembler innehåller i princip ett ”kommando” för varje instruktion processorn kan utföra. • Översättaren från assembler till maskinkod kallas assemblator mov( start, eax ); breakif( eax > stop ); yield(); inc( start );
Högnivåspråk • Den tredje generationens språk är ”processoroberoende”, dvs att språket inte är direkt styrt utav vilka instruktioner processorn kan hantera • Om ett program skrivet i ett högnivåspråk kan köras på en viss dator är beroende av om det finns en kompilator eller interpretator för språket till den datorns processor. • Högnivåspråken är mer likt det talade språket, eller åtminstone mer lättförståeligt… IF b > c THEN ADD b TO a END IF
laddning exekvering Kompilering Kompilator källkod översättning Andra objekt-moduler Objekt-modul System-bibliotek Länkare länkning Laddmodul (körbart program) indata utdata
Interpretering Interpretator källkod översättning internkod interpretering indata utdata
Klass-bibliotek System-bibliotek laddning översättning Den virtuella maskinen Kompilator källkod översättning Virtuell maskin bytekod indata exekvering utdata
Statisk länkning = + objektkod objektkod systemfunktion programmet systemfunktion
Dynamisk länkning = + objektkod objektkod systemfunktion programmet systemfunktion anropas först vid exekvering
1.9 Kategorier av högnivåspråk • Imperativa språk • Deklarativa språk • Funktionella språk • Rationella (logiska) språk • Objektorienterade språk
Språkgenerationer Naturliga språk 4GL Objektorienterade språk Högnivåspråk Assembler Maskinkod 1950 1960 1970 1980 1990 2000 2010 FORTRAN RPG PROLOG VB VB ALGOL APL MODULA-2 VB.NET COBOL LOGO MODULA-3 LISP FORTH OBERON PILOT PASCAL EIFFEL BASIC C C++ JAVA C# ADA PL/1 SMALLTALK SIMULA
1.10 Programflöde och användarinteraktion • Sekventiella program • Batch-system • Multiprogramming interaktivitet • Grafiska användargränssnitt (GUI – Graphical User Interface) • Kontrollobjekt • Händelsestyrda program - händelsehanterare
1.12 Att göra ett program i C# // C# using System; class Hello { public static void Main() { Console.WriteLine(“Hello World”); } }