Alias Killing: Unique Variables without Destructive Reads
نویسنده
چکیده
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.
منابع مشابه
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...
متن کامل