Object Initialization in X10

نویسندگان

  • Yoav Zibin
  • David Cunningham
  • Igor Peshansky
  • Vijay A. Saraswat
چکیده

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. This system is substantially simpler than the masked types of [10], and it is more practical (for X10) than the free-committed types of [12]. This is the first formalization of a type and (flow-sensitive) effect system for safe initialization in the presence of concurrency constructs.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Concurrent Clustered Programming ? ( Extended

We present the concurrency and distribution primitives ofX10, a modern, statically typed, class-based object-oriented (OO) programming language, designed for high productivity programming of scalable applications on high-end machines. The basic move in the X10 programming model is to reify locality through a notion of place, which hosts multiple data items and activities that operate on them. A...

متن کامل

The Design and Implementation of Clocked Variables in X10

This paper investigates the addition of Clocked Variables to the X10 Programming Language. Clocked Variables work well for primitives and objects with only primitive fields, but incur substantial performance penalties for more complex objects. We discuss ways to deal with these issues.

متن کامل

Finding sufficient conditions to guarantee freedom from deadlock when using futures in X10 programs

ABSTRACT X10 is a new object oriented programming language developed by IBM. X10 extends sequential Java, i.e. Java without support for threads, with new concurrency primitives. Asynchronously executed expressions, or futures, are one of these new concurrency primitives. The incorrect use of futures may however lead to deadlock situations. This paper formulates a model to describe the interacti...

متن کامل

Semantics of (Resilient) X10

C o n si st en t * lete * W ll D o c u m e n t e d * E a s y t o R e u s e * * E v a l u a t e d * E C O O P * Ar tifact * A E C We present a formal small-step structural operational semantics for a large fragment of X10, unifying past work. The fragment covers multiple places, mutable objects on the heap, sequencing, try/catch, async, finish, and at constructs. This model accurately captures t...

متن کامل

Clocked References in X10

1. INTRODUCTION 2. BACKGROUND 2.1 The X10 Programming Language X10 is a programming language that is currently under development at IBM Research. It is a strongly typed, concurrent , imperative, and object-oriented programming language. Of those descriptors, concurrent is the most important , as X10 was designed with multi-core and clustered systems in mind [4, 3]. The goal of X10 is to allow p...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2012