Sciweavers

ECOOP
2012
Springer

Object Initialization in X10

11 years 7 months ago
Object Initialization in X10
X10 is an object oriented programming language with a sophisticated type system (constraints, class invariants, non-erased generics, closures) and concurrency constructs (asynchronous activities, multiple places). Object initialization is a cross-cutting concern that interacts with all of these features in delicate ways that may cause type, runtime, and security errors. This paper discusses possible designs for object initialization, and the “hardhat” design chosen and implemented in X10 version 2.2. Our implementation includes a fixed-point inter-procedural (intra-class) data-flow analysis that infers, for each method called during initialization, the set of fields that are read, and those that are asynchronously and synchronously assigned. Our codebase of more than 200K lines of code only had 104 annotations. Finally, we formalize the essence of initialization checking with an effect system intended to complement a standard FJ style formalization of the type system for X10. Th...
Yoav Zibin, David Cunningham, Igor Peshansky, Vija
Added 28 Sep 2012
Updated 28 Sep 2012
Type Journal
Year 2012
Where ECOOP
Authors Yoav Zibin, David Cunningham, Igor Peshansky, Vijay A. Saraswat
Comments (0)