Nada

^ Upp till kursens hemsida.

Aktuell information om 2D1375, hösten 2004

Kurs-PM finns på webben i PDF-format. Jag har också lagt papperskopior i smatten utanför studentexpeditionen. Kurslitteraturen består av andra utgåvan av Appels bok Modern compiler implementation in Java. OBS! Köp inte första utgåvan av boken! I kursbunten ingår även Nadas hederskodex.

Som ett exempel på hur utmatningen från en kompilator kan se ut inluderar jag utmatningen från min lösning på programmet Factorial.java nedan:

$ java Main programs/Factorial.java
Compiling programs/Factorial.java into directory Factorial
Writing pretty source code -> Factorial.pretty
Writing abstract syntax tree -> Factorial.syntax
Writing environment -> Factorial.env
Type checking...
Writing tree-code -> Factorial.tree
Writing canonical code -> Factorial.canon
Writing SPARC assembler -> Factorial.asm
Writing liveness information -> Factorial.live
Writing final output -> Factorial.s
Asssembling and linking...
Factorial.s -> Factorial.o
Factorial.o -> Factorial
Generating JVM assembler...
Class Factorial -> Factorial.j
Class Fac -> Fac.j
Asssembling bytecode...
Factorial.j -> Factorial.class
Fac.j -> Fac.class

Det är ingenting som säger att ni kommer att få samma assemblerkod som jag från er kompilator. Det går i själva verket att optimera min assemblerkod ganska mycket; jag har lagt upp ett exempel på handoptimerad assemblerkod och ett exempel på vad en mer avancerad registerallokering kan ge också. För kompilatorprojektet i denna kurs är det viktigaste att få fram något som går att köra genom att använda de principer Appel beskriver i sin bok; att optimera den genererade assemblerkoden är inte nödvändigt.

På föreläsningen den 13 oktober diskuterade vi vissa textavsnitt i kursboken. I kapitel 7 tycker jag att man kan stryka de första fyra raderna i stycket »Array Variables» på sidan 144, de sista två raderna på sidan 155, rad 5 och 6 på sidan 156, och de fyra första vanliga textraderna på sidan 158. Jag nämnde också att jag hade skrivit en egen graf-klass (senast ändrad 2005-01-24) till kapitel 10 och 11; den använder generics från Java 1.5.

Det finns tillfällen för redovisning och muntlig tentamen mellan den 17 och den 30 mars 2005. Tid och plats bestäms genom överenskommelse med kursledaren.


Sidansvarig: Lars Engebretsen
Senast ändrad 2005-02-02.