Lecture: 3 hours
Project: 1 hour
Prerequisite: Course 142; course 160 recommended
Grading: Letter; homework (50%), project (50%)
Advanced techniques for domain-specific software reuse.
Expanded Course Description:
This course will address the issues involved in software development for reuse. The course will expose students to technical topics relating to software reuse: design patterns, component-based development, domain-specific languages, and code generation techniques such as: syntactic and scoping hygene, partial evaluation, de-forestation. Concepts will be re-enforced via the case-study of specific languages and systems.
Students will undertake 2 assignments and a project. The project, which will carry the bulk of the credit, will involve implementing a domain-specific platform which enable the rapid development of a class of applications for a specific domain.
A collection of papers and notes that will be distributed by the instructor.
ECS 260 students will undertake a significant project, counting for 50% of the credit of the course, where they will design a domain-specific language (or extensions thereof) and an implementation of the language by writing a compiler. This project will require the students to exercise design judgement, balancing such goals as ease-of-use, evolvability, and performance. Examples from the past include: a policy language for security policies, and compiler that generates wrappers to enforce such policies; a language to specify curriculum requirements and a compiler that generates a checker to validate an individual student’s academic plans.
Instructor: P. Devanbu
Prepared by: P. Devanbu (April 2000)