Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/504282.504285acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

The Java syntactic extender (JSE)

Published: 01 October 2001 Publication History

Abstract

The ability to extend a language with new syntactic forms is a powerful tool. A sufficiently flexible macro system allows programmers to build from a common base towards a language designed specifically for their problem domain. However, macro facilities that are integrated, capable, and at the same time simple enough to be widely used have been limited to the Lisp family of languages to date. In this paper we introduce a macro facility, called the Java Syntactic Extender (JSE), with the superior power and ease of use of Lisp macro sytems, but for Java, a language with a more conventional algebraic syntax. The design is based on the Dylan macro system, but exploits Java's compilation model to offer a full procedural macro engine. In other words, syntax expanders may be implemented in, and so use all the facilities of, the full Java language

References

[1]
Don Batory, Bernie Lofaso, and Yannis Smaragdakis. JTS: Tools for implementing domain-specific languages. In P. Devanbu and J. Poulin, editors, Proceedings: Fifth International Conference on Software Reuse, pages 143-153. IEEE Computer Society Press, 1998.
[2]
Alan Bawden. Quasiquotation in Lisp. In SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, pages 4-12. ACM, January 1999.
[3]
Braband and Schwartzbach. Growing languages with metamorphic syntax macros. available on their web site, 2000.
[4]
Shigeru Chiba. A metaobject protocol for C++. In Proceedings of OOPSLA '95, pages 285-299, October 1995.
[5]
William Clinger. Hygienic macros through explicit renaming. ACM LISP Pointers, 4(4):25-28, 1991.
[6]
Daniel de Rauglaudre. Camlp4. http://caml.inria.fr/camlp4/, 2001.
[7]
R. Kent Dybvig, Robert Hieb, and Carl Bruggeman. Syntactic abstraction in scheme. Lisp and Symbolic Computation, 5(4):295-326, 1993.
[8]
E.R. Engler, W.C. Hsieh, and M.F. Kaashoek. c: A language for fast, efficient, high-level dynamic code generation. In Proceedings of Symposium on Principles of Programming Languages, January 1996.
[9]
Yuuji Ichisugi. Modular and extensible parser implementation. http://www.etl.go.jp/epp/edoc/epp-parser.pdf, 2000.
[10]
Yutaka Ishikawa, Atsushi Hori, Mitsuhisa Sato, Motohiko Matsuda, Jorg Nolte, Hiroshi Tezuka, and Hiroki Konaka. Design and implementation of metalevel architecture in C++ - MPC++ approach -. In Proceedings: Reflection'96, 1996.
[11]
Guy Lewis Steele Jr. Growing a language. Lisp and Symbolic Computation, 1998.
[12]
R. Kelsey, W. Clinger, and J. Rees. Revised 5 report on the algorithmic language scheme. Higher-Order and Symbolic Computation, 11(1):7-105, 1998.
[13]
E. Kohlbecker, D. P. Friedman, M. Felleisen, and B. Duba. Hygenic macro expansion. In Proceedings of the 1986 ACM Conference on Lisp and Functional Programming, pages 151-161. ACM, ACM, August 1986.
[14]
Klil Neori. Self generating java program. available on a web site, 1999.
[15]
Peter Norvig. DEFTABLE: A macro for implementing tables. ACM LISP Pointers, 5(4):32-38, 1992.
[16]
C. Queinnec. Lisp In Small Pieces. University Press, Cambridge, 1994.
[17]
A. Shalit. The Dylan Reference Manual. Addison Wesley, 1996.
[18]
Nik Shaylor. Java preprocessor (JPP). http://www.geocities.com/CapeCanaveral/Hangar/4040/jpp.html, 1996.
[19]
Walid Taha and Tim Sheard. Multi-stage programming with explicit annotations. In SIGPLAN workshop on partial evaluation and semantics-based program manipulation, pages 203-217, 1997.
[20]
Michiaki Tatsubori. Open Java. http://www.hlla.is.tsukuba.ac.jp/mich/openjava/, 2000.
[21]
Daniel Weise and Roger Crew. Programmable syntax macros. In Proceedings of the SIGPLAN '93 Conference on Programming Language Design and Implementation, pages 156-165, June 1993.

Cited By

View all
  • (2023)A pred-LL(*) Parsable Typed Higher-Order Macro System for Architecture Description LanguagesProceedings of the 22nd ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/3624007.3624052(29-41)Online publication date: 22-Oct-2023
  • (2023)Rhombus: A New Spin on Macros without All the ParenthesesProceedings of the ACM on Programming Languages10.1145/36228187:OOPSLA2(574-603)Online publication date: 16-Oct-2023
  • (2019)A Survey of Metaprogramming LanguagesACM Computing Surveys10.1145/335458452:6(1-39)Online publication date: 16-Oct-2019
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '01: Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
October 2001
382 pages
ISBN:1581133359
DOI:10.1145/504282
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 October 2001

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

OOPSLA01
Sponsor:

Acceptance Rates

OOPSLA '01 Paper Acceptance Rate 27 of 145 submissions, 19%;
Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)0
Reflects downloads up to 12 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2023)A pred-LL(*) Parsable Typed Higher-Order Macro System for Architecture Description LanguagesProceedings of the 22nd ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/3624007.3624052(29-41)Online publication date: 22-Oct-2023
  • (2023)Rhombus: A New Spin on Macros without All the ParenthesesProceedings of the ACM on Programming Languages10.1145/36228187:OOPSLA2(574-603)Online publication date: 16-Oct-2023
  • (2019)A Survey of Metaprogramming LanguagesACM Computing Surveys10.1145/335458452:6(1-39)Online publication date: 16-Oct-2019
  • (2019)Lightweight multi-language syntax transformation with parser parser combinatorsProceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3314221.3314589(363-378)Online publication date: 8-Jun-2019
  • (2017)SPLACM Transactions on Programming Languages and Systems10.1145/303920739:1(1-39)Online publication date: 6-Mar-2017
  • (2013)A framework for extensible languagesACM SIGPLAN Notices10.1145/2637365.251721049:3(3-12)Online publication date: 27-Oct-2013
  • (2013)A framework for extensible languagesProceedings of the 12th international conference on Generative programming: concepts & experiences10.1145/2517208.2517210(3-12)Online publication date: 27-Oct-2013
  • (2013)Language and IDE Modularization and Composition with MPSGenerative and Transformational Techniques in Software Engineering IV10.1007/978-3-642-35992-7_11(383-430)Online publication date: 2013
  • (2012)HonuACM SIGPLAN Notices10.1145/2480361.237142048:3(122-131)Online publication date: 26-Sep-2012
  • (2012)Language composition untangledProceedings of the Twelfth Workshop on Language Descriptions, Tools, and Applications10.1145/2427048.2427055(1-8)Online publication date: 31-Mar-2012
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media