PT Course
Home
Education Page
Description
Schedule
Slides
Assignments
Center for ST
Home
Master Program
Center
Home
Courses
People
Projects
Page
Edit Page
Rename Page
Attach File
Printable
Wiki Source
More ...
Web
Recent Changes
Notify Service
News
Page Index
Search
More ...
Wiki
About TWiki
Text Formatting
Registration
Change Password
Reset Password
Users
Groups
Log In
or
Register
Course Schedule
Pt04
The course will be thaught in February, March and April 2005. This is the planned schedule for the course. Adjustments might be made along the way so check this page regularly. Participants are expected to attend all lectures. Chapters from the lecture notes _Strategies for Program Transformation_ will be handed out in advance of the course. Additional papers may be handed out during the course. The number of copies will be based on the number of students [[http://www.cs.uu.nl/education/inschrijf.php?vak=ptr&jaar=2004][registered]] for the course. Part of the lecture will be dedicated to making exercises. In the first part of the course, each lecture is followed by a lab session with exercises about that lecture. These exercises should be handed in _before_ the next lecture. Lectures are given by Eelco Visser unless otherwise indicated. %TOC% -----++ Week 6 -----+++ Lecture 1 : Introduction * Tuesday, February 8, 9:00 - 10:45 * Topics: * What is program transformation? * A taxonomy of program transformation * An overview of program transformation with Stratego/XT * Book:PartI Lab * [[Assignment Getting Started]] -----+++ Lecture 2 : Infrastructure for Program Transformation Systems * Thursday, February 10, 13:15 - 15:00 * Lecturer: Martin Bravenboer * Topics: * Syntax definition * Concrete and abstract syntax trees * Terms * Parsing * Unparsing * Pretty-printing * Book:ProgramRepresentation (Chapter 4) Lab * [[Assignment Program Representation]] -----++ Week 7 -----+++ Lecture 3 : Pattern Matching and Strategy Definitions * Tuesday, February 15, 9:00 * Topics: * Term patterns * Substitution * Pattern matching and pattern instantiation * Sequential composition * Term variable scope * Rewrite rules and other syntactic abstractions * Strategy definitions * Combinators for composing strategies * Choice * Recursion * Book:FirstClassPatternMatching (Chapter 9) Lab * [[Assignment Patterns and Strategies]] -----+++ Lecture 4 : Term Traversal * Thursday, February 17, 13:15 * Topics: * Congruence operators * Data-type specific traversal * Generic traversal * Rewriting strategies * Applications: format checking, simplifying expressions * Book:InControlOfRewriting * Book:ComposingStrategies (Chapter 8) * Book:GenericTraversalStrategies (Chapter 10) Lab * [[Assignment Traversals]] -----++ Week 8 -----+++ Lecture 5 : Type Unifying Strategies * Tuesday, February 22, 9:00 * Topics: * Generic term deconstruction * Type unifying strategies * Collect and friends * Applications: free variables and other analyses * Book:GenericTraversalStrategies (Chapter 10) * Paper: Language Independent Traversals for Program Transformation Lab * tba -----+++ Lecture 6 : Composing Transformation Systems * Thursday, February 24, 13:15 * Topics: * Compilation by transformation * Transformation tool composition Lab * tba -----++ Week 9 -----+++ Lecture 7 : Scoped Dynamic Rewrite Rules (1) * Tuesday, March 1, 9:00 * Topics: * Context-sensitive rewriting * Introduction and use of dynamic rules * Dynamic rule scope * Extended dynamic rules * Applications: renaming, inlining, evaluation * Article: Program Transformation with Scoped Dynamic Rewrite Rules Lab * tba -----+++ Lecture 8 : Scoped Dynamic Rewrite Rules (2) * Thursday, March 3, 13:15 * Topics: * Rule intersection and union * Dependent dynamic rules * Constant folding * Constant propagation * Copy propagation * Common-subexpression elimination * Article: Composing Source-to-Source Data-Flow Transformations with Rewriting Strategies and Dependent Dynamic Rewrite Rules * Extra: announcing projects -----++ Week 10 (Houston) -----+++ Lecture 9 : Concrete Syntax * Tuesday, March 8, 9:00 * Lecturer: Martin Bravenboer * Topics * Concrete vs abstract syntax * String-based vs structured generation and transformation * Embedding concrete syntax in a meta-language * Rewrite rules with concrete syntax * Application: instrumentation, template-based generation * Book: Chapter 6 Lab * Simplification rules with concrete syntax * tba -----+++ Lecture 10 : Domain-Specific Language Embeddings * Thursday, March 10, 13:15 * Lecturer: Martin Bravenboer * Topics: * Embedding of domain-specific languages * Applications: Java Swul, Regexp, ... * Article: Concrete syntax for objects -----++ Week 11 -----+++ Lecture 11 : Introduction to Partial Evaluation * Tuesday, March 15, 9:00 * Topics: * Concepts of partial evaluation * Program specialization or partial evaluation * Binding time * Binding time annotations * Specialization * Binding time analysis * Function specialization * Read: chapters from PE book -----+++ Lecture 12 : Online Partial Evaluation * Thursday, March 17, 13:15 * Topics: * Implementation of partial evaluation * Combining inlining and constant propagation -----++ Week 12 -----+++ Lecture 13 : Offline Partial Evaluation * Tuesday, March 22, 9:00 * Topics: * Implementation of partial evaluation * Separate binding-time analysis No lecture on Thursday, March 24 -----++ Week 13 No lecture on Tuesday, March 29 -----+++ Lecture 14 : Project Review * Thursday, March 31, 13:15 * Review of ongoing projects -----++ Week 14 (ETAPS) No lecture on Tuesday, April 5 -----+++ Lecture 15 : Infrastructure for Java Transformation Systems * Tuesday, April 7, 13:15 * Lecturer: Martin Bravenboer * Topics: * Infrastructure for Java Transformations * Disambiguation of Concrete Syntax -----++ Week 15 -----+++ Lecture 16 : Project review * Tuesday, April 12, 9:00 * Review of ongoing projects -----+++ Lecture 17 : Project Presentations * Thursday, April 14, 13:15 - 17:00 * Topics: * Presentations of projects -----++ Week 16 (Dagstuhl) -----+++ Exam -----+++ Lab: Submit project