## Analysis of Synchronization and Aliasing with Abstract Interpretation (0)

Citations: | 5 - 3 self |

### BibTeX

@MISC{Colby_analysisof,

author = {Christopher Colby},

title = {Analysis of Synchronization and Aliasing with Abstract Interpretation},

year = {}

}

### OpenURL

### Abstract

We present a framework for the automatic determination of synchronization and aliasing properties of a functional language extended with concurrency constructs (a subset of Concurrent ML). Synchronization properties state which processes, and at what process histories, may be simultaneously active during evaluation. Aliasing properties state which data, on what processes and at what process histories, may be shared. First, we develop a semantics in which the usual arbitrary set of channel identifiers is rendered unnecessary by a semantic notion of aliasing, and in which the usual arbitrary set of process identifiers is rendered unnecessary by a semantic notion of process history as control path. The result is a semantics in which synchronization properties and aliasing properties are mutually dependent, and this provides a rich framework for reasoning about t...

### Citations

2004 |
Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints
- Cousot, Cousot
- 1977
(Show Context)
Citation Context ...computes a data structure that represents a superset of the possible states with alias relations that can be reached by zero or more transitions from the initial state. We use abstract interpretation =-=[5]-=-, a framework that allows flexibility in the choice of approximations that will in turn determine the precision of the computed superset. The idea is to pick a data structure that represents a superse... |

1627 | The Definition of Standard ML
- Milner, Tofte, et al.
- 1990
(Show Context)
Citation Context ...tion-topology analysis for a fragment of Concurrent ML. 2. A Sequential Core Language We begin by defining a sequential core language. It is the first-order, polymorphic fragment of Standard ML (SML) =-=[20] without-=- references described below. x 2 Var n 2 Z f 2 Field c 2 Constructor p 2 ProcId t 2 TyCon �� 2 TyVar P ::= tdecl 1 . . . tdecl m pdecl 1 ; . . . ; pdecl n e tdecl ::= datatype (~�� 1 )t 1 = c ... |

