Things to try

This is a list of possible applications for code generation. Participants can decide which one they would like to use and present.

  1. Using the Java metadata interface to generate code. Show how Java code annotations can be used.

  2. Using XDoclet to generate EJB artifacts (entity beans, facades and business delegates, value objects etc.)

  3. Creation of an iptables generator from user input. Chose whatever model/code generation technology you find appropriate. Take a look at existing generators for firewall scripts first.

  4. Take a look at the source code behind the JET emitter framework in eclipse. Describe architecture and patterns and show how they are used.

  5. Analyse the ecore meta-model of Eclipse EMF. How does it relate to the UML meta-model?

  6. Use the eclipse EMF to model and generate something.

  7. Use ANTLR to define the grammar for a network protocol and generate the code templates for it.

  8. Use JavaCC to create a compiler for a self-defined language.

  9. Investigate Frame processing technology and show how a public domain frame processor is implemented

  10. Use a MDA tool to generate something (andromeda or any other available MDA tools is OK)

  11. Take a Java bytecode modification package and use it to build a simple code interceptor. This is an early stage of an AOP engine.

  12. Get the aspectJ engine and implement something. Explain the basics of aspect-oriented programming. Do not use logging as an example (;-)

  13. Take an executable UML package - if one is available - and use it.

  14. Find out how a debugger for a template processor could be implemented (for JSP, JET or whatever). Why do generative approaches frequently pose a debugging problem?

  15. Take a close look at generators for games (scenes etc.)

  16. Use AspectJ to generate log4j statements automatically before and after every method.

  17. Build a little recognizer (lexical and syntax level) by hand using the "Building Language Recognizers by hand" chapter from Terrence Parr.

  18. Try to create test cases automatically from a model. What parts of an application can be generated?

  19. Desing a small Domain Specific Language for a domain.

  20. Perform a commonalities/variations analysis for an intended production line in some business area.

  21. Build an interpreter. Connect the interpreter to a framework.

  22. Speculate on the role of meta-data in autonomous computing.