A library to modularly control asynchronous executions

Hiroaki Fukuda, Paul Leger

Research output: Chapter in Book/Report/Conference proceedingConference contribution

3 Citations (Scopus)

Abstract

Asynchronous programming style has been widely adopted for a variety of reasons one such being the rise of Web applications. Using non-blocking operations is a major approach to enforcing asynchronous programming. A non-blocking operation requires decomposing a module that consists of a set of blocking operations into more than two modules, in turn, leading to a variety of challenges such as callback spaghetti and callback hell. This paper presents SyncAS, a library specification to address these two problems. This library specification follows the ECMAScript standard; indeed, we provide a prototype implementation for ActionScript3. SyncAS proposes a novel approach that enables programmers to virtually block a program execution and restart it at arbitrary points of the program, instead of waiting for a callback execution. As a result, programmers do not need to decompose a module even if nonblocking operations are adopted. SyncAS uses aspect-oriented programming to control the program execution in an oblivious manner.

Original languageEnglish
Title of host publicationProceedings of the ACM Symposium on Applied Computing
PublisherAssociation for Computing Machinery
Pages1648-1650
Number of pages3
Volume13-17-April-2015
ISBN (Print)9781450331968
DOIs
Publication statusPublished - 2015 Apr 13
Event30th Annual ACM Symposium on Applied Computing, SAC 2015 - Salamanca, Spain
Duration: 2015 Apr 132015 Apr 17

Other

Other30th Annual ACM Symposium on Applied Computing, SAC 2015
Country/TerritorySpain
CitySalamanca
Period15/4/1315/4/17

Keywords

  • Aspect-oriented programming
  • Asynchronous programming
  • Modularity
  • Virtual block

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'A library to modularly control asynchronous executions'. Together they form a unique fingerprint.

Cite this