Generative Programming: Past, present, and future

5
Generative Programming: Past, present, and future A panel at GPCE 2004 Vancouver, BC October 27, 2004 Jeff Gray, University of Alabama at Birmingham

description

Generative Programming: Past, present, and future. A panel at GPCE 2004 Vancouver, BC October 27, 2004. Jeff Gray, University of Alabama at Birmingham. “How to teach it?” …to my mother. Assist in automating tasks that are mundane and manual, such that - PowerPoint PPT Presentation

Transcript of Generative Programming: Past, present, and future

Page 1: Generative Programming: Past, present, and future

Generative Programming: Past, present, and future

A panel at GPCE 2004

Vancouver, BC

October 27, 2004

Jeff Gray, University of Alabama at Birmingham

Page 2: Generative Programming: Past, present, and future

“How to teach it?” …to my motherAssist in automating tasks that are mundane and manual, such that

error prone nature is removed and productivity is improved.

Context: Real Estate Legal Forms

• 15 different documents

• 6 different participants with specific contact information

• Numerous places within each document where parts of contact information is to be inserted

Note: Some internal generator living within word processor…

Page 3: Generative Programming: Past, present, and future

“How to teach it?” … to my father-in-law

- Reducing all images to common sizes, producing thumbnails, providing a general index, linking all pictures in a slide show…- Many hours to do manually – about 20 seconds in “Web Picture Creator”

Assist in mitigating effects of accidental complexities.

Page 4: Generative Programming: Past, present, and future

“How to teach it?” … to my grad students The previous were somewhat embarrassingly simple

examples, but perhaps offers insight into essential characteristics of GP that could be understood by laypersons A key is relating experiences “with” and “without” the availability of

certain tools For Grad students:

Provide a 5k SLOC sample application Traditional Adaptation: Ask them to perform an adaptation using

“traditional” development (e.g., plain Java in Eclipse) Metaprogramming and reflection: Introduce core literature and related

tools; request students to perform same changes using OpenJava, Javassist, JMangler, etc

AOSD: introduce core literature in AOSD and tools; request students to perform same changes using AspectJ

Metamodeling: introduce core literature and GME; request students to perform generative tasks on domain-specific models

More info: http://www.cis.uab.edu/gray/Pubs/scicop-2004.pdf

Page 5: Generative Programming: Past, present, and future

“What do we do next?”

Key challenge managing the syntactic mismatch between abstraction

layers Examples

Debugging and testing a DSL program (e.g., debugging YACC output) It would be desirable to do this at the abstraction of the

conceptual artifact Version control of models/visualization

Forced to view differences as flat text files (perhaps in XML!), rather than the abstraction provided by the modeling tool