Lecture: 3 hours
Project: 1 hour
Prerequisite: Course 142; course 160 recommended
Grading: Letter; homework (50%), project (50%)
Catalog Description:
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.
Textbook:
A collection of papers and notes that will be distributed by the instructor.
Design Statement:
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)
5/00