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.