skip to main content
10.1145/2892664.2892674acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

An advice mechanism for non-local flow control

Published: 14 March 2016 Publication History

Abstract

We propose an advice mechanism called Chop&Graft for non-local flow control. It offers a novel chop pointcut that lets a piece of advice terminate the current execution, and graft and retry operators that resume and restart the terminated executions. By using pointcuts for specifying the region of termination, the mechanism is more robust and more concise than the traditional exception handling mechanisms that rely on names or exception classes. The paper presents the design of the mechanism along with the sketches of two implementations using delimited continuations or threads and exceptions.

References

[1]
S. Akai, S. Chiba, and M. Nishizawa. Region pointcut for AspectJ. In Proceedings of Workshop on Aspects, Components, and Patterns for Infrastructure Software (ACP4IS’09), pages 43–48. 2009.
[2]
E. Bodden. Closure joinpoints: block joinpoints without surprises. In Proceedings of International Conference on Aspect-Oriented Software Development (AOSD’11), pages 117–128, 2011.
[3]
E. Bodden, R. Shaikh, and L. Hendren. Relational aspects as tracematches. In Proceedings of International Conference on Aspect-Oriented Software Development (AOSD’08), pages 84–95, 2008.
[4]
N. Cacho, F. C. Filho, A. Garcia, and E. Figueiredo. EJFlow: taming exceptional control flows in aspect-oriented programming. In Proceedings of International Conference on Aspect-Oriented Software Development (AOSD’08), pages 72–83, 2008.
[5]
A. Colyer and A. Clement. Large-scale AOSD for middleware. In Proceedings of International Conference on Aspect-Oriented Software Development (AOSD’04), pages 56–65, 2004.
[6]
O. Danvy and A. Filinski. Abstracting control. In Proceedings of Conference on LISP and Functional Programming (LFP’90), pages 151–160, 1990.
[7]
C. Dutchyn, D. B. Tucker, and S. Krishnamurthi. Semantics and scoping of aspects in higher-order languages. Science of Computer Programming, 63(3):207–239, 2006.
[8]
M. Felleisen. The theory and practice of first-class prompts. In Proceedings of Symposium on Principles of Programming Languages (POPL’88), pages 180–190, 1988.
[9]
F. C. Filho, et al. Exceptions and aspects: the devil is in the details. In Proceedings of International Symposium on Foundations of Software Engineering (FSE-14), pages 152–156, 2006.
[10]
B. Harbulot and J. R. Gurd. A join point for loops in AspectJ. In Proceedings of International Conference on Aspect-Oriented Software Development (AOSD’06), pages 63–74, 2006.
[11]
P. A. Lee and T. Anderson. Fault Tolerance: Principles and Practice. Springer-Verlag, 1990.
[12]
M. Lippert and C. V. Lopes. A study on exception detection and handling using aspect-oriented programming. In Proceedings of International Conference on Software Engineering (ICSE’00), pages 418–427, 2000.
[13]
H. Masuhara and K. Kawauchi. Dataflow pointcut in aspect-oriented programming. In Proceedings of Asian Symposium on Programming Languages and Systems (APLAS’03), pages 105–121, 2003.
[14]
H. M. Rebˆelo, et al. The contract enforcement aspect pattern. In Proceedings of Latin American Conference on Pattern Languages of Programs, article no. 6, 2010.
[15]
T. Rompf, I. Maier, and M. Odersky. Implementing first-class polymorphic delimited continuations by a type-directed selective CPS-transform. In Proceedings of International Conference on Functional Programming (ICFP ’09), pages 317–328, 2009.
[16]
T. Sekiguchi, H. Masuhara, and A. Yonezawa. A simple extension of Java language for controllable transparent migration and its portable implementation. In Proceedings of International Conference on Coordination Models and Languages (COORDINATION’99), pages 211–226, 1999.
[17]
J. C. Taveira, et al. Assessing intra-application exception handling reuse with aspects. In Proceedings of Brazilian Symposium on Software Engineering, pages 22–31, 2009.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
MODULARITY Companion 2016: Companion Proceedings of the 15th International Conference on Modularity
March 2016
217 pages
ISBN:9781450340335
DOI:10.1145/2892664
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]

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 14 March 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Aspect-oriented programming
  2. delimited continuations
  3. exception handling

Qualifiers

  • Research-article

Conference

Modularity '16

Acceptance Rates

Overall Acceptance Rate 41 of 139 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 52
    Total Downloads
  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 07 Mar 2025

Other Metrics

Citations

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