Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2451436.2451460acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

Method slots: supporting methods, events, and advices by a single language construct

Published: 24 March 2013 Publication History

Abstract

To simplify the constructs that programmers have to learn for using paradigms, we extend methods to a new language construct, a method slot, to support both the event-handler paradigm and the aspect paradigm. A method slot is an object's property that can keep more than one function closure and be called like a method. We also propose a Java-based language, DominoJ, which replaces methods in Java with method slots, and explain the behavior of method slots and the operators. Then we evaluate the coverage of expressive ability of method slots by comparing DominoJ with other languages in detail. The feasibility of method slots is shown as well by implementing a prototype compiler and running a preliminary microbenchmark for it.

References

[1]
L. Bergmans and M. Aksit. Composing crosscutting concerns using composition filters. Commun. ACM, 44(10):51--57, Oct. 2001.
[2]
S. Chiba, A. Igarashi, and S. Zakirov. Mostly modular compilation of crosscutting concerns by contextual predicate dispatch. In OOPSLA '10, pages 539--554. ACM, 2010.
[3]
J. Dedecker, T. V. Cutsem, S. Mostinckx, and W. D. Meuter. Ambient-oriented programming in AmbientTalk. In ECOOP '06, pages 230--254. Springer, 2006.
[4]
S. Drossopoulou, F. Damiani, D. Dezani-Ciancaglini, and P. Giannini. Fickle: Dynamic object re-classification. In ECOOP '01, pages 130--149, 2001.
[5]
M. Ernst, C. Kaplan, and C. Chambers. Predicate dispatching: A unified theory of dispatch. In ECOOP '98, pages 186--211. Springer-Verlag, 1998.
[6]
P. T. Eugster and K. R. Jayaram. EventJava: An extension of Java for event correlation. In ECOOP '09, pages 570--594, 2009.
[7]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns. Addison-Wesley, 1994.
[8]
D. Garlan, S. Jha, D. Notkin, and J. Dingel. Reasoning about implicit invocation. In SIGSOFT '98/FSE-6, pages 209--221. ACM, 1998.
[9]
V. Gasiunas, L. Satabin, M. Mezini, A. Núnez, and J. Noyé. EScala: modular event-driven object interactions in Scala. In AOSD '11, pages 227--240. ACM, 2011.
[10]
J. Hannemann and G. Kiczales. Design pattern implementation in Java and AspectJ. In OOPSLA '02, pages 161--173. ACM, 2002.
[11]
M. Haupt. A machine model for aspect-oriented programming. In ECOOP '07, pages 501--524, 2007.
[12]
W. Havinga, L. Bergmans, and M. Aksit. A model for composable composition operators: expressing object and aspect compositions with first-class operators. In AOSD '10, pages 145--156. ACM, 2010.
[13]
T. Kamina, T. Aotani, and H. Masuhara. EventCJ: a context-oriented programming language with declarative event-based context transition. In AOSD '11, pages 253--264. ACM, 2011.
[14]
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J. marc Loingtier, and J. Irwin. Aspect-oriented programming. In ECOOP '97. Springer-Verlag, 1997.
[15]
H. Masuhara, Y. Endoh, and A. Yonezawa. A fine-grained join point model for more reusable aspects. In APLAS '06, pages 131--147, 2006.
[16]
L. A. Meyerovich, A. Guha, J. Baskin, G. H. Cooper, M. Greenberg, A. Bromfield, and S. Krishnamurthi. Flapjax: a programming language for ajax applications. In OOPSLA '09, pages 1--20. ACM, 2009.
[17]
Microsoft Corporation. C# language specification.
[18]
Microsoft Corporation. Messages and message queues.
[19]
A. Núnez, J. Noyé, and V. Gasiunas. Declarative definition of contexts with polymorphic events. In COP '09, pages 2:1--2:6. ACM, 2009.
[20]
Oracle Corporation. OpenJDK: Project Lambda.newlinehttp://openjdk.java.net/projects/lambda/.
[21]
D. Orleans. Incremental programming with extensible decisions. In AOSD '02, pages 56--64. ACM, 2002.
[22]
H. Rajan and G. T. Leavens. Ptolemy: A language with quantified, typed events. In ECOOP '08, pages 155--179, 2008.
[23]
H. Schippers, D. Janssens, M. Haupt, and R. Hirschfeld. Delegation-based semantics for modularizing crosscutting concerns. In OOPSLA '08, pages 525--542. ACM, 2008.
[24]
Sun Microsystems. Abstract window toolkit.newlinehttp://java.sun.com/products/jdk/awt/.
[25]
The AspectJ Project.newlinehttp://www.eclipse.org/aspectj/.
[26]
The Boost Project. Boost.Signals.newlinehttp://www.boost.org/libs/signals/.
[27]
The JastAdd Project. JastAddJ: The JastAdd Extensible Java Compiler. http://jastadd.org/web/jastaddj/.
[28]
The Qt Project. Signals & Slots. http://qt-project.org/doc/signalsandslots.
[29]
The SAX project. Simple api for xml. http://www.saxproject.org/.
[30]
The Self project. http://selflanguage.org/.
[31]
The X.Org project. Xlib in x window system. http://www.x.org/.
[32]
J. Widom and S. J. Finkelstein. Set-oriented production rules in relational database systems. In SIGMOD '90, pages 259--270. ACM Press, 1990.
[33]
Y. Zhuang and S. Chiba. Applying DominoJ to GoF Design Patterns. Technical report, Dept. of Math. and Comp., Tokyo Institute of Technology, 2011.

