IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Programming Language Concepts and Implementation 
Kursusnavn (engelsk):Programming Language Concepts and Implementation 
Semester:Efterår 2011 
Udbydes under:cand.it., softwareudvikling og -teknologi (sdt) 
Omfang i ECTS:7,50 
Kursussprog:Engelsk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:12 
Forventet antal deltagere:35 
Maks. antal deltagere:40 
Formelle forudsætninger:Programming experience and mastering of Java.

Knowledge of discrete mathematics as taught in Foundations of
Computing - Discrete Mathematics (SGDM). These courses can be taken in
parallel.

-----

Information about the course of study
This course is part of a specialization on the Master of Science in IT, study programme Software Development and Technology. 
Læringsmål:After this course you should be able to

* Write small program in C# using delegates, enumerables and generics.

* Explain the principles behind the implementation of the programming languages Java and C#, in particular the principles behind allocation and deallocation, argument passing and data representation. Analyse programs written in these languages and explain store usage, typing and control flow.

* Use tools for recognizing regular expressions, for lexical analysis and syntax analysis; explain the limitations of these tools based on theoretical results, and choose the most suitable tools for a given recognition problem.

* Design representations of abstract syntax for a given object oriented or imperative language; use tools for construction of abstract syntax from textual input; use recursion for analysis and transformation of abstract syntax, e.g. in type analysis, translation or reduction of logical or arithmetic expressions.

* Compare expressiveness of programming languages (in particular Java and C#) and explain how their properties follow from design decisions and implementation techniques. 
Fagligt indhold:* The programming language C#, delegates, generics, enumerables, machine model, argument passing and data representation. Differences between C# and Java

* Lexical analysis, regular expressions, finite automata, deterministic and non-deterministic automata, lexers and lexer generators.

* Syntactical analysis, top-down vs bottom-up, LL versus LR, parser generators

* Stack machines, evaluation of expressions, post script, intermediate languages for stack machines

* Translation of imperative languages with loops and references

* The machine model behind Java and C# (the heap and the stack), translation from source code to stack machine code

* The intermediate languages of the Java Virtual Machine and the Common Language Infrastructure and their implementation 
Læringsaktiviteter:14 ugers undervisning bestående af forelæsninger og øvelser

A number of mandatory assignments must be approved to qualify for the exam. 

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

During this course students will be required to hand in mandatory assignments (e.g. attendance, papers, exercises, presentations, productions), that need to be completed/approved before being eligible to register for the examination and e.g. being allowed to submit written work for examination. Failure to hand in these mandatory assignments on time will mean that the registration for examination is annulled.

These mandatory assignments are (Deadlines are posted separately, e.g. on the course blog):
* xx assignments (see above)

The duration of the written examination is 4 hour(s).


Submission/completion of mandatory activities before Friday 2. December 2011 at 15:00.  

Litteratur udover forskningsartikler:
 
Afholdelse (tid og sted)
Kurset afholdes på følgende tid og sted:
UgedagTidspunktForelæsning/ØvelserStedLokale
Torsdag 12.00-13.50 Forelæsning ITU 4A14
Torsdag 14.00-15.50 Øvelser ITU 4A14

Eksamen afholdes på følgende tid og sted:
EksamensdatoTidspunktEksamenstypeStedLokale
2012-01-12 09:00-13:00 Skriftlig eksamen ITU 3A52