Merk: Dette er en tidlig utgave. Det kan komme presiseringer.
Dette er den andre av to obliger v?ren 2005. Den bygger videre p? det dere har implementert i oblig 1.
Hensikten med oppgaven
Vi skal her foreta en semantisk sjekk av det abstrakte
syntakstreet som ble bygd
opp i oblig 1. Det inneb?rer at alle semantiske regler som er nevnt her skal sjekkes
og feilmelding skrives ut dersom en regel blir brutt. Den semantiske sjekken skal
igangsettes med en gang etter at parseringen er gjennomf?rt, dersom det ikke er funnet
noen syntaksfeil. Etter en semantisk sjekk skal
treet skrives ut p? samme m?te som i oblig 1 (igjen, dersom ingen feil er funnet). Det
settes ingen krav til ? v?re i stand til ? hente seg inn igjen og fortsette kompileringen
dersom en feil er funnet; ? skrive ut en feilmelding og deretter avslutte er fullt
akseptabelt.
Merk at det er gjort mindre spesifiseringer i dokumentet som beskriver Diss, s? de som
har lastet ned en lokal kopi for bruk under oblig 1 anbefales ? hente det ned p? nytt.
Symboltabell
En god del av den semantiske sjekken g?r p? ? verifisere at navn p? variabler, funksjoner etc
er gyldige i det skop de brukes. Man st?r ganske fritt i hvordan man vil implementere
dette; det er f.eks mulig ? annotere syntakstreet med den n?dvendige informasjonen. Et annet
alternativ kan v?re ? ha en separat tabell som holder styr p? disse symbolene.
Gjennomf?ring og levering
Man kan arbeide to og to med denne oppgaven eller levere enkeltvis. Det mest naturlige vil
vel v?re ? fortsette evt 澳门葡京手机版app下载 fra oblig 1, men det er ikke noe problem dersom to som
har levert oblig 1 enkeltvis ?nsker ? 澳门葡京手机版app下载e p? oblig 2.
Det som skal leveres er:
-
En forside med det fulle navnet og bruker-navnet p? den/de som er med p? denne
besvarelsen.
-
Full kildekode for kompilatoren, inkludert yacc/lex filer og implementasjon av den
semantiske sjekkeren.
- Utskrift av noen gitte testprogrammmer (blir lagt ut, og beskjed gitt) og dump
av syntaks-tre og eventuelle feilmeldinger for disse.
Dette skal sendes som vedlegg p? epost til gruppel?rer.
|