Lambda the Ultimate

inactiveTopic Application Generators
started 7/26/2002; 2:35:31 AM - last post 7/27/2002; 2:27:35 AM
jon fernquest - Application Generators  blueArrow
7/26/2002; 2:35:31 AM (reads: 2237, responses: 1)
Application Generators
Excellent survey article from an encyclopedia.

"When a programming activity is well-understood, it can be automated. Automation transforms software development from activities like rote coding and tedious debugging to that of specification, where the "what" of an application is declared and the �how� is left to a complex, but automatable mapping. Programs that perform such mappings are application generators (or just generators). In the technical sense, application generators are compilers for domain-specific programming languages (DSLs)..... generators can be viewed as compact representations of software libraries of gigantic size�each library encoding all the useful code configurations that a generator can produce...... Translation engines and the transformations they support are the heart of all generators.

Found on the Yannis Smaragdakis's homepage who was a member of the Intentional Programming team at Microsoft. Very high-level conceptual with a good bibliography and overview of programming transformations. Includes a detailed comparison of two very different systems: KIDS from the Kestrel Institute which uses formal methods and P2 which uses mainstream C and a more limited set of transformations.


Posted to DSL by jon fernquest on 7/26/02; 2:37:54 AM

jon fernquest - Re: Application Generators  blueArrow
7/27/2002; 2:27:35 AM (reads: 1140, responses: 0)
Quote from the paper:

Many generators are implemented as extensions of the Lisp language or its variants. Lisp has explicit syntax (mapping directly to parse trees) and a very powerful extension facility (Lisp macros). (my emphasis)

No examples are provided. Does anyone know of any generators that are Scheme or Lisp extensions?

Another interesting tidbit:

1. Scoping Constructs for Software Generators (1999) [Paper, Bibliography] employs Scheme hygienic macros to handle scoping issues in Application Generators including an Intentional Programming generator DiSTiL.