Werking van een Vertolker

advertisement
SOCS
Hoofdstuk 3
Basisprogrammatuur
1
Inhoud





De Vertaler
De Voorvertaler
De Lader
De Binder
De Vertolker
 Werking
van vertolker
 Voor- en nadelen
 Toepassingen


Het Speurprogramma
Het Opstarten van de Computer
2
Vertaling en Uitvoering
HIA R0,A
DRU
OPT R0,B
DRU
STP
A: 10000
B: 20000
Vertale
r
1131000005
7299999999
2131000006
7299999999
9999999999
0000010000
0000020000
RAM
1131000005
7299999999
2131000006
7299999999
9999999999
0000010000
0000020000
Lader
Uitvoeringsfaze
Vertalingsfaze
3
Vertolker
HIA R0,A
DRU
OPT R0,B
DRU
STP
A: 10000
B: 20000
10000
30000
Vertolke
r
Interpretatie = Vertaling + Uitvoering
Engels: Interpreter
4
Werking van een Vertolker

Eerste Vertolkers

Lijn per lijn inlezen:


Vertaal
Voer uit
0000
0001
HIA R0,50
BIG R0,60
…
…
5000
 Lees bevel
…
 Vertaal
 Berg in 0000
3221900000  Voer uit
(SPR 0000)
Vertolker
…
5
Werking van een Vertolker

Eerste Vertolkers

Lijn per lijn inlezen:


Vertaal
Voer uit
0000
0001
HIA R0,50
BIG R0,60
…
…
5000
 Lees bevel
…
 Vertaal
 Berg in 0000
3221900000  Voer uit
(SPR 0000)
Vertolker
…
6
Werking van een Vertolker

Eerste Vertolkers

Lijn per lijn inlezen:


Vertaal
Voer uit
0000
0001
HIA R0,50
BIG R0,60
…
1131000050  HIA R0,50
3221905000  SPR 5000
Deel v/h
te vertolken
programma
…
5000
 Lees bevel
…
 Vertaal
 Berg in 0000
3221900000  Voer uit
(SPR 0000)
Vertolker
…
7
Werking van een Vertolker

Eerste Vertolkers

Lijn per lijn inlezen:


Vertaal
Voer uit
0000
0001
HIA R0,50
BIG R0,60
…
1131000050  HIA R0,50
3221905000  SPR 5000
Deel v/h
te vertolken
programma
…
5000
 Lees bevel
…
 Vertaal
 Berg in 0000
3221900000  Voer uit
(SPR 0000)
Vertolker
…
8
Werking van een Vertolker

Eerste Vertolkers

Lijn per lijn inlezen:


Vertaal
Voer uit
0000
0001
HIA R0,50
BIG R0,60
…
Enzovoort
1131000050  HIA R0,50
3221905000  SPR 5000
Deel v/h
te vertolken
programma
…
5000
 Lees bevel
…
 Vertaal
 Berg in 0000
3221900000  Voer uit
(SPR 0000)
Vertolker
…
9
Werking van een Vertolker

Twee programma’s door elkaar uitgevoerd




Stukje van de vertolker
Stukje van het te vertolken programma
Geen interferentie!
Toepassing:

Niet bij LPT


Reeds vertaalde programma nodig
Rekenen met bevelen
Machinetaal (DRAMA, Java Bytecode, …)
 Hogere programmeertaal (C, Pascal, Perl, …)

10
Vertolker voor vertaalde
programma’s

Waarom?



Programma is vertaald voor een doelcomputer
Uitvoeren op gastcomputer
Machinetaal doelcomputer 
machinetaal gastcomputer
11
Vertolker voor vertaalde
programma’s

Oplossing:

Vertaalprogramma




Machinetaal1  Machinetaal2
Soms geen tegenhanger, geen indexatie,
geen auto-increment, …
Voorbeeld: JIT-compilator (Java Bytecode)
Vertolker (simulator)


Gedrag doelcomputer nabootsen op gastcomputer
Voorbeelden: DRAMA-simulator, JVM, …
12
Vertolker voor hogere
programmeertaal

Verschil met LPT:



Niet rekenen met bevelen
Variabelen via toekenning initiële waarde
Voorbeeld:
b = 3 * a;
HIA
R0,A
VER.w R0,3
BIG
R0,B
Inlezen
Analyseren
(lexicaal, syntactisch, semantisch)
Simuleren
Uitvoering: 3 instructies
Uitvoering: 10-tallen instructies
13
Voordelen



Gemakkelijker te schrijven dan compilator
Minder geheugenruimte nodig
Zinvolle foutenboodschappen


a = b / c;
// c == 0
Machine-instructies niet kennen


Vertolker zelf geschreven in HPT
Kan uitgevoerd worden op elke machine
waarvoor een vertaler beschikbaar is
14
Nadelen

Uitvoering duurt langer


Deel werk van vertaler overdoen
Interpretatie vergt meer instructies


Programmalus



Niet erg tijdens ontwikkeling van programma
Telkens opnieuw analyseren …
Uitvoeringstijd vertolking 
Vertalingstijd + Uitvoeringstijd vertaalde programma
Productiefaze:

Tijd uitsparen door vertalen
15
Optimisaties

Programma omzetten naar intermediaire code


Eenvoudiger te analyseren/interpreteren
Programma-fragmenten (lussen) vertalen

Geen (her)interpretatie nodig
16
Toepassingen

Nieuwe programmeertaal


Talen van zeer hoog niveau







Vertolker in conventionele HPT
Permanent door vertolker
Wat (I.p.v. Hoe)
Bron-instructie  zeer veel machinebevelen
Poly-algoritmes
Vertaaltijd << Uitvoeringstijd
Voorbeeld: APL
Dynamische programmeertalen


Voorbeeld: LISP
Manipuleren van lijsten (programma = zelf ook lijst)
17
Toepassingen

Simulator



Emulator




Voor programma in machinetaal
Bijv. om conversieproblemen tijdelijk op te lossen
Gastcomputer aanpassen zodat hij zich gedraagt
zoals de doelcomputer
Simulator omzetten naar micro-code
Invoer/uitvoer = moeilijkste om te emuleren
Computer waarvan machinecode = HPT


Pascal-machine, LISP-machine
Vertolker voor die taal naar micro-code omzetten
18
Cursustekst

Hoofdstuk 3: pag. 78  pag. 84
19
Download