Obligatorisk oppgave 2 i INF5110 v?ren 2007

Merk: Dette er en tidlig utgave. Det kan komme presiseringer.

Dette er den andre av to oppgaver v?ren 2007. Den bygger videre p? det som er gjort i oblig 1.

Innhold

Hensikten med oppgaven

Tanken bak denne oppgaven er at man skal f? enn? mer praktisk erfaring med hva som gj?res i en kompilator, nemlig:

Oppgaven

Del to av den obligatoriske oppgaven bygger p? den f?rste delen, og g?r ut p? ? implementere kravene til statisk semantikk, beskrevet i spr?knotatet. Det holder med ? levere inn ?n parser. I tillegg skal resultatene fra kj?ring av en testsuite leveres.

Frist

Fristen er fredag 11. mai. Fristen er endelig.

Testsuite

Det er laget en patch til det prosjktet som ble delt ut og som dere har bygd p? i oblig 1. Den ligger her og best?r av f?lgende.

  • En ny Compiler-klasse (.\src\compiler\Compiler.java). Den inneholder et skall som brukes av testen. Den forutsetter at metoden compile() returnere en int 0, 1, eller 2, som forklart ovenfor.
  • En hjelpeklasse til testen (.\src\test\FileEndingFilter.java).
  • Klassen som utf?rer testen (.\src\test\Tester.java).
  • Noen linjer som kan legges til build-filen for ? kalle testen. (./build.xml.patch).
  • En katalog med filer det testes mot (./tests/). Filene med navn som inneholder fail skal gi semantikkfeil (2). Ingen av filene skal gi syntaksfeil (1).

Plass?r filene slik katalognavnene er angitt her relativt til banen til prosjektet deres (Pass p? ? legge til innholdet i Compiler.java og build.xml uten ? skrive over de klassene dere har!).

Etter det kan testen kj?res med ant test.

Klassen Tester kaller opp klassen Compiler for alle testene i katalogen ./tests/. Det skrives ut ?n linje pr test og en oppsummering.

Sjekkliste for del to

Under f?lger en sjekkliste for semantikken (merk at det kan v?re flere krav, les ogs? spr?knotatet) i D#:

Gjennomf?ring og levering

Man leverer sammen med den samme gruppen som man leverte oblig 1. Det som skal leveres er:

Levering

Besvarelsen leveres som ett pakket filarkiv (zip- eller tgz-format) til gruppel?rer Fredrik S?rensen <fredrso@ifi.uio.no>.

Subversion-brukere kan ogs? levere via et repository (bare gi meg leseaksess, og kommandoen for ? lese ut prosjektet). Rapporten skal ved bruk av SVN enten sendes p? epost, eller ligge p? "roten" (/) i repositoriet.

Sist oppdatert 2007-04-03 20:00
Fredrik S?rensen