|Mo 14-16 (IMADA Sem. Room)||Lecture
1, 2, 3, 4
1, 2, 3
7, 8, 9
|Wed 14-16 (IMADA Sem. Room )||Intro Meeting||Lecture||Proposals
5, 6, 7, 8
4, 5, 6
Just come to my office. If you want to make sure I'm there, contact me before (by e-mail, jabber, skype, phone).
|1||Martin Kamp Jensen||Generic Types in Java||proposal slides||project and benchmarks|
|2||Johnny Svensson||Graphical User Interfaces in Java||Observer pattern (Wikipedia)
|3||Rasmus Færing Larsen||Introspection and Metaprogramming in Java||presentation
source 1 source 2
|4||Arun Vadiveal||Aspect-Oriented Programming in Java||DM8XX_AOP.tar.gz
|presentation and sources|
|5||Patrick-Ranjit D. Madsen||Introspection and Metaprogramming in Python||diveintopython.zip
source and presentation.zip
|source and presentation|
|6||Thomas Glue Rasmussen||Python for Database Applications||proposal3rd.odp
|source and presentation|
|8||Bjørn Madsen||Erlang||Proposal Erlang||source and presentation|
|9||Jakob Lykke Andersen||Spec#||proposal slides||presentation and source|
Course Material: Handed out individually.
You can download the introductory slides from the pizza meeting.
The content of DM509 must be known.
Pass/fail based on presentation of articles and a project. Internal examination by the teacher.
Lectures, discussion sessions, project work.
4th quarter, spring 2009
The goal of the individual study activitiy "Advanced Concepts in Programming Languages" is to give the participants an understanding of advanced concepts in imperative, object-oriented, logic-based, and functional programming languages. The participants should also gain furhter programming experience by applying these advanced concepts to small practical problems. The advanced concepts for imperative programming include the use of polymorphic types in an object-oriented language (generics in Java), the use of functional progamming styles in imperative languages for high-performance computing (single assignment C) and the use of functional constructs in imperative scripting languages (higher-order functions and list operations in Python). For logic-based programming, the concepts introduced should include foreign language interfaces (interfacing Prolog with Java using InterProlog), meta programming (expert systems), database query languages (Datalog), and parser generation (definite clause grammars). For functional programming, extensions to combined functional logic languages (Curry) and to concurrent programming (concurrent Haskell) are considered. Furthermore, the implementation of web interfaces (using Haskell's cgi and xhtml modules) and graphical user interfaces (using Java Swing through the LambdaVM) are of interest.