Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Actors: a model of concurrent computation in distributed systems
Actors: a model of concurrent computation in distributed systems
Concepts and experiments in computational reflection
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Strongtalk: typechecking Smalltalk in a production environment
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Annotating objects for transport to other worlds
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Type inference of SELF: analysis of objects with dynamic and multiple inheritance
Software—Practice & Experience
Object-oriented programming in the BETA programming language
Object-oriented programming in the BETA programming language
Adding type parameterization to the Java language
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Dynamic class loading in the Java virtual machine
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Reflections on remote reflection
ACSC '01 Proceedings of the 24th Australasian conference on Computer science
The Java Language Specification
The Java Language Specification
The Art of the Metaobject Protocol
The Art of the Metaobject Protocol
Template meta-programming for Haskell
ACM SIGPLAN Notices
Pluggable reflection: decoupling meta-interface and implementation
Proceedings of the 25th International Conference on Software Engineering
Reflection and semantics in LISP
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Macro Processing in Object-Oriented Languages
TOOLS '98 Proceedings of the Technology of Object-Oriented Languages and Systems
Declarative Reasoning about the Structure of Object-Oriented Systems
TOOLS '98 Proceedings of the Technology of Object-Oriented Languages and Systems
AOP as a first class reflective mechanism
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Fine-grained interoperability through mirrors and contracts
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Constructing a metacircular Virtual machine in an exploratory programming environment
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Flexible object encapsulation for ambient-oriented programming
DLS '05 Proceedings of the 2005 symposium on Dynamic languages
A framework for implementing pluggable type systems
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Evolving self-adaptive services using planning-based reflective middleware
Proceedings of the 5th workshop on Adaptive and reflective middleware (ARM '06)
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Mirages: behavioral intercession in a mirror-based architecture
Proceedings of the 2007 symposium on Dynamic languages
ACM SIGCSE Bulletin
Peer-to-peer brokering of planning meta-data
Proceedings of the 6th international workshop on Adaptive and reflective middleware: held at the ACM/IFIP/USENIX International Middleware Conference
Flexible metaprogramming and AOP in Java
Science of Computer Programming
Practical Object-Oriented Back-in-Time Debugging
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Cross-layer self-adaptation of service-oriented architectures
Proceedings of the 3rd workshop on Middleware for service oriented computing
Experiences from Developing a Component Technology Agnostic Adaptation Framework
CBSE '08 Proceedings of the 11th International Symposium on Component-Based Software Engineering
Self-Sustaining Systems
Proceedings of the 8th ACM international conference on Aspect-oriented software development
Safe reflection through polymorphism
Proceedings of the first international workshop on Context-aware software technology and applications
A survey of techniques for achieving metadata interoperability
ACM Computing Surveys (CSUR)
Object spaces for safe image surgery
IWST '09 Proceedings of the International Workshop on Smalltalk Technologies
Evolving a reflective language: lessons learned from implementing traits
IWST '09 Proceedings of the International Workshop on Smalltalk Technologies
Why Smalltalk wins the host languages shootout
IWST '09 Proceedings of the International Workshop on Smalltalk Technologies
Isolating untrusted software extensions by custom scoping rules
Computer Languages, Systems and Structures
Brokering planning metadata in a P2P environment
DAIS'08 Proceedings of the 8th IFIP WG 6.1 international conference on Distributed applications and interoperable systems
HotPar'10 Proceedings of the 2nd USENIX conference on Hot topics in parallelism
Pinocchio: bringing reflection to life with first-class interpreters
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Proxies: design principles for robust object-oriented intercession APIs
Proceedings of the 6th symposium on Dynamic languages
Modules as objects in newspeak
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Seuss: better class responsibilities through language-based dependency injection
TOOLS'11 Proceedings of the 49th international conference on Objects, models, components, patterns
Bootstrapping a self-hosted research virtual machine for JavaScript: an experience report
Proceedings of the 7th symposium on Dynamic languages
Virtual values for language extension
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Inspection of distributed and composed systems
Proceedings of the 8th Middleware Doctoral Symposium
Self-adaptive systems: a middleware managed approach
SelfMan'06 Proceedings of the Second IEEE international conference on Self-Managed Networks, Systems, and Services
Virtual machines should be invisible
Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE!'11, AOOPES'11, NEAT'11, & VMIL'11
Which problems does a multi-language virtual machine need to solve in the multicore/manycore era?
Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE!'11, AOOPES'11, NEAT'11, & VMIL'11
Efficient multimethods in a single dispatch language
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
A debug interface for debugging multiple domain specific aspect languages
Proceedings of the 11th annual international conference on Aspect-oriented Software Development
On the revival of dynamic languages
SC'05 Proceedings of the 4th international conference on Software Composition
Aspects of composition in the reflex AOP kernel
SC'06 Proceedings of the 5th international conference on Software Composition
Program transformation with reflection and aspect-oriented programming
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
Using first-class contexts to realize dynamic software updates
Proceedings of the International Workshop on Smalltalk Technologies
Efficient proxies in Smalltalk
Proceedings of the International Workshop on Smalltalk Technologies
Towards structural decomposition of reflection with mirrors
Proceedings of the International Workshop on Smalltalk Technologies
Type systems directed programming language evolution: overview and research trends
Proceedings of the 50th Annual Southeast Regional Conference
A generic solution for agile run-time inspection middleware
Middleware'11 Proceedings of the 12th ACM/IFIP/USENIX international conference on Middleware
TOOLS'12 Proceedings of the 50th international conference on Objects, Models, Components, Patterns
Object-oriented programming with gradual abstraction
Proceedings of the 8th symposium on Dynamic languages
Ownership, filters and crossing handlers: flexible ownership in dynamic languages
Proceedings of the 8th symposium on Dynamic languages
Socio-PLT: principles for programming language adoption
Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software
Main memory software environment for pedagogical prototypes
International Journal of Knowledge Engineering and Soft Data Paradigms
A generic solution for agile run-time inspection middleware
Proceedings of the 12th International Middleware Conference
Efficient dynamic access analysis using JavaScript proxies
Proceedings of the 9th symposium on Dynamic languages
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Contracts for First-Class Classes
ACM Transactions on Programming Languages and Systems (TOPLAS)
Feature-Oriented programming with object algebras
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Science of Computer Programming
Hi-index | 0.01 |
We identify three design principles for reflection and metaprogramming facilities in object oriented programming languages. Encapsulation: meta-level facilities must encapsulate their implementation. Stratification: meta-level facilities must be separated from base-level functionality. Ontological correspondence: the ontology of meta-level facilities should correspond to the ontology of the language they manipulate. Traditional/mainstream reflective architectures do not follow these precepts. In contrast, reflective APIs built around the concept of mirrors are characterized by adherence to these three principles. Consequently, mirror-based architectures have significant advantages with respect to distribution, deployment and general purpose metaprogramming.