Loading...
Please wait, while we are loading the content...
Similar Documents
Writing data-centric concurrent programs in imperative languages
| Content Provider | Semantic Scholar |
|---|---|
| Author | Sears, Russell Douglas, Christopher |
| Copyright Year | 2012 |
| Abstract | Declarative languages have been proposed for use in concurrent and distributed system development. In this work, we argue that the primary benefits of such languages come not from their declarative nature, but instead from the design patterns they espouse. We explain how to apply these design patterns to C and Java and present two examples: a highly concurrent transactional storage system and a distributed storage implementation. We use case studies to highlight problems in current imperative and declarative approaches. Compared to conventional imperative approaches, the additional rigor imposed by our approach improves testability and enables a wider range of systematic optimization and parallelization techniques. We inherit these properties from the declarative languages we mimic. The resulting implementations are structured as programs in those languages would be: they consist of view maintenance routines and asynchronous event handlers. However, our use of manually generated code allows us to leverage the full range of imperative programming techniques. In particular, performance constraints sometimes force us to use techniques such as deadlock avoidance, invariant weakening, and lock-free updates. Such techniques are unavailable in current declarative runtimes; their correctness requires reasoning beyond the capabilities of current software synthesis systems. Over time we expect higher level languages to improve dramatically, and we hope that some of our techniques will inform their designs. However, our concerns are more immediate: one of our systems is already in production, and development of the other is underway. |
| File Format | PDF HTM / HTML |
| Alternate Webpage(s) | https://www.usenix.org/system/files/conference/hotpar12/hotpar12-final36.pdf |
| Language | English |
| Access Restriction | Open |
| Content Type | Text |
| Resource Type | Article |