667 | Systematic design of program analysis frameworks
- COUSOT, COUSOT
(Show Context)
Citation Context ...th a 0 . Notice that the above propositions reason about non-membership. This reflects that the pair (��; j) that ff 1 returns is an upper-approximation, or superset, of a set of states. Indeed, f=-=rom [6], since -=-ff 1 is additive it corresponds to a semi-dual Galois connection (ff 1 ; fl 1 ), where: fl 1 (��; j) = [fT 2s(State) j ff 1 (T ) ` (��; j)g This approximation provides the conceptual basis for... |

604 | Automatic Discovery of Linear Restraints among Variables of a
- Cousot, Halbwachs
- 1978
(Show Context)
Citation Context ... uses the idea of relating among recursive location depths in his sequential-language alias analysis [10, Chap. 4]. Examples of lattices appropriate for N ] : linear equalities [17], convex polyhedra =-=[9]-=-, simple sections [8], linear congruence equalities [14], congruential trapezoids [18], multiplicative linear equalities [13]. For brevity, we must omit further detail about Deutsch's lattices; the re... |

249 | Abstract interpretation frameworks
- Cousot, Cousot
- 1992
(Show Context)
Citation Context ...ating among recursive location depths in his sequential-language alias analysis [10, Chap. 4]. Examples of lattices appropriate for N ] : linear equalities [17], convex polyhedra [9], simple sections =-=[8]-=-, linear congruence equalities [14], congruential trapezoids [18], multiplicative linear equalities [13]. For brevity, we must omit further detail about Deutsch's lattices; the reader is referred to [... |

210 | Flow analysis and optimization of Lisp-like structures
- Jones, Muchnick
- 1981
(Show Context)
Citation Context ...L will be the control-flow graph of P , which is syntactically apparent because the language is firstorder. (If higher-order functions were present, we would first perform a standard closure analysis =-=[15]-=-.) For locations, L is defined from the types of the expressions; an algorithm for constructing this language is given in [10]. We briefly review Deutsch's lattice. Based on the unitary-prefix monomia... |

169 |
Affine relationships among variables of a program
- Karr
- 1976
(Show Context)
Citation Context ...y powerful, and Deutsch uses the idea of relating among recursive location depths in his sequential-language alias analysis [10, Chap. 4]. Examples of lattices appropriate for N ] : linear equalities =-=[17]-=-, convex polyhedra [9], simple sections [8], linear congruence equalities [14], congruential trapezoids [18], multiplicative linear equalities [13]. For brevity, we must omit further detail about Deut... |

130 | Higher-Order Concurrency
- Reppy
- 1992
(Show Context)
Citation Context ... interprocess data sharing). 1. Introduction and Related Work Recently, there has been interest in extending realistic functional languages with constructs for concurrency. Examples are Concurrent ML =-=[22]-=-, Facile [1], and the concurrent extension of Standard ML studied in [2]. Various approaches to describing the formal semantics have been developed for these languages, but so far little is understood... |

82 | A Semantics for ML Concurrency Primitives
- Berry, Turner
- 1992
(Show Context)
Citation Context ...here has been interest in extending realistic functional languages with constructs for concurrency. Examples are Concurrent ML [22], Facile [1], and the concurrent extension of Standard ML studied in =-=[2]-=-. Various approaches to describing the formal semantics have been developed for these languages, but so far little is understood about techniques for automatic static analysis. In this paper, we devel... |

76 |
A storeless model of aliasing and its abstractions using finite representations of right-regular equivalence relations
- Deutsch
- 1992
(Show Context)
Citation Context ...n abstract interpretation that isolates regular languages for control paths and data location paths and uses Deutsch's lattice of exponential prefix monomial relations on strings from these languages =-=[11]-=-. The algorithm handles difficult cases such as relating recursively dynamically created processes and channels, recursive data structures, and channel migration between processes, and it may be used ... |

62 | Higher-order concurrent programs with finite communication topology
- Nielson, Nielson
- 1994
(Show Context)
Citation Context ...nalysis of concurrency deals with CSPlike languages without dynamic process and channel creation (e.g., [7, 19]). There is little work on analysis of CML-like languages with dynamic process creation. =-=[21]-=- presents a type-based analysis of Concurrent ML that addresses the question of whether or not a program will generate an infinite number of channels or processes. [3] presents an exponential analysis... |

60 |
Static Analysis of Linear Congruence Equalities among Variables of a Program
- Granger
- 1991
(Show Context)
Citation Context ...ths in his sequential-language alias analysis [10, Chap. 4]. Examples of lattices appropriate for N ] : linear equalities [17], convex polyhedra [9], simple sections [8], linear congruence equalities =-=[14]-=-, congruential trapezoids [18], multiplicative linear equalities [13]. For brevity, we must omit further detail about Deutsch's lattices; the reader is referred to [10]. He defines a unification algor... |

25 | Analyzing the Communication Topology of Concurrent Programs
- Colby
- 1995
(Show Context)
Citation Context ...f channels or processes. [3] presents an exponential analysis for an asynchronous shared-memory language with a cobegin-coend construct, but does not determine aliasing or synchronization properties. =-=[4]-=- presents a polynomial-time communication-topology analysis for a fragment of Concurrent ML. 2. A Sequential Core Language We begin by defining a sequential core language. It is the first-order, polym... |

20 |
Operational and algebraic semantics for facile: a symmetric integration of concurrent and functional programming
- Giacalone, Mistra, et al.
- 1993
(Show Context)
Citation Context ... data sharing). 1. Introduction and Related Work Recently, there has been interest in extending realistic functional languages with constructs for concurrency. Examples are Concurrent ML [22], Facile =-=[1]-=-, and the concurrent extension of Standard ML studied in [2]. Various approaches to describing the formal semantics have been developed for these languages, but so far little is understood about techn... |

20 |
Operational Models of Programming Languages and Representations of Relations on Regular Languages with Application to the Static Determination of Dynamic Aliasing
- Deutsch
- 1992
(Show Context)
Citation Context ...equences of constructor names to access components of data structures) and using Deutsch's lattices of and algorithms for exponential prefix unitary monomial relations on strings from these languages =-=[10]-=-, which he has shown to be useful in practice. The result is an algorithm to compute these synchronization and aliasing properties. For instance, it computes all of the properties given above about ou... |

19 |
Abstract storage structures
- Jonkers
- 1981
(Show Context)
Citation Context ...ilar to the choice in a language with assignment between a store with an arbitrary domain of locations or a storeless model with an alias relation like ours. The latter approach originally comes from =-=[16]-=- and was used by Deutsch in [10, Chap. 4] as the basis for an alias analysis of a language with assignment. 3.2. Control paths A control path is a sequence a 1 . . . a n of program addresses where a 1... |

13 |
Semantic analysis of communicating sequential processes
- COUSOT, COUSOT
- 1980
(Show Context)
Citation Context ...ias analyses; our treatment of aliasing is based on his storeless model. Most existing work on analysis of concurrency deals with CSPlike languages without dynamic process and channel creation (e.g., =-=[7, 19]-=-). There is little work on analysis of CML-like languages with dynamic process creation. [21] presents a type-based analysis of Concurrent ML that addresses the question of whether or not a program wi... |

9 |
Analyses Semantiques de Congruence
- Granger
- 1991
(Show Context)
Citation Context ... of lattices appropriate for N ] : linear equalities [17], convex polyhedra [9], simple sections [8], linear congruence equalities [14], congruential trapezoids [18], multiplicative linear equalities =-=[13]-=-. For brevity, we must omit further detail about Deutsch's lattices; the reader is referred to [10]. He defines a unification algorithm and an add ] operation that can be used without modification as ... |

5 |
Using abstract interpretation to detect array data dependencies
- Masdupuy
(Show Context)
Citation Context ... alias analysis [10, Chap. 4]. Examples of lattices appropriate for N ] : linear equalities [17], convex polyhedra [9], simple sections [8], linear congruence equalities [14], congruential trapezoids =-=[18]-=-, multiplicative linear equalities [13]. For brevity, we must omit further detail about Deutsch's lattices; the reader is referred to [10]. He defines a unification algorithm and an add ] operation th... |

3 |
An algorithm for analysing communicating processes
- Mercouroff
- 1991
(Show Context)
Citation Context ...ias analyses; our treatment of aliasing is based on his storeless model. Most existing work on analysis of concurrency deals with CSPlike languages without dynamic process and channel creation (e.g., =-=[7, 19]-=-). There is little work on analysis of CML-like languages with dynamic process creation. [21] presents a type-based analysis of Concurrent ML that addresses the question of whether or not a program wi... |

2 |
Ludwell Harrison III. Compile Time Analysis of Parallel Programs that Share Memory
- Chow, Williams
- 1992
(Show Context)
Citation Context ... with dynamic process creation. [21] presents a type-based analysis of Concurrent ML that addresses the question of whether or not a program will generate an infinite number of channels or processes. =-=[3]-=- presents an exponential analysis for an asynchronous shared-memory language with a cobegin-coend construct, but does not determine aliasing or synchronization properties. [4] presents a polynomial-ti... |