Cited By

View all
  • (2016)Expanding Event Systems to Support Signals by Enabling the Automation of Handler BindingsJournal of Information Processing10.2197/ipsjjip.24.62024:4(620-634)Online publication date: 2016
  • (2016)Generalized Layer Activation Mechanism for Context-Oriented ProgrammingTransactions on Modularity and Composition I10.1007/978-3-319-46969-0_4(123-166)Online publication date: 30-Sep-2016
  • (2016)Programming with Emergent Gummy ModulesTransactions on Modularity and Composition I10.1007/978-3-319-46969-0_3(80-119)Online publication date: 30-Sep-2016
  • Show More Cited By

Index Terms

  1. Method slots: supporting methods, events, and advices by a single language construct

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    AOSD '13: Proceedings of the 12th annual international conference on Aspect-oriented software development
    March 2013
    232 pages
    ISBN:9781450317665
    DOI:10.1145/2451436
    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

    • AOSA: Aspect-Oriented Software Association

    In-Cooperation

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 24 March 2013

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. aspect-oriented programming
    2. event-driven programming

    Qualifiers

    • Research-article

    Conference

    AOSD '13
    Sponsor:
    • AOSA
    AOSD '13: Aspect-Oriented Software Development
    March 24 - 29, 2013
    Fukuoka, Japan

    Acceptance Rates

    Overall Acceptance Rate 41 of 139 submissions, 29%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)1
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 15 Jan 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2016)Expanding Event Systems to Support Signals by Enabling the Automation of Handler BindingsJournal of Information Processing10.2197/ipsjjip.24.62024:4(620-634)Online publication date: 2016
    • (2016)Generalized Layer Activation Mechanism for Context-Oriented ProgrammingTransactions on Modularity and Composition I10.1007/978-3-319-46969-0_4(123-166)Online publication date: 30-Sep-2016
    • (2016)Programming with Emergent Gummy ModulesTransactions on Modularity and Composition I10.1007/978-3-319-46969-0_3(80-119)Online publication date: 30-Sep-2016
    • (2015)Generalized layer activation mechanism through contexts and subscribersProceedings of the 14th International Conference on Modularity10.1145/2724525.2724570(14-28)Online publication date: 16-Mar-2015
    • (2015)Reifying the reflectogramProceedings of the 30th Annual ACM Symposium on Applied Computing10.1145/2695664.2695883(1978-1985)Online publication date: 13-Apr-2015
    • (2015)Enabling the Automation of Handler Bindings in Event-Driven ProgrammingProceedings of the 2015 IEEE 39th Annual Computer Software and Applications Conference - Volume 0210.1109/COMPSAC.2015.48(137-146)Online publication date: 1-Jul-2015
    • (2014)Emergent gummy modules: modular representation of emergent behaviorACM SIGPLAN Notices10.1145/2775053.265876450:3(15-24)Online publication date: 15-Sep-2014
    • (2014)Emergent gummy modules: modular representation of emergent behaviorProceedings of the 2014 International Conference on Generative Programming: Concepts and Experiences10.1145/2658761.2658764(15-24)Online publication date: 15-Sep-2014
    • (2014)REScalaProceedings of the 13th international conference on Modularity10.1145/2577080.2577083(25-36)Online publication date: 22-Apr-2014

    View Options

    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