Powered by
15th International Conference on Modularity (MODULARITY Companion 2016),
March 14–17, 2016,
Málaga, Spain
Workshop on Foundations Of Aspect-Oriented Languages (FOAL 2016)
An Advice Mechanism for Non-local Flow Control
Hidehiko Masuhara , Kenta Fujita, and Tomoyuki Aotani
(Tokyo Institute of Technology, Japan)
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.
@InProceedings{MODULARITY Companion16p73,
author = {Hidehiko Masuhara and Kenta Fujita and Tomoyuki Aotani},
title = {An Advice Mechanism for Non-local Flow Control},
booktitle = {Proc.\ MODULARITY Companion},
publisher = {ACM},
pages = {73--78},
doi = {},
year = {2016},
}
Using Continuations and Aspects to Tame Asynchronous Programming on the Web
Paul Leger
and Hiroaki Fukuda
(Universidad Católica del Norte, Chile; Shibaura Institute of Technology, Japan)
In asynchronous programming of JavaScript, callbacks are widely used to develop rich interactive Web applications. However, the dependency among callbacks can make it difficult to understand and maintain pieces of code, which will mix concerns eventually. Unfortunately, current solutions for JavaScript do not fully address the aforementioned issue. This paper presents Sync/cc, a JavaScript library that uses continuations and aspects to allow developers to write asynchronous pieces of code in a synchronous style, preventing callback dependencies. Unlike current solutions, Sync/cc is modular, customizable, and succinct because it does not require special and scattered keywords, code refactoring, or adding ad-hoc implementations like state machines. In practice, Sync/cc uses a) continuations to only suspend the current handler execution until the asynchronous operation is resolved, and b) aspects to apply continuations in a non-intrusive way.
@InProceedings{MODULARITY Companion16p79,
author = {Paul Leger and Hiroaki Fukuda},
title = {Using Continuations and Aspects to Tame Asynchronous Programming on the Web},
booktitle = {Proc.\ MODULARITY Companion},
publisher = {ACM},
pages = {79--82},
doi = {},
year = {2016},
}
Toward Disposable Domain-Specific Aspect Languages
Arik Hadas and David H. Lorenz
(Open University of Israel, Israel; Technion, Israel)
Consider the task of auditing an application whose
main functionality is to execute commands received
from clients. One could audit command executions with
AspectJ. Alternatively, one could design, implement,
and use a domain-specific aspect language for auditing,
and then throw the language away. In this paper we argue
that such disposable aspect languages are useful and that
developing them may overall be as cost-effective as using
general-purpose aspect languages.
@InProceedings{MODULARITY Companion16p83,
author = {Arik Hadas and David H. Lorenz},
title = {Toward Disposable Domain-Specific Aspect Languages},
booktitle = {Proc.\ MODULARITY Companion},
publisher = {ACM},
pages = {83--85},
doi = {},
year = {2016},
}
proc time: 1.07