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

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

Mirages: behavioral intercession in a mirror-based architecture

Published: 22 October 2007 Publication History

Abstract

Mirror-based systems are object-oriented reflective architectures built around a set of design principles that lead to reflective APIs which foster a high degree of reusability, loose coupling with base-level objects and whose structure and design corresponds to the system being mirrored. However, support for behavioral intercession has been limited in contemporary mirror-based architectures, in spite of its many interesting applications. This is due to the fact that mirror-based architectures only support explicit reflection, while behavioral intercession requires implicit reflection. This work reconciles mirrors with behavioral intercession. We discuss the design of a mirror-based architecture with implicit mirrors that can be absorbed in the interpreter, and mirages, base objects whose semantics are defined by implicit mirrors. We describe and illustrate the integration of this reflective architecture for the distributed object-oriented programming language AmbientTalk.

References

[1]
AGESEN, O., BAK, L., CHAMBERS, C., CHANG, B.-W., HÖLSZLE, U., MALONEY, J., SMITH, R., UNGAR, D., AND WOLCZKO, M. The SELF 4.1 programmer's reference manual. Tech. rep., Sun Microsystems, Inc. and Stanford University, 2000.
[2]
AGHA, G. Actors: a Model of Concurrent Computation in Distributed Systems. MIT Press, 1986.
[3]
BOCKISH, C., HAUPT, M., MEZINI, M., AND OSTERMANN, K. Virtual machine support for dynamic join points. In Lieberherr {14}, pp. 83--92.
[4]
BRACHA, G., AND GRISWOLD, D. Strongtalk: Typechecking Smalltalk in a Production Environment. In Proceedings of the 8th annual Conference on Object-oriented Programming Systems, Languages and Applications (1993), pp. 215--230.
[5]
BRACHA, G., AND UNGAR, D. Mirrors: Design principles for meta-level facilities of object-oriented programming languages. In Proceedings of the 19th annual Conference on Object-Oriented Programming, Systems, Languages and Applications (2004), pp. 331--343.
[6]
BRANT, J., FOOTE, B., JOHNSON, R., AND ROBERTS, D. Wrappers to the rescue. In Proceedings of the 12th European Conference on Object-Oriented Programming (1998), LNCS vol. 1445, Springer-Verlag, pp. 396--417.
[7]
CAROMEL, D. Service, asynchrony and wait-by-necessity. Journal of Object-Oriented Programming 2, 4 (November-December 1989), 12--18.
[8]
CHIBA, S., AND NISHIZAWA, M. An easy-to-use toolkit for efficient Java bytecode translators. In Proceedings of the 2nd ACM SIGPLAN/SIGSOFT Conference on Generative Programming and Component Engineering (2003), LNCS vol. 2830, Springer-Verlag, pp. 364--376.
[9]
DEDECKER, J., VAN CUTSEM, T., MOSTINCKX, S., D'HONDT, T., AND DE MEUTER, W. Ambient-oriented Programming in Ambienttalk. In Proceedings of the 20th European Conference on Object-oriented Programming (2006), LNCS vol. 4067, Springer-Verlag, pp. 230--254.
[10]
DENKER, M., DUCASSE, S., AND TANTER, É. Runtime bytecode transformation for Smalltalk. Journal of Computer Languages, Systems and Structures 32, 2-3 (2006), 125--139.
[11]
DUCASSE, S. Evaluating message passing control techniques in Smalltalk. Journal of Object-Oriented Programming 12, 6 (1999), 39--44.
[12]
HILSDALE, E., AND HUGUNIN, J. Advice weaving in AspectJ. In Lieberherr {14}, pp. 26--35.
[13]
KICZALES, G., RIVIERES, J. D., AND BOBROW, D. G. The Art of the Metaobject Protocol. MIT Press, Cambridge, MA, USA, 1991.
[14]
LIEBERHERR, K., Ed. Proceedings of the 3rd International Conference on Aspect-Oriented Software Development (2004), ACM Press.
[15]
LIEBERMAN, H. Using prototypical objects to implement shared behavior in object-oriented systems. In Conference proceedings on Object-oriented Programming Systems, Languages and Applications (1986), ACM Press, pp. 214--223.
[16]
LISKOV, B., AND SHRIRA, L. Promises: linguistic support for efficient asynchronous procedure calls in distributed systems. In Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation (1988), ACM Press, pp. 260--267.
[17]
MAES, P. Concepts and experiments in computational reflection. In Conference proceedings on Object-oriented Programming Systems, Languages and Applications (1987), ACM Press, pp. 147--155.
[18]
MAES, P., AND NARDI, D., Eds. Meta-Level Architectures and Reflection. North-Holland, Alghero, Sardinia, Oct. 1988.
[19]
MILLER, M., TRIBBLE, E. D., AND SHAPIRO, J. Concurrency among strangers: Programming in E as plan coordination. In Symposium on Trustworthy Global Computing (2005), LNCS vol. 3705, Springer, pp. 195--229.
[20]
MULET, P., MALENFANT, J., AND COINTE, P. Towards a methodology for explicit composition of metaobjects. In Proceedings of the 10th International Conference on Object-Oriented Programming Systems, Languages and Applications (1995), ACM Press, pp. 316--330. ACM SIGPLAN Notices, 30(10).
[21]
PAEPCKE, A. User-level language crafting: Introducing the CLOS metaobject protocol. In Object-oriented programming: the CLOS perspective. MIT Press, Cambridge, MA, USA, 1993, pp. 65--99.
[22]
RöTHLISBERGER, D., DENKER, M., AND TANTER, É. Unanticipated partial behavioral reflection: Adapting applications at runtime. Journal of Computer Languages, Systems and Structures (2007). To appear.
[23]
SMITH, B. C. Reflection and semantics in Lisp. In Proceedings of the 14th Annual ACM Symposium on Principles of Programming Languages (1984), ACM Press, pp. 23--35.
[24]
TANTER, É., NOYÉ, J., CAROMEL, D., AND COINTE, P. Partial behavioral reflection: Spatial and temporal selection of reification. In Proceedings of the 18th ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (2003), ACM Press, pp. 27--46. ACM SIGPLAN Notices, 38(11).
[25]
UNGAR, D., CHAMBERS, C., CHANG, B.-W., AND HöLZLE, U. Organizing programs without classes. Lisp Symb. Comput. 4, 3 (1991), 223--242.
[26]
WELCH, I., AND STROUD, R. J. Kava - using bytecode rewriting to add behavioral reflection to Java. In Proceedings of USENIX Conference on Object-Oriented Technologies and Systems (2001), pp. 119--130.
[27]
YONEZAWA, A., BRIOT, J.-P., AND SHIBAYAMA, E. Object-oriented concurrent programming in ABCL/1. In Conference proceedings on Object-oriented programming systems, languages and applications (1986), ACM Press, pp. 258--268.
[28]
ZIMMERMANN, C. Advances in Object-Oriented Metalevel Architectures and Reflection. CRC Press, 1996.

Cited By

View all

Index Terms

  1. Mirages: behavioral intercession in a mirror-based architecture

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    DLS '07: Proceedings of the 2007 symposium on Dynamic languages
    October 2007
    108 pages
    ISBN:9781595938688
    DOI:10.1145/1297081
    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: 22 October 2007

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. AmbientTalk
    2. metaprogramming
    3. mirages
    4. mirrors
    5. reflection

    Qualifiers

    • Article

    Conference

    OOPSLA07
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 32 of 77 submissions, 42%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)5
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 18 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2013)Interacting with dead objectsACM SIGPLAN Notices10.1145/2544173.250954348:10(203-216)Online publication date: 29-Oct-2013
    • (2013)Interacting with dead objectsProceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications10.1145/2509136.2509543(203-216)Online publication date: 29-Oct-2013
    • (2013)Event Loop Coordination Using Meta-programmingCoordination Models and Languages10.1007/978-3-642-38493-6_14(196-210)Online publication date: 2013
    • (2011)Towards structural decomposition of reflection with mirrorsProceedings of the International Workshop on Smalltalk Technologies10.1145/2166929.2166941(1-5)Online publication date: 23-Aug-2011
    • (2010)Modules as objects in newspeakProceedings of the 24th European conference on Object-oriented programming10.5555/1883978.1884007(405-428)Online publication date: 21-Jun-2010
    • (2010)ProxiesACM SIGPLAN Notices10.1145/1899661.186963845:12(59-72)Online publication date: 18-Oct-2010
    • (2010)ProxiesProceedings of the 6th symposium on Dynamic languages10.1145/1869631.1869638(59-72)Online publication date: 18-Oct-2010
    • (2010)Modules as Objects in NewspeakECOOP 2010 – Object-Oriented Programming10.1007/978-3-642-14107-2_20(405-428)Online publication date: 2010
    • (2008)Reflection for the MassesSelf-Sustaining Systems10.1007/978-3-540-89275-5_6(87-122)Online publication date: 15-May-2008
    • (2008)Experimenting with Language Support for Proximity in Ambient-Oriented ProgrammingEngineering Environment-Mediated Multi-Agent Systems10.1007/978-3-540-85029-8_17(259-283)Online publication date: 1-Mar-2008

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media