Alias Killing: Unique Variables without Destructive Reads

نویسنده

  • John Tang Boyland
چکیده

An unshared object can be accessed without regard to possible connicts with other parts of a system, whether concurrent or single-threaded. A unique variable (sometimes known as a \free" or \linear" variable) is one that either is null or else refers to an unshared object. Being able to declare and check which variables are unique improves a pro-grammer's ability to avoid program faults. In previously described uniqueness extensions to imperative languages, a unique variable can be ac-cessed only with a destructive read, which nulli-es it after the value is obtained. This approach suuers from several disadvantages: the use of destructive reads increases the complexity of the program which must continually restore nulliied values ; adding destructive reads changes the semantics of the programming language; and many of the nulliications are actually unnecessary. We demonstrate instead that uniqueness can be preserved through the use of existing language features. We give a modular analysis that checks (nonexecutable) uniqueness annotations superimposed on an imperative programming language without destructive reads.

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

ثبت نام

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

منابع مشابه

Alias burying: Unique variables without destructive reads

An unshared object can be accessed without regard to possible conflicts with other parts of a system, whether concurrent or single-threaded. A unique variable (sometimes known as a ‘free’ or ‘linear’ variable) is one that either is null or else refers to an unshared object. Being able to declare and check which variables are unique improves a programmer’s ability to avoid program faults. In pre...

متن کامل

Capabilities for Uniqueness and Borrowing

An important application of unique object references is safe and efficient message passing in concurrent object-oriented programming. However, to prevent the ill effects of aliasing, practical systems often severely restrict the shape of messages passed by reference. Moreover, the problematic interplay between destructive reads–often used to implement unique references–and temporary aliasing th...

متن کامل

RNA-seq data from different developmental stages of Rafflesia cantleyi floral buds

Rafflesia cantleyi, known as one of the world's largest flowers, is a specialised holoparasite due to dramatic morphological modifications. It possesses highly reduced vegetative structure and only appears as a flower for sexual reproduction. Moreover, it has an unusual life cycle in that its floral bud development takes up to nine months. In order to fully understand the highly modified floral...

متن کامل

A tool for visualizing the usage of the input data for a method using alias analysis

In program comprehension, developers often spend a lot of time for the investigation of input/output during an execution of a method. In Java program, input for a method includes arguments, fields and class variables. To identify fields and class variables used by a method, developers must invetigate all methods which may be called from the method. In this paper, we propose a tool for visualizi...

متن کامل

Alias Analysis for Java with Reference-Set Representation

We propose a flow-sensitive context-insensitive alias analysis in Java that is more efficient and precise than previous analyses in C++. For that, we propose a reference-set alias representation. Second, we present the propagation rules for the reference-set alias representation. Third, for the type determination, the type table is built with reference variables and all possible types of the re...

متن کامل

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


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

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

ثبت نام

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

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

دوره   شماره 

صفحات  -

تاریخ انتشار 1999