skip to main content
research-article
Free Access

Extensible Programming for the 21st Century: Is an open, more flexible programming environment just around the corner?

Published:01 December 2004Publication History
Skip Abstract Section

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.

References

  1. Ladd, S. R. 2003. An evolutionary analysis of GNU C optimizations; see http://www.coyotegulch.com/.]]Google ScholarGoogle Scholar
  2. SUIF: see http://suif.stanford.edu/.]]Google ScholarGoogle Scholar
  3. Bachrach, J., and K. Playford. 2001. The Java Syntactic Extender; see http://www.ai.mit.edu/~jrb/jse/jse.pdf.]]Google ScholarGoogle Scholar
  4. XDoclet: see http://xdoclet.sourceforge.net/.]]Google ScholarGoogle Scholar
  5. Herrington, J. 2003. Code Generation in Action. Greenwich, CT: Manning.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Dollard, K. 2004. Code Generation in Microsoft .NET. Berkeley, CA: Apress.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. Patzer, A. 2002. JSP Examples and Best Practices. Berkeley, CA: Apress.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. See reference 6 (Dollard) for a discussion of the pros and cons of using Microsoft .NET's CodeDom for code generation.]]Google ScholarGoogle Scholar
  10. Knuth, D. E. 1992. Literate Programming. Cambridge University Press.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle Scholar
  12. Mozart: see http://mozart-dev.sourceforge.net/; SuperX++: see http://xplusplus.sourceforge.net/; o:XML: see http://www.o-xml.org.]]Google ScholarGoogle Scholar
  13. ECMA-357: ECMAScript for XML: see http://www.ecma-international.org/publications/standards/Ecma-357.htm.]]Google ScholarGoogle Scholar
  14. 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 ScholarGoogle Scholar

Index Terms

  1. Extensible Programming for the 21st Century: Is an open, more flexible programming environment just around the corner?

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image Queue
          Queue  Volume 2, Issue 9
          Programming Languages
          December/January 2004-2005
          65 pages
          ISSN:1542-7730
          EISSN:1542-7749
          DOI:10.1145/1039511
          Issue’s Table of Contents

          Copyright © 2004 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 1 December 2004

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article
          • Popular
          • Editor picked

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader

        HTML Format

        View this article in HTML Format .

        View HTML Format