1 SOCS Hoofdstuk 3 Basisprogrammatuur
2 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
3 RAM Vertaling en Uitvoering HIA R0,A DRU OPT R0,B DRU STP A:10000 B:20000 Vertale r LaderVertalingsfaze Uitvoeringsfaze
4 Vertolker HIA R0,A DRU OPT R0,B DRU STP A:10000 B:20000 Vertolke r Engels: Interpreter Interpretatie = Vertaling + Uitvoering
5 Werking van een Vertolker Eerste Vertolkers Lijn per lijn inlezen: Vertaal Voer uit HIA R0,50 BIG R0,60 … Lees bevel Vertaal Berg in 0000 Voer uit (SPR 0000) … … … Vertolker
6 Werking van een Vertolker Eerste Vertolkers Lijn per lijn inlezen: Vertaal Voer uit HIA R0,50 BIG R0,60 … Lees bevel Vertaal Berg in 0000 Voer uit (SPR 0000) … … … Vertolker
7 Werking van een Vertolker Eerste Vertolkers Lijn per lijn inlezen: Vertaal Voer uit HIA R0,50 BIG R0,60 … Lees bevel Vertaal Berg in 0000 Voer uit (SPR 0000) … … … Vertolker HIA R0,50 Deel v/h te vertolken programma SPR 5000
8 Werking van een Vertolker Eerste Vertolkers Lijn per lijn inlezen: Vertaal Voer uit HIA R0,50 BIG R0,60 … HIA R0,50 SPR 5000 Lees bevel Vertaal Berg in 0000 Voer uit (SPR 0000) … … … Vertolker Deel v/h te vertolken programma
9 Werking van een Vertolker Eerste Vertolkers Lijn per lijn inlezen: Vertaal Voer uit HIA R0,50 BIG R0,60 … HIA R0,50 SPR 5000 Lees bevel Vertaal Berg in 0000 Voer uit (SPR 0000) … … … Vertolker Deel v/h te vertolken programma Enzovoort
10 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, …)
11 Vertolker voor vertaalde programma’s Waarom? Programma is vertaald voor een doelcomputer Uitvoeren op gastcomputer Machinetaal doelcomputer machinetaal gastcomputer
12 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, …
13 Vertolker voor hogere programmeertaal Verschil met LPT: Niet rekenen met bevelen Variabelen via toekenning initiële waarde Voorbeeld: b = 3 * a; Inlezen Analyseren (lexicaal, syntactisch, semantisch) Simuleren HIA R0,A VER.w R0,3 BIG R0,B Uitvoering: 3 instructiesUitvoering: 10-tallen instructies
14 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
15 Nadelen Uitvoering duurt langer Deel werk van vertaler overdoen Interpretatie vergt meer instructies Niet erg tijdens ontwikkeling van programma Programmalus Telkens opnieuw analyseren … Uitvoeringstijd vertolking Vertalingstijd + Uitvoeringstijd vertaalde programma Productiefaze: Tijd uitsparen door vertalen
16 Optimisaties Programma omzetten naar intermediaire code Eenvoudiger te analyseren/interpreteren Programma-fragmenten (lussen) vertalen Geen (her)interpretatie nodig
17 Toepassingen Nieuwe programmeertaal Vertolker in conventionele HPT Talen van zeer hoog niveau 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)
18 Toepassingen Simulator Voor programma in machinetaal Bijv. om conversieproblemen tijdelijk op te lossen Emulator 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
19 Cursustekst Hoofdstuk 3: pag. 78 pag. 84