SyncAS: A Virtual Block Approach to Tame Asynchronous Programming

Hiroaki Fukuda, Paul Leger

Research output: Contribution to journalArticle

Abstract

Asynchronous programming has been widely adopted in domains such as Web development. This programming style usually uses callback methods, non-blocking operations, allowing high responsive user interactions even if an application works without multi-threading. However, this style requires the uncoupling of a module into two sub-modules at least, which are not intuitively connected by a callback method. The separation of modules spurs the birth of other issues: callback spaghetti and callback hell. This paper proposes a virtual block approach to address the previous two issues. This approach enables a programmer to virtually block a program execution and restart it at arbitrary points in the program. As a result, programmers do not need to uncouple a module even if non-blocking operations are adopted; therefore, callback dependencies disappear. Using aspect-oriented programming, this approach uses aspects to control the execution of a program in an oblivious manner. As a consequence, programmers do not need to be concerned whether pieces of code use blocking or non-blocking operations. We implement a proof-of-concept for this approach, called SyncAS, for ActionScript3. In addition, we apply our proposal to a toy application and conduct experiments to show its modular application, flexibility, and performance.

Original languageEnglish
Pages (from-to)887-907
Number of pages21
JournalInternational Journal of Software Engineering and Knowledge Engineering
Volume25
Issue number5
DOIs
Publication statusPublished - 2015 Jun 30

Keywords

  • aspect-oriented programming
  • asynchronous programming
  • SyncAS
  • virtual block

ASJC Scopus subject areas

  • Software
  • Artificial Intelligence
  • Computer Graphics and Computer-Aided Design
  • Computer Networks and Communications

Fingerprint Dive into the research topics of 'SyncAS: A Virtual Block Approach to Tame Asynchronous Programming'. Together they form a unique fingerprint.

  • Cite this