Abstract
In his keynote address at OOPSLA ’98, Sun Microsystems Fellow Guy L. Steele Jr. said, “From now on, a main goal in designing a language should be to plan for growth.” Functions, user-defined types, operator overloading, and generics (such as C++ templates) are no longer enough: tomorrow’s languages must allow programmers to add entirely new kinds of information to programs, and control how it is processed. This article argues that next-generation programming systems can accomplish this by combining three specific technologies.
- Ladd, S. R. 2003. An evolutionary analysis of GNU C optimizations; see http://www.coyotegulch.com/.]]Google Scholar
- SUIF: see http://suif.stanford.edu/.]]Google Scholar
- Bachrach, J., and K. Playford. 2001. The Java Syntactic Extender; see http://www.ai.mit.edu/~jrb/jse/jse.pdf.]]Google Scholar
- XDoclet: see http://xdoclet.sourceforge.net/.]]Google Scholar
- Herrington, J. 2003. Code Generation in Action. Greenwich, CT: Manning.]] Google ScholarDigital Library
- Dollard, K. 2004. Code Generation in Microsoft .NET. Berkeley, CA: Apress.]] Google ScholarDigital Library
- Czarnecki, K., Eisenecker, U., Gluck, R. Vandevoorde, D., and Veldhuizen, T. L. 1998. Generative programming and active libraries. In Proceedings of Generic Programming '98, Lecture Notes in Computer Science 1766, Springer-Verlag Telos.]] Google ScholarDigital Library
- Patzer, A. 2002. JSP Examples and Best Practices. Berkeley, CA: Apress.]] Google ScholarDigital Library
- See reference 6 (Dollard) for a discussion of the pros and cons of using Microsoft .NET's CodeDom for code generation.]]Google Scholar
- Knuth, D. E. 1992. Literate Programming. Cambridge University Press.]] Google ScholarDigital Library
- See CONS (http://www.dsmit.com/cons/) and SCons (http://www.scons.org/) for examples of code-oriented build tools. Interestingly, the creator of Ant, James Duncan Davidson, has written: "If I knew then what I know now, I would have tried using a real scripting language, such as JavaScript via the Rhino component or Python via JPython, with bindings to Java objects which implemented the functionality expressed in today's tasks. Then, there would be a first-class way to express logic and we wouldn't be stuck with XML as a format that is too bulky for the way that people really want to use the tool." http://x180.net/Articles/Java/AntAndXML.html.]]Google Scholar
- Mozart: see http://mozart-dev.sourceforge.net/; SuperX++: see http://xplusplus.sourceforge.net/; o:XML: see http://www.o-xml.org.]]Google Scholar
- ECMA-357: ECMAScript for XML: see http://www.ecma-international.org/publications/standards/Ecma-357.htm.]]Google Scholar
- Meijer, E. Schulte, W., and G. Bierman. Programming with circles, triangles, and rectangles; see http://www.research.microsoft.com/~emeijer/Papers/XML2003/xml2003.html.]]Google Scholar
Index Terms
- Extensible Programming for the 21st Century: Is an open, more flexible programming environment just around the corner?
Recommendations
Personal computing in the 21st century
UIST '05: Proceedings of the 18th annual ACM symposium on User interface software and technologyEver since the dawn of the digital computer, invention, innovation, and creativity have been a hallmark of the industry. The mainframe computer seemed for a while to be the real player with experts or at least highly trained professionals operating ...
Comments