| Website: | website containing additional information | |||||||||||||||||||||||||||||||||||||
| Course code: | INFOIPT | |||||||||||||||||||||||||||||||||||||
| Credits: | 7.5 ECTS (=5.25 old credit points) | |||||||||||||||||||||||||||||||||||||
| Period: | periode 2 (week 47 t/m 5, dwz 15-11-2004 t/m 4-2-2005; herkansing week 12) | ![]() | ||||||||||||||||||||||||||||||||||||
| Timeslot: | B | |||||||||||||||||||||||||||||||||||||
| Participants: | up till now 35 subscriptions | |||||||||||||||||||||||||||||||||||||
| Schedule: | Dit is een oud rooster!
| |||||||||||||||||||||||||||||||||||||
| Nota bene: | Er is geen recente vakbeschrijving beschikbaar. Onderstaande tekst is een oude vakbeschrijving uit collegejaar 2003/2004 | |||||||||||||||||||||||||||||||||||||
| Contents: | Programma's worden vrijwel altijd geschreven in een hogere programmeertaal, zoals Java of Haskell. Wil je zo'n programma uitvoeren dan heb je een vertaler of een interpreter nodig. Dit vak leert je hoe vertalers en interpreters werken. Omdat het in dit vak gaat over de implementatie van programmeertalen wordt er noodzakelijkerwijs (veel) aandacht besteed aan allerlei taalconstructies, zoals functies in Haskell. Van een versimpelde programmeertaal (SL, simple language) wordt van enkele taalconstructies bekeken hoe diverse aspecten (i.h.b. codegeneratie voor een simpele stackmachine en type inferentie) berekend kunnen worden. | |||||||||||||||||||||||||||||||||||||
| Literature: | kan veranderen! Dictaat | |||||||||||||||||||||||||||||||||||||
| Course form: |
| |||||||||||||||||||||||||||||||||||||
| Exam form: | Schriftelijke tentamen, verplicht practicum. Het practicum wordt met een uitstekend, goed, voldoende of onvoldoende beoordeeld. Een uitstekend geeft 1 punt bijtelling bij het tentamen resultaat, en een goed een half punt. Bij een onvoldoende voor het practicum is men voor het vak gezakt. | |||||||||||||||||||||||||||||||||||||
| Minimum effort to qualify for 2nd chance exam: | Om aan de aanvullende toets te mogen meedoen is ontbreken van ten hoogte 1 toetsactiviteit toegestaan. | |||||||||||||||||||||||||||||||||||||
| Description: | See the IPT www for more info (and in English).
Dit vak behandelt de werking van vertalers. De nadruk ligt op de semantische analyse en de generatie van tussencode. Van de belangrijkste taal-constructie uit imperatieve en functionele talen wordt de implementatie besproken. (Scannen en parsen zitten in G&O; optimalisaties en de generatie van machinecode worden behandeld in het specialisatievak Geavanceerde Vertalers.) Van de taalconstructies behandelen we welke semantische analyse ze vergen, hoe ze op een virtuele machine worden afgebeeld en welke runtime ondersteuning ze vereisen. De behandelde taal-constructies zijn in ieder geval: scope en visibility, typering, (geneste) routines, gebruik van variabelen, berekening van expressies. Een overzicht van de stof:
Leerdoelen: Het hoofddoel van dit vak is het begrijpen van een aantal programmeertaalconcepten, onder andere door het bestuderen van machinale interpretatie en vertaling. Na afloop van het vak is de student zelfstandig in staat een eenvoudige programmeertaal te karakteriseren volgens zijn voornaamste eigenschappen, en heeft inzicht in de complexiteit die een afbeelding van een taal op een machine met zich meebrengt. Kennisdoelen: structuur van vertalers; structuur van interpreters; implementatie van de taalconstructies statements, (geneste) routines. Vaardigheden: Kunnen construeren van vertalers/interpreters voor eenvoudige talen gebruik makend van vertalerbouw tools. Inzicht: abstractielagen, verlagen van abstractieniveau, interpretatie in het algemeen, abstracte machines, binding time, analyse van structuren. | |||||||||||||||||||||||||||||||||||||