Upload
basil-turner
View
25
Download
1
Embed Size (px)
DESCRIPTION
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. - PowerPoint PPT Presentation
Citation preview
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 11
indata bearbetning utdata
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
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22
Processor (CPU)
Styrenhet
Primärminne (RAM)
Program X (maskinkod) Operativsystemet
”starta X”
”ladda X”
Programinstruktioner
”starta X”
Sekundärminne
Uppstart av program
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 33
• Bits och bytes• Binärkod – Maskinkod• Maskininstruktion
• operationskod + operanddel• Instruktionscykel
• Hämtning av instruktion• Avkodning • Aritmetisk och logisk bearbetning• Spara resultatet
• Assembler
Datorns språk
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 44
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
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 55
101010101
101010101
Processor Primärminne
101010101
101010101
Utenhet
Inenhet
Datorns språk
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 66
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
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 77
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!
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 88
Binära tal
0010 0010 = 34
Binärt Decimalt
1000 0010 = 130
Byte = 8 bitar = 28 Kombinationer dvs 256 st
KByte = 210 Byte = 1024 Byte
MByte = 220 Byte = 1048576 Byte
ASCII
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 99
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”)
Tecken ASCII binärkod
A 01000001B 01000010C 01000011D 01000100E 01000101F 01000110G 01000111H 01001000I 01001001J 01001010K 01001011L 01001100M 01001101N 01001110
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 1010
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…
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 1111
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.
Datorn
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 1212
Processor (CPU)
Aritmetisk-/logisk enhetStyrenhet
Primärminne(RAM) Programinstruktioner Programdata
Hämta instruktion
Dataregister
2
4
Lagra data
3 Exekvera
Instruktionsregister
1
Avkoda 2
Hämta data
Programexekvering
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 1313
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 );
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 1414
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 aEND IF
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 1515
Länkare
Kompilator
översättning
Objekt-modul
utdata
källkod
laddning
länkning
Laddmodul(körbartprogram)
exekvering
Andra objekt-moduler
System-bibliotek
indata
Kompilering
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 1616
Interpretator
översättning
internkod
utdata
källkod
interpreteringindata
Interpretering
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 1717
Virtuell maskin
utdata
Kompilator
översättningkällkod
laddning
Klass-bibliotek
System-bibliotek
översättning
bytekod
exekveringindata
Den virtuella maskinen
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 1818
objektkod systemfunktionsystemfunktion
objektkodprogrammet+ =
Statisk länkning
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 1919
objektkod systemfunktion
systemfunktion
objektkod
anropas först vid exekvering
+ =
Dynamisk länkning
programmet
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 2020
1.9 Kategorier av högnivåspråk
• Imperativa språk• Deklarativa språk• Funktionella språk• Rationella (logiska) språk• Objektorienterade språk
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 2121
SpråkgenerationerNaturliga språk
4GL
Högnivåspråk
Assembler
Maskinkod
20101950 1960 1970 1980 1990 2000
FORTRAN
COBOL
BASICPASCALC ADA JAVA C#C++SMALLTALK
APLALGOL
FORTHLISPLOGO MODULA-3
EIFFELPILOT
PL/1
PROLOGRPG VB VBVB.NETMODULA-2
OBERON
SIMULA
Objektorienterade språk
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 2222
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
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 2323
1.12 Att göra ett program i C#
// C#using System;class Hello {
public static void Main(){
Console.WriteLine(“Hello World”);}
}
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 2424
Kompilera och exekvera