Free Information on generative computing

The following information is freely available and taken together is an excellent introduction to the subject.

  1. annotations in Tiger. More on Java annotations with examples

  2. (logging with AOP) how about comparison with autonomous computing logging?

  3. The Code Generation Portal contains good articles on theoretical and practical problems of code generation. It also offers a list of articles and generators

  4. Kathleen Dollard on generating code for .NET describes her experience with code generation on the windows platform. .

  5. Angie - a frame processor. Architecture of a frame processor

  6. Markus Voelter on Metamodelling (german) The author also wrote the book on containers and components (J2EE patterns) and there is lots of good information at his site, even for code generation in embedded control.

  7. Gilad Bracha, Generics in the Java Programming language Article on the new Java 1.5 generic types

  8. Tell, Don't Ask. Sound advice on interface design, class coupling problems etc. Ask yourself: which of those problems are still relevant once a generative approach is used?

  9. From David Flanagans site a short glossary on the key terms of Java generics: Java generics glossary As most of you know, I believe in reading code to improve your programming skills. The book from David Flanagan (Java By Examples) is now in its 3rd edition and contains valuable source code which makes you understand Java mechanisms.

  10. Dave Thomas of The Pragmatic Programmers, LLC on generative technologies, Ruby etc. With many examples, tips and pitfalls covered. Actually not a paper but an interview. with a very experienced software developer.

  11. Mark Pollack, generating source code using Java Doc

  12. Jack Harrington, Code-Generation Techniques in Java, An excellent introduction to the subject . Explains code and model driven generation and the whole process.

  13. Terence Parr, Enforcing Model-View Separation in Template Engines Draft submitted to www2004 Excellent discussion of template technology and how it interfaces with source code components. Dsicusses general separation between templates and code and which techniques violate this principle. Interestingly the author admits that his own engine is getting always closer to functional language principles even though he claims to be not of the functional camp. What does this say about model2+ architectures which use XSL/XSLT to generate web pages?. This paper will be the base for a discussion on grammar and the whole software technology around "web" programming (JSP, ASP, PHP, XSL and all those template based things)

  14. Terence Parr, Building Recognizers by Hand. An easy to read introduction to parsing. Parr shows how to code a top-down recursive parser and takes you through all the steps, starting with mixing scanning and parsing and later separating the steps.

  15. The ANTLR Homepage . Home of the ANTRL compiler generation tool (former PCCTS). Find excellent literature on language recognizers etc. from Terence Parr (look at his work in progress and download the two pdf files "Building Recognizers by Hand" and "Language".). Take a look at the "getting started" document. And finally browse through the FAQ section if e.g. you need to understand the difference between a parse tree and an AST.

  16. Antlr faq on What's the difference between a parse tree and an AST?. Find out why an AST is useful. Combine this with the MDSD rule of doing translations always on the meta-model (i.e. not on the concrete syntax)

  17. Excellent slide and code for compiler construction on .NET

  18. Hook up an interpreter to your application.

  19. Ashley J.S. Mills, ANTLR Tutorial . This tutorial to ANTLR is just one of a series of excellent tutorials from the University of Birmingham. Also available are pieces on XDoclet, Ant, Docbook etc.

  20. XDoclet homepage Sourceforge location . Nice examples and download.

  21. Gregor Kiczales, Andreas Paepke, Xerox Corp. 1996 Open Implementation and Meta-object Protocols On Reflection and Meta-Object-Facility Protocols, Meta-programming, Open Implementation. Still very good if you need to grasp the concepts of meta-classes and what to do with them. Shows how you could implement lots of things which we call design patterns today right in a proper programming language using meta-object protocols. Learn to understand reification, reflection, introspection, injection etc..

  22. Chris Holmes, Andy Evans, A Review of Frame Technology. Covers other generative techniques (AOP etc.) as well. Includes classifaction of approaches to code generation and an extensive bibliography.

  23. Sean Mc Grath, Duck modelling in commercial IT systems. Propylon article . Talks about the problems with grammar based approaches for data model creation. Expects dynamic languages (python, ruby etc.) to take over long term because of increased business flexibility.

  24. Secrets, Hot Spots and Generatlizations: Preparing Students to design software families. By H.Conrad Cunningham et.al, Univ. of Mississippi. Report on a class on software families etc. Shows the problem to teach very abstract concepts to students with little epxerience in large projects. Good bibliography with titles on variability analysis etc. Use a framework approach to teach generalization.

  25. Adding rules to applicationsby Jeff Pilgrim et.al. How to use a rule engine (ABLE) in your application.