LACASA: Lightweight Affinity and Object Capabilities in Scala
2016 (English)In: SIGPLAN notices, ISSN 0362-1340, E-ISSN 1558-1160, Vol. 51, no 10, 272-291 p.Article in journal (Refereed) Published
Aliasing is a known source of challenges in the context of imperative object-oriented languages, which have led to important advances in type systems for aliasing control. However, their large-scale adoption has turned out to be a surprisingly difficult challenge. While new language designs show promise, they do not address the need of aliasing control in existing languages. This paper presents a new approach to isolation and uniqueness in an existing, widely-used language, Scala. The approach is unique in the way it addresses some of the most important obstacles to the adoption of type system extensions for aliasing control. First, adaptation of existing code requires only a minimal set of annotations. Only a single bit of information is required per class. Surprisingly, the paper shows that this information can be provided by the object-capability discipline, widely-used in program security. We formalize our approach as a type system and prove key soundness theorems. The type system is implemented for the full Scala language, providing, for the first time, a sound integration with Scala's local type inference. Finally, we empirically evaluate the conformity of existing Scala open-source code on a corpus of over 75,000 LOC.
Place, publisher, year, edition, pages
ACM Digital Library, 2016. Vol. 51, no 10, 272-291 p.
Aliasing, uniqueness, object capabilities, Scala
Computer and Information Science
IdentifiersURN: urn:nbn:se:kth:diva-203178DOI: 10.1145/2983990.2984042ISI: 000393581000016OAI: oai:DiVA.org:kth-203178DiVA: diva2:1081618
ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), NOV 02-04, 2016, Amsterdam, NETHERLANDS
QC 201703142017-03-142017-03-142017-03-14Bibliographically approved