Kompilerkonstruktion

Velkommen til kurset i kompilerekonstruktions hjemmeside. Her kan du finde relevant oplysninger om kurset.

Indhold

En kompilers opgave er oversætte et program skrevet i et programmeringssprog til et andet programmeringssprog. Dette kan f.eks. være fra programmeringssproget C til eksekverbar maskinkode på en Intel Pentium 4 eller fra programmeringssproget Java til Java ByteCode, der så kan fortolkes i en Java Virtual Machine (JVM).

Kurset er delt i to. Den første del omhandler oversættelse, den anden omhandler køretidsomgivelser. Oversættelse er som beskrevet ovenfor den proces, der oversætter fra et sprog til et andet. Køretidsomgivelser (på engelsk runtime environment) er de teknikker/principper, der anvendes for at få afviklet et oversat program på en computer. For at bruge Java som eksempel sker oversættelse vha. programmet javac, mens køretidsomgivelsen sker vha. programmet java.

Eksamen

Kurset afsluttes med en fire timers skriftlig eksamen.

EKSAMENS PENSUM 

Fredag/Lørdags seminarer

Der er planlagt tre seminarer de finder sted på følgende datoer. Cirka en uge før hvert seminar vil jeg udsende en spiseseddel, der i flere detaljer hvad der vil foregå på hvert seminar. I kan i en vis grad være med til at bestemme hvad der skal foregå på seminarerne ved at sende mig en email med ønsker til hvad I gerne vil jeg skal gennemgå.

Litteratur

I kurset anvendes bogen Modern Compiler Implementation in Java (2nd Edition) af Andrew Appel, Cambridge University Press, ISBN: 052182060X. Bogen kaldes også "Tigerbogen" pga. forsideillustrationen. I kan finde first edition af bogen Modern Compiler Implementation in Java (1st Edition) Tigerbogen

Herudover vil der blive udleveret diverse kopier fra bøgerne:

Links

Der er en del gode steder på weben hvor man kan finde mere information om kompilerkonstruktion. For at give jer et bedre overblik har jeg organiseret de links jeg selv synes er bedst på link side.

Breve

Jeg vil udsende 12 breve der indeholder litteratur, opgaver, opgavebesvarelser osv. Brevene vil blive tilføjet løbende.
Dato Brev EmneLitteratur Opgavebesvarelse
06.02.2003 1 Introduktion Appel kap. 1 samt Sethi kap. 1 [opgavebesvarelse]
11.02.2003 2 Leksikalsk analyse Appel kap. 2 [opgavebesvarelse]
18.02.2003 3 Introduktion til parsning og top-down parsning Appel kap. 3 - 3.2 samt Sethi kap. 2 [opgavebesvarelse]
25.02.2003 4 Bottom-up parsning Appel kap. 3.3 - 3.4 [opgavebesvarelse]
04.03.2003 5 Abstrakt syntaks Appel kap. 4 samt Gamma et al "Vistor Design Pattern"
11.03.2003 6 Semantisk analyse Appel kap. 5 [opgavebesvarelse]
18.03.2003 7 Activation Records Appel kap. 6 [opgavebesvarelse]
01.04.2003 8 Mellemkode Appel kap. 7 [opgavebesvarelse]
08.04.2003 9 Kodegeneration Appel kap. 8 samt kap. 9 [opgavebesvarelse]
15.04.2003 10 Liveness Analysis Appel kap. 10 [opgavebesvarelse]
22.04.2003 11 Registerallokering Appel kap. 11 Tilføjes senere

Slides

I kan finde alle de slides der er blevet brugt i kurset her som zipped pdf filer. slides brug i kurset 

Venlig hilsen

Kristian Torp
torp (at) cs (dot) auc (dot) dk