Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Panini: Reconciling Concurrency and Modularity in Design
[go: Go Back, main page]

Department of Computer Science

Laboratory for Software Design


The research and educational activities described on these pages has been supported in part by the US National Science Foundation (NSF) under grants CCF-11-17937, CCF-10-17334, CNS-07-09217, CNS-06-27354, and a CAREER award 08-46059.

Got a question?

Got a question or comment? Contact us at (515) 294-6168 or hridesh@iastate.edu.

Panini: Reconciling Concurrency and Modularity in Design

By Yuheng Long, Sean Mooney, Tyler Sondag and Hridesh Rajan

Abstract

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 report, 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.

Bibliographic Information

@TechReport{ Long-Mooney-Sondag-Rajan-10,
Author = { Yuheng Long and Sean Mooney and Tyler Sondag and Hridesh Rajan },
Title = { Panini: Reconciling Concurrency and Modularity in Design },
institution = { Iowa State University, Department of Computer Science },
year = { 2010 },
number = { 09-28b },
month = { March },
}

Full Paper: PDF

This technical report is superceded by the following research paper: Yuheng Long, Sean L. Mooney, Tyler Sondag and Hridesh Rajan, " Implicit Invocation Meets Safe, Implicit Concurrency," GPCE'10: Ninth International Conference on Generative Programming and Component Engineering, October 2010, Eindhoven, Netherlands.