Research in program families and domain analysis studies techniques for building families of similar software. Besides high re-use, easy maintenance and productivity gains, DSLs also offer more opportunities for checking program properties. The Compose group has developed a methodology for designing and developing efficient implementations of domain-specific languages. In this framework, a DSL is implemented with an interpreter, which is then automatically turned into a compiler via partial evaluation. The interpreter offers easy development and adaptability while partial evaluation provides efficiency.
Partial evaluation is the process that automates program specialization.
In particular, specializing an interpreter with respect to a given program yields a compiled program where the interpretation layer has been removed. The Compose group has developed a partial evaluator for C programs, named Tempo Specializer. Compose is one of the leading groups in partial evaluation. Its areas of contribution range from programming languages to operating systems and software engineering. The group has substantial industrial support, from Alcatel, Bull, CNET, and Thomson Multimedia.