Concurrent Prolog: collected papers
Reflection in an object-oriented concurrent language
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
Arity raiser and use in program specialization
Proceedings of the third European symposium on programming on ESOP '90
The art of metaobject protocol
The art of metaobject protocol
Techniques for partial evaluation of imperative languages
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Making pure object-oriented languages practical
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Automatic online partial evaluation
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Low-latency message communication support for the AP1000
ISCA '92 Proceedings of the 19th annual international symposium on Computer architecture
Object-oriented concurrent reflective languages can be implemented efficiently
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Proceedings of the 1993 ACM/IEEE conference on Supercomputing
A partial evaluator, and its use for compiling iterative statements in LISP
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Scalable parallel formulations of the barnes-hut method for n-body simulations
Proceedings of the 1994 ACM/IEEE conference on Supercomputing
Designing an Extensible Distributed Language with a Meta-Level Architecture
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Object Location Control Using Meta-level Programming
ECOOP '94 Proceedings of the 8th European Conference on Object-Oriented Programming
Partial evaluation of call-by-value &lgr;-calculus with side-effects
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A methodology for specifying data distribution using only standard object-oriented features
ICS '97 Proceedings of the 11th international conference on Supercomputing
Concurrency and distribution in object-oriented programming
ACM Computing Surveys (CSUR)
Online partial evaluation for shift and reset
PEPM '02 Proceedings of the 2002 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Reflection in concurrent object-oriented languages
Formal methods for distributed processing
PADO '01 Proceedings of the Second Symposium on Programs as Data Objects
OpenJIT: An Open-Ended, Reflective JIT Compiler Framework for Java
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
OpenJIT Frontend System: An Implementation of the Reflective JIT Compiler Frontend
Proceedings of the 1st OOPSLA Workshop on Reflection and Software Engineering: Reflection and Software Engineering, Papers from OORaSE 1999
Using reflection as a mechanism for enforcing security policies on compiled code
Journal of Computer Security - Special issue on ESORICS 2000
Representation-based just-in-time specialization and the psyco prototype for python
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Tagging, encoding, and jones optimality
ESOP'03 Proceedings of the 12th European conference on Programming
A compilation and optimization model for aspect-oriented programs
CC'03 Proceedings of the 12th international conference on Compiler construction
Program transformation with reflection and aspect-oriented programming
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
Hi-index | 0.00 |
Meta-level programmability is beneficial for parallel/distributed object-oriented computing to improve performance, etc. The major problem, however, is interpretation overhead due to mta-circular interpretation. To solve this problem, we propose a compilation framework for object-oriented concurrent reflective languages using partial evaluation. Since traditional partial evaluators do not allow us to directly deal with meta-circular interpreters written with concurrent objects, we devised techniques such as pre-/post-processing, a new proposed preaction extension to partial evaluation in order to handle side-effects, etc. Benchmarks of a prototype compiler for our language ABCL/R3 indicate that (1) the meta-level interpretation is essentially 'compiled away,' and (2) mta-level optimizations in a parallel application, running on a Fujitsu MPP AP1000, exhibits only 10--30% overhead compared to the hand-crafted source-level optimization in a non-reflective language.