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