Abstract
Dynamic languages like Erlang, Clojure, JavaScript, and E adopted data-race freedom by design. To enforce data-race freedom, these languages either deep copy objects during actor (thread) communication or proxy back to their owning thread. We present Dala, a simple programming model that ensures data-race freedom while supporting efficient inter-thread communication. Dala is a dynamic, concurrent, capability-based language that relies on three core capabilities: immutable values can be shared freely; isolated mutable objects can be transferred between threads but not aliased; local objects can be aliased within their owning thread but not dereferenced by other threads. Objects with capabilities can co-exist with unsafe objects, that are unchecked and may suffer data races, without compromising the safety of safe objects. We present a formal model of Dala, prove data race-freedom and state and prove a dynamic gradual guarantee. These theorems guarantee data race-freedom when using safe capabilities and show that the addition of capabilities is semantics preserving modulo permission and cast errors.
Author supplied keywords
Cite
CITATION STYLE
Fernandez-Reyes, K., Gariano, I. O., Noble, J., Greenwood-Thessman, E., Homer, M., & Wrigstad, T. (2021). Dala: A simple capability-based dynamic language design for data race-freedom. In Onward! 2021 - Proceedings of the 2021 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, co-located with SPLASH 2021 (pp. 1–17). Association for Computing Machinery, Inc. https://doi.org/10.1145/3486607.3486747
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.