24
004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 1 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

Databehandling

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

Page 1: Databehandling

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

Page 2: Databehandling

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

Page 3: Databehandling

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

Page 4: Databehandling

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

Page 5: Databehandling

Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 55

101010101

101010101

Processor Primärminne

101010101

101010101

Utenhet

Inenhet

Datorns språk

Page 6: Databehandling

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

Page 7: Databehandling

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!

Page 8: Databehandling

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

Page 9: Databehandling

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

Page 10: Databehandling

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…

Page 11: Databehandling

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

Page 12: Databehandling

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

Page 13: Databehandling

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 );

Page 14: Databehandling

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

Page 15: Databehandling

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

Page 16: Databehandling

Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 1616

Interpretator

översättning

internkod

utdata

källkod

interpreteringindata

Interpretering

Page 17: Databehandling

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

Page 18: Databehandling

Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 1818

objektkod systemfunktionsystemfunktion

objektkodprogrammet+ =

Statisk länkning

Page 19: Databehandling

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

Page 20: Databehandling

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

Page 21: Databehandling

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

Page 22: Databehandling

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

Page 23: Databehandling

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”);}

}

Page 24: Databehandling

Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 2424

Kompilera och exekvera