• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

What A Metaobject Protocol Based Compiler Can Do For Lisp," Xerox PARC technical report (1994)

by G Kiczales, J Lamping, A Mendhekar
Add To MetaCart

Tools

Sorted by:
Results 1 - 5 of 5

An Object-Oriented Concurrent Reflective Language ABCL/R3

by Hidehiko Masuhara, Akinori Yonezawa , 2000
"... This article presents the design principles and efficient implementation techniques for ABCL/R3, an object-oriented concurrent reflective language. One of the most distinguished features of ABCL/R3 is compilation techniques using partial evaluation, which effectively remove interpretation from meta- ..."
Abstract - Cited by 56 (11 self) - Add to MetaCart
This article presents the design principles and efficient implementation techniques for ABCL/R3, an object-oriented concurrent reflective language. One of the most distinguished features of ABCL/R3 is compilation techniques using partial evaluation, which effectively remove interpretation from meta-level programs. The meta-level objects are designed so that they can be partially evaluated in an effective manner. Benchmark programs show that our compilation frameworks make object execution drastically faster than interpreter-based implementations, and achieves performance close to nonreflective compilers.

An Application Framework For Compositional Modularity

by Guruduth S. Banavar, Guruduth S. Banavar, Robert Kessler, Joseph Zachary, Ann W. Hart , 1995
"... This dissertation presents a framework for the application of compositional modularity, a module model that facilitates extensive reuse of highly decomposed software. Compositional modularity supports not only the traditional notions of program decomposition and encapsulation but also effective mech ..."
Abstract - Cited by 4 (2 self) - Add to MetaCart
This dissertation presents a framework for the application of compositional modularity, a module model that facilitates extensive reuse of highly decomposed software. Compositional modularity supports not only the traditional notions of program decomposition and encapsulation but also effective mechanisms for module recomposition. Based on a previously developed model, a suite of operators individually achieve effects of adaptation and combination on a simple notion of modules viewed as self-referential namespaces. This dissertation extends the previous model by introducing the notion of hierarchical nesting as a composition operation. Furthermore, this work shows that compositional modularity is unifying in scope. Important effects and idioms of advanced modularity, including several varieties of inheritance in object-oriented programming, find convenient expression within this model. Compositional modularity can be applied within a wide range of systems that manipulate self-referenti...

Partial Evaluator as a Compiler for Reflective Languages

by Kenichi Asai, Hidehiko Masuhara, Satoshi Matsuoka, Akinori Yonezawa , 1995
"... This paper presents an online partial evaluator with a mechanism to handle I/O-type side-effects using preactions, and reports our experiment of using the partial evaluator as a compiler for the reflective language Black we are designing. Black is a Scheme-based reflective language, which allows use ..."
Abstract - Cited by 3 (3 self) - Add to MetaCart
This paper presents an online partial evaluator with a mechanism to handle I/O-type side-effects using preactions, and reports our experiment of using the partial evaluator as a compiler for the reflective language Black we are designing. Black is a Scheme-based reflective language, which allows user programs to access and modify its metalevel interpreter (or the language semantics) from within the same language framework. Because the semantics may change during computation, it is impossible to compile using a conventional Scheme compiler. To cope with this flexibility, we implemented an online partial evaluator, and specialized a Scheme meta-circular interpreter with respect to a modified interpreter to obtain an efficient version of the modified interpreter. The resulting interpreter turns out to be quite efficient in that it is almost identical to the original Scheme interpreter, except that it correctly reflects the modification made by users. In fact, we got more: by supplying a s...

The Design of Object-Oriented Meta-Architectures for Programming Languages

by Guruduth Banavar, Gary Lindstrom - IN PROC. THIRD GOLDEN WEST INTERNATIONAL CONFERENCE ON INTELLIGENT SYSTEMS, LASVEGAS, NV , 1994
"... This paper is a survey of the design of four object-oriented meta-level architectures for programming languages. We present overviews and compare the salient features of the metaarchitectures of Smalltalk, Common Lisp Object System (CLOS), a Scheme Compiler, and Etyma, our framework for modular syst ..."
Abstract - Cited by 1 (1 self) - Add to MetaCart
This paper is a survey of the design of four object-oriented meta-level architectures for programming languages. We present overviews and compare the salient features of the metaarchitectures of Smalltalk, Common Lisp Object System (CLOS), a Scheme Compiler, and Etyma, our framework for modular systems. This comparison clarifies importantarchitectural aspects of the surveyed systems, such as the space of concepts captured by the architectures, and the abstractions that embody similar language concepts across the architectures. We find that there are considerable differences in the goals and conceptions of these architectures, yet they can all be used for similar applications. Finally, we point out some strengths and weaknesses of the architectures surveyed.

Roles of a Partial Evaluator for the Reflective Language Black

by Kenichi Asai, Kenichi Asai, Satoshi Matsuoka, Satoshi Matsuoka, Akinori Yonezawa, Akinori Yonezawa
"... A reflective language allows us to access its interpreter to dynamically modify or extend the language semantics from within the same language. In the previous paper, we implemented a reflective language called Black, and showed that a directly executable interpreter can be implemented by duplicatin ..."
Abstract - Add to MetaCart
A reflective language allows us to access its interpreter to dynamically modify or extend the language semantics from within the same language. In the previous paper, we implemented a reflective language called Black, and showed that a directly executable interpreter can be implemented by duplicating and partially evaluating the metalevel interpreters without losing changeability. In this paper, we will concentrate on the partial evaluator and show that it can be used not only to construct the default reflective interpreter but also as a compiler of reflective languages. Since the language semantics may change in reflective languages, we cannot use a specific compiler; instead, we use the partial evaluator, which can take the semantics of the language into account. ANY OTHER IDENTIFYING INFORMATION OF THIS REPORT DISTRIBUTION STATEMENT First issue 35 copies. SUPPLEMENTARY NOTES REPORT DATE May 25, 1994 TOTAL NO. OF PAGES 10 WRITTEN LANGUAGE English NO. OF REFERENCES 9 DEPARTME...
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University