You are here:
(27 Nov 2007,
----+++ Description 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 used in software generators and study applications of program transformation such as partial evaluation, refactoring, desugaring, and aspect weaving. ----+++ Topics The following items roughly correspond to material for a lecture (or two). * Taxonomy of program transformation (introduction) Implementation techniques * Term rewriting * Rewriting strategies * Dynamic rules * Concrete syntax Applications * Algebraic simplification * Desugaring * Data-flow optimization * Specialization / partial evaluation <!-- * Instruction selection * Compilation by transformation (GHC `simplifier') * Fusion (deforestation) * Aspect weaving * Refactoring * Slicing * Decompilation (goto elimination) * Visualization --> ----+++ Concepts The following concepts play an important role in this course. They are discussed as part of the main topics. * Manipulation of programs as data * Source to source transformation * Algebraic equalities on program expressions * Substitution * Pattern matching * Unification * Variable binding ----+++ Material * Lecture notes on _Strategies for Program Transformation_ * Lab: apply various kinds of program transformations ----+++ Lecturer * [[Visser.WebHome][Eelco Visser]] ----+++ History Previous installments of this course were given in * [[Pt04.WebHome]], [[Pt03.WebHome]], [[Pt02.WebHome]] This course has evolved from * Software Generation (1999, 2000, 2001, 2001)
ore topic actions
Topic revision: r10 - 27 Nov 2007,
JVM: Class files
Center for ST
Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding UUCS?