Panini: Reconciling Concurrency and Modularity in Design







Deposit Papers 


Long, Yuheng, Mooney, Sean, Tyler, Sondag and Rajan, Hridesh (2010) Panini: Reconciling Concurrency and Modularity in Design. Technical Report 09-28B, Computer Science, Iowa State University.

Full text available as:Adobe PDF

This is the latest version of this eprint.


Writing correct and efficient concurrent programs still remains a challenge. Explicit concurrency is difficult, error prone, and creates code which is hard to maintain and debug. This type of concurrency also treats modular program design and concurrency as separate goals, where modularity often suffers. To solve these problems, we are designing a new language that we call panini. In this paper, we focus on panini's asynchronous, typed events which reconcile the modularity goal promoted by the implicit invocation design style with the concurrency goal of exposing potential concurrency between the execution of subjects and observers. Since modularity is improved and concurrency is implicit in panini, programs are easy to reason about and maintain. Furthermore, races and deadlocks are avoided entirely yielding programs with a guaranteed sequential semantics. To evaluate our language design and implementation we show several examples of its usage as well as an empirical study of program performance. We found that not only is developing and understanding panini programs significantly easier compared to standard concurrent object-oriented programs, but performance of panini programs is comparable to the equivalent programs written using Java's fork-join framework.

Comments:implicit-invocation languages, aspect-oriented programming languages, event types, event expressions, concurrent languages
Subjects:Software: PROGRAMMING TECHNIQUES (E): Concurrent Programming
ID code:00000634
Deposited by:Yuheng Long on 08 April 2010

Available Versions of This Paper

Contact site administrator at: