IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Language Engineering 
Kursusnavn (engelsk):Language Engineering 
Semester:Forår 2003 
Udbydes under:cand.it., tværfaglig it-udvikling (tit) 
Omfang i ECTS:7,50 
Kursussprog:Engelsk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:
Forventet antal deltagere:
Maks. antal deltagere:200 
Formelle forudsætninger:Indledende programmering (IP), Begreber og
redskaber i programmering (BRP) 
Læringsmål:Programs that process other programs are
fundamental in computer science.
The purpose of the course is to introduce
methods
for quickly developing program processors
such as interpreters,
compilers, program transformers,
generators and analyzers. The emphasis
is on small, domain-specific languages
(DSLs) but the course
also provides an introduction to classical
compiler-writing
techniques. XML-based program generation
will also be introduced.

Students will gain knowledge,
understanding and practical experience
of tools and techniques for definition,
implementation of languages,
and tools for optimisation and analysis of
programs. 
Fagligt indhold:How to specify a language

Basic concepts of language processing.
Interpreters, translators/compilers, real and
abstract machines.
Bootstrapping.

Basic parsing techniques (syntactic
analysis)
Parser generators (e.g. JavaCC)

Types and other contextual constraints.

Code generation and run-time organisation.

Operational semantics. From semantics to
interpreters.

Introduction to optimization. Local and
global optimizations.

Program generation. Generic languages
and tools. XML-based program generation.

Main text. Programming Language
Processors in Java: Compilers and
Interpreters
by David A. Watt and Deryck F Brown.
Prentice Hall; ISBN: 0 130 25786 9

Background and further reading

Modern Compiler Design,
Dick Grune, Henri E. Bal, Ceriel J.H. Jacobs,
and Koen G. Langendoen,
John Wiley & Sons, Ltd., pp. 736 + xviii, 2000;
ISBN 0 471 97697 0

Semantics with Applications: A Formal
Introduction.
Hanne Riis Nielson, Flemming Nielson:
(updated edition 1999)
Available for download from http://
www.imm.dtu.dk/~riis/Wiley_book/wiley.html

Program Generators with XML and Java,
J. Craig Cleaveland, February 2001,
Prentice Hall,
ISBN 0 130 25878 4 
Læringsaktiviteter:

Forelæsning og øvelser
Lecture and exercises 

Eksamensform og -beskrivelse:X. experimental examination form (7-scale; external exam), 13-skala, Ekstern censur

Skriftlig 2-timer
Written exam  

Litteratur udover forskningsartikler:Main text. Programming Language
Processors in Java: Compilers and
Interpreters
by David A. Watt and Deryck F Brown.
Prentice Hall; ISBN: 0 130 25786 9

Background and further reading

Modern Compiler Design,
Dick Grune, Henri E. Bal, Ceriel J.H. Jacobs,
and Koen G. Langendoen,
John Wiley & Sons, Ltd., pp. 736 + xviii, 2000;
ISBN 0 471 97697 0

Semantics with Applications: A Formal
Introduction.
Hanne Riis Nielson, Flemming Nielson:
(updated edition 1999)
Available for download from http://
www.imm.dtu.dk/~riis/Wiley_book/wiley.html

Program Generators with XML and Java,
J. Craig Cleaveland, February 2001,
Prentice Hall,
ISBN 0 130 25878 4