A Personal Outlook on Generator Research

  • Yannis Smaragdakis
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3016)


If we want domain-specific program generation to form the basis of a strong, long-lived research community, we need to recognize what its potential impact might be and why the promise has not been fulfilled so far. In this chapter, I review my past work on generators and I present a collection of personal opinions on the symptoms convincing me that there is room for improvement in the generators research community. Then I analyze the causes of these symptoms, some of which are inherent, while some others can be overcome. A major cause of difficulty is the inherent domain-specificity of generators that often makes research work be less valuable to other generator writers who are unfamiliar with the domain. I propose directions on what should be considered promising research for the community, what I believe are useful principles for generator design, and what community building measures we can take.


Generator Research Functional Programming Code Fragment Software Reuse Publication Outlet 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aitken, W., Dickens, B., Kwiatkowski, P., de Moor, O., Richter, D., Simonyi, C.: Transformation in Intentional Programming. In: Devanbu, P., Poulin, J. (eds.) Proc. 5th International Conference on Software Reuse (ICSR 1998), pp. 114–123. IEEE CS Press, Los Alamitos (1998)Google Scholar
  2. 2.
    Basset, P.: Framing Software Reuse: Lessons from the Real World. Yourdon Press, Prentice Hall (1997)Google Scholar
  3. 3.
    Batory, D., Lofaso, B., Smaragdakis, Y.: JTS: Tools for Implementing Domain-Specific Languages. In: Devanbu, P., Poulin, J. (eds.) Proc. 5th International Conference on Software Reuse (ICSR 1998), pp. 143–155. IEEE CS Press, Los Alamitos (1998)Google Scholar
  4. 4.
    Batory, D., Chen, G., Robertson, E., Wang, T.: Design Wizards and Visual Programming Environments for GenVoca Generators. IEEE Transactions on Software Engineering 26(5), 441–452 (2000)CrossRefGoogle Scholar
  5. 5.
    Clinger, W., Rees, J.: Macros that work. In: Eighteenth Annual ACM Symposium on Principles of Programming Languages (PoPL 1991), pp. 155–162. ACM Press, New York (1991)Google Scholar
  6. 6.
    Czarnecki, K., Eisenecker, U.: Generative Programming: Methods, Techniques, and Applications. Addison-Wesley, Reading (2000)Google Scholar
  7. 7.
    Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An Overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, p. 327. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  8. 8.
    Kohlbecker, E., Friedman, D.P., Felleisen, M., Duba, B.: Hygienic macro expansion. In: Gabriel, R.P. (ed.) Proc. ACM SIGPLAN 1986 Conference on Lisp and Functional Programming, pp. 151–161. ACM Press, New York (1986)CrossRefGoogle Scholar
  9. 9.
    McNamara, B., Smaragdakis, Y.: Functional programming in C++. In: Wadler, P. (ed.) Proc. ACM SIGPLAN 5th International Conference on Functional Programming (ICFP 2000), pp. 118–129. ACM Press, New York (2000)CrossRefGoogle Scholar
  10. 10.
    McNamara, B., Smaragdakis, Y.: Functional Programming with the FC++ Library. Journal of Functional Programming (JFP), Cambridge University Press (to appear)Google Scholar
  11. 11.
    Simonyi, C.: The Death of Computer Languages, the Birth of Intentional Programming. In: NATO Science Committee Conference (1995)Google Scholar
  12. 12.
    Smaragdakis, Y., Batory, D.: DiSTiL: a Transformation Library for Data Structures. In: Ramming, J.C. (ed.) Conference on Domain-Specific Languages (DSL 1997), pp. 257–269. Usenix Association (1997)Google Scholar
  13. 13.
    Smaragdakis, Y., Batory, D.: Implementing Reusable Object-Oriented Components. In: Devanbu, P., Poulin, J. (eds.) Proc. 5th International Conference on Software Reuse (ICSR 1998), pp. 36–45. IEEE CS Press, Los Alamitos (1998)Google Scholar
  14. 14.
    Smaragdakis, Y., Batory, D.: Implementing Layered Designs with Mixin Layers. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, pp. 550–570. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  15. 15.
    Smaragdakis, Y., Batory, D.: Application Generators. In: Webster, J.G. (ed.) Encyclopedia of Electrical and Electronics Engineering. John Wiley and Sons, Chichester (2000)Google Scholar
  16. 16.
    Smaragdakis, Y., Batory, D.: Scoping Constructs for Program Generators. In: Czarnecki, K., Eisenecker, U.W. (eds.) GCSE 1999. LNCS, vol. 1799, pp. 65–78. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  17. 17.
    Smaragdakis, Y., Batory, D.: Mixin Layers: an Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs. ACM Trans. Softw. Eng. and Methodology (TOSEM) 11(2), 215–255 (2002)CrossRefGoogle Scholar
  18. 18.
    Tilevich, E., Urbanski, S., Smaragdakis, Y., Fleury, M.: Aspectizing Server-Side Distribution. In: Proc. 18th IEEE Automated Software Engineering Conference (ASE 2003), pp. 130–141. IEEE CS Press, Los Alamitos (2003)CrossRefGoogle Scholar
  19. 19.
    Veldhuizen, T.: Scientific Computing in Object-Oriented Languages web page, http://www.oonumerics.org/

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Yannis Smaragdakis
    • 1
  1. 1.College of ComputingGeorgia Institute of TechnologyAtlantaUSA

Personalised recommendations