Program Transformation

Master
It is unlikely that this course will be taught in the course year 2006/2007.

Programmatransformatie

Website:website met extra informatie
Onderwijs:Het vak INFOPTR wordt in 2012/2013 niet aangeboden.
Onderwijs:Het is nog niet zeker of en zo ja in welke periode van 2012/2013 dit vak wordt aangeboden.
Nota bene:Er is geen recente vakbeschrijving beschikbaar.
Onderstaande tekst is een oude vakbeschrijving uit collegejaar 2005/2006
Inhoud:Producing software means transforming a specification of the requirements into an implementation. Automating this process, i.e., generating an implementation from a specification, in ever new ways is the goal of software technology. In several areas this automatization has already been successful. Think of a compiler that translates `specifications' in a high-level programming language to implementations in machine code, or parser generators that generate a parser from a context-free grammar. More recently, program transformation techniques are used to implement compiler optimizations, refactoring tools, aspect weavers, and reverse engineering tools. In this course you learn to understand and apply program transformation techniques and study applications of program transformation such as data-flow optimizations, partial evaluation, refactoring, desugaring, and aspect weaving.
Literatuur:kan veranderen!
  • Scientific articles (available online)
  • Stratego/XT manual (available online)
Werkvorm:The course consists of lectures and assisted lab sessions. There will be one lab assignment per week with a strict deadline. Lab work will require more time than just the assisted sessions. Participants are expected to attend all lectures.
Toetsvorm:The grade for the course is determined by the grades for the lab assignments (60%) and the final written exam (40%). All grades should be sufficient, i.e., at least 5.5.
Inspanningsverplichting voor aanvullende toets:Om aan de aanvullende toets te mogen meedoen moet de oorspronkelijke uitslag minstens 4 zijn.
wijzigen?