SOCS Hoofdstuk 3 Basisprogrammatuur 1 Inhoud n n
SOCS Hoofdstuk 3 Basisprogrammatuur 1
Inhoud n n n De Vertaler De Voorvertaler De Lader De Binder De Vertolker u Werking van vertolker u Voor- en nadelen u Toepassingen n n Het Speurprogramma Het Opstarten van de Computer 2
Vertaling en Uitvoering HIA R 0, A DRU OPT R 0, B DRU STP A: 10000 B: 20000 Vertale r 1131000005 729999 2131000006 7299999 0000010000020000 RAM 1131000005 729999 2131000006 7299999 0000010000020000 Lade r Uitvoeringsfaze Vertalingsfaze 3
Vertolker HIA R 0, A DRU OPT R 0, B DRU STP A: 10000 B: 20000 Vertolke r 10000 30000 Interpretatie = Vertaling + Uitvoering Engels: Interpreter 4
Werking van een Vertolker n Eerste Vertolkers u Lijn per lijn inlezen: F F Vertaal Voer uit 0000 0001 HIA R 0, 50 BIG R 0, 60 … … 5000 Lees bevel … Vertaal Berg in 0000 3221900000 Voer uit (SPR 0000) Vertolker … 5
Werking van een Vertolker n Eerste Vertolkers u Lijn per lijn inlezen: F F Vertaal Voer uit 0000 0001 HIA R 0, 50 BIG R 0, 60 … … 5000 Lees bevel … Vertaal Berg in 0000 3221900000 Voer uit (SPR 0000) Vertolker … 6
Werking van een Vertolker n Eerste Vertolkers u Lijn per lijn inlezen: F F Vertaal Voer uit 0000 0001 HIA R 0, 50 BIG R 0, 60 … 1131000050 HIA R 0, 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 n Eerste Vertolkers u Lijn per lijn inlezen: F F Vertaal Voer uit 0000 0001 HIA R 0, 50 BIG R 0, 60 … 1131000050 HIA R 0, 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 n Eerste Vertolkers u Lijn per lijn inlezen: F F Vertaal Voer uit 0000 0001 HIA R 0, 50 BIG R 0, 60 … Enzovoort 1131000050 HIA R 0, 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 n Twee programma’s door elkaar uitgevoerd u u u n Stukje van de vertolker Stukje van het te vertolken programma Geen interferentie! Toepassing: u Niet bij LPT F F Reeds vertaalde programma nodig Rekenen met bevelen Machinetaal (DRAMA, Java Bytecode, …) u Hogere programmeertaal (C, Pascal, Perl, …) u 10
Vertolker voor vertaalde programma’s n Waarom? u u u Programma is vertaald voor een doelcomputer Uitvoeren op gastcomputer Machinetaal doelcomputer machinetaal gastcomputer 11
Vertolker voor vertaalde programma’s n Oplossing: u Vertaalprogramma F F F u Machinetaal 1 Machinetaal 2 Soms geen tegenhanger, geen indexatie, geen auto-increment, … Voorbeeld: JIT-compilator (Java Bytecode) Vertolker (simulator) Gedrag doelcomputer nabootsen op gastcomputer F Voorbeelden: DRAMA-simulator, JVM, … F 12
Vertolker voor hogere programmeertaal n Verschil met LPT: u u n Niet rekenen met bevelen Variabelen via toekenning initiële waarde Voorbeeld: b = 3 * a; HIA R 0, A VER. w R 0, 3 BIG R 0, B Uitvoering: 3 instructies Inlezen Analyseren (lexicaal, syntactisch, semantisch) Simuleren Uitvoering: 10 -tallen instructies 13
Voordelen n Gemakkelijker te schrijven dan compilator Minder geheugenruimte nodig Zinvolle foutenboodschappen u n a = b / c; // c == 0 Machine-instructies niet kennen u u Vertolker zelf geschreven in HPT Kan uitgevoerd worden op elke machine waarvoor een vertaler beschikbaar is 14
Nadelen n Uitvoering duurt langer u u Deel werk van vertaler overdoen Interpretatie vergt meer instructies F u Programmalus F n n Niet erg tijdens ontwikkeling van programma Telkens opnieuw analyseren … Uitvoeringstijd vertolking Vertalingstijd + Uitvoeringstijd vertaalde programma Productiefaze: u Tijd uitsparen door vertalen 15
Optimisaties n Programma omzetten naar intermediaire code u n Eenvoudiger te analyseren/interpreteren Programma-fragmenten (lussen) vertalen u Geen (her)interpretatie nodig 16
Toepassingen n Nieuwe programmeertaal u n Talen van zeer hoog niveau u u u n 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 u u Voorbeeld: LISP Manipuleren van lijsten (programma = zelf ook lijst) 17
Toepassingen n Simulator u u n Emulator u u u n 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 u u Pascal-machine, LISP-machine Vertolker voor die taal naar micro-code omzetten 18
Cursustekst n Hoofdstuk 3: pag. 78 pag. 84 19
- Slides: 19