## Optimizing Analysis for First-Class Tuple-Spaces (1990)

Venue: | In Third Workshop on Parallel Languages and Compilers |

Citations: | 6 - 2 self |

### BibTeX

@INPROCEEDINGS{Jagannathan90optimizinganalysis,

author = {Suresh Jagannathan},

title = {Optimizing Analysis for First-Class Tuple-Spaces},

booktitle = {In Third Workshop on Parallel Languages and Compilers},

year = {1990},

publisher = {MIT Press}

}

### OpenURL

### Abstract

This paper considers the design and optimization of a simple asynchronous parallel language that uses first-class tuple-spaces as its main communication and process creation device. Our proposed kernel language differs from other tuple-space languages insofar tuple-spaces are treated as true first-class objects. Moreover, we develop a formal framework for constructing an optimizing preprocessor for such a language. The semantic analysis is based on an inference engine that statically computes the set of tuples (and their structural attributes) that can occupy any given tuple-space. The inference system is non-trivial insofar as it operates in the presence of higher-order functions and non-flat data structures (e.g, lists). The result of the inference procedure can be used to customize the representation of tuple-space objects. 1 Introduction Communication and synchronization are fundamental concerns in the design of any parallel language: through what medium is information transmitted...

### Citations

1896 |
Abstract interpretation: A unified lattice model for static analysis of programs by construction of approximation of fixed points
- COUSOT, COUSOT
- 1977
(Show Context)
Citation Context ...tatically inferring a suitable structure for tuple-space as a variant of a semantic analysis technique known as collecting interpretation [15]. Collecting interpretation is an abstract interpretation =-=[7]-=- that attempts to infer the set of values a given variable can acquire during the execution of a program. In our case, the variables of interest are those bound to tuple-spaces, and the values we are ... |

948 |
A machine-oriented logic based on the resolution principle
- Robinson
- 1965
(Show Context)
Citation Context ...sion e and returns as its result a type substitution S (i.e., a map from type variables to types) and a typessuch that A ffl S ` e :s. To define M we use the unification algorithm defined by Robinson =-=[19]-=-: Proposition 1 There is an algorithm U which, given a pair of types, either returns a type substitution V or fails such that: i. if U( 1 ;s2 ) returns V , then Vs1 = Vs2 . ii. If S unifiess1 ands2 , ... |

939 | A Theory of Type Polymorphism in Programming
- Milner
- 1978
(Show Context)
Citation Context ... such that S = RV . Moreover, V involves only type variables ins1 ands2 . The algorithm is given for a subset of our kernel language in figure 10. We can show in a manner similar to that described in =-=[17]-=- that any type yielded by M conforms precisely to a legal derivation produced by our inference rules given the same expression and type environment. 3.6.2 Transforming Types to Representations In this... |

701 |
Linda in Context
- Carriero, Gelernter
- 1989
(Show Context)
Citation Context ...istributed data structure since the state of such an object may be visible to many processes concurrently. The most well-developed use of distributed data structures is in the Linda programming model =-=[4]-=-. The fundamental mechanism by which distributed data structures are built and manipulated in Linda is the tuple-space, a data abstraction that resembles a shared associative memory. A tuple-space per... |

447 | Multilisp: A language for concurrent symbolic computation
- Halstead
- 1985
(Show Context)
Citation Context ... implies asynchrony since the generation of information is decoupled from its consumption. Distributed data structures are found in a number of languages. Non-strict languages based on futures (e.g., =-=[11]-=-) support distributed data structures since a complex structure whose elements are futures may be examined and manipulated by many processes simultaneously. The write-once I-structure [1] found in the... |

360 |
Principle type-schemes for functional programs
- Damas, Milner
- 1982
(Show Context)
Citation Context ... "tail" \Theta S -- 1 7! N 2 Figure 9: The type structure of variable sieve . 3 SEMANTIC ANALYSIS 19 3.6.1 A Type Assignment Algorithm Our type assignment algorithm M is based on algorithm W=-= given in [8]-=-. The procedure takes as its argument a type environment A and an expression e and returns as its result a type substitution S (i.e., a map from type variables to types) and a typessuch that A ffl S `... |

260 |
Investigations into logical deduction
- Gentzen
- 1969
(Show Context)
Citation Context ...[x 7!s](y) = ae A(y) if y 6= xsotherwise 3 SEMANTIC ANALYSIS 15 3.5 Inference Rules The axioms and inference rules for the type system are presented in a form similar to Gentzen's calculus of sequents=-=[10]-=-. Each inference rule consists of a set of statements called the antecedents and a statement called the consequent. In writing an inference rule, we separate antecedents and consequents by a horizonta... |

229 | I-structures: data structures for parallel computing. Acm trans. program. lang
- Arvind, Rishiyur, et al.
- 1989
(Show Context)
Citation Context ...ures (e.g., [11]) support distributed data structures since a complex structure whose elements are futures may be examined and manipulated by many processes simultaneously. The write-once I-structure =-=[1]-=- found in the mostly-functional language Id [18] can also be viewed as a distributed data structure: an expression that attempts to access an empty I-structure blocks; well-defined constraints are imp... |

183 |
On Understanding Types
- Cardelli, Wegner
- 1985
(Show Context)
Citation Context ...a collecting interpretation in the sense that a well-typed program has a type associated with every tuple-space that defines the structural properties of the tuples which can occupy that tuple-space. =-=[3]-=- gives a general discussion on type inference systems. Operationally, the inference procedure can be thought of as a constraint system that imposes restrictions on a tuple-space's structure based on t... |

102 |
Multiple Tuple Spaces in Linda
- Gelernter
- 1989
(Show Context)
Citation Context ... removes the tuple [true, 10, closure ofs(x) (1+ x)) ] before evaluating the application constituting its body. 2.2 Why First-Class Tuple-Spaces? First-class tuple-spaces have been proposed elsewhere =-=[9, 13]-=- and have been implemented (to a degree) in certain implementations of Linda [16]. The kernel language developed here extends these proposals by embedding first-class tuple-space into a language that ... |

84 |
Applications experience with Linda
- Carriero, Gelemter
- 1988
(Show Context)
Citation Context ...side within tuple-space are known as tuples.) C.Linda, a dialect of C that supports the tuple-space abstraction, has been used with notable success on a variety of different machines and applications =-=[2, 5]-=-. We discuss the semantics of tuple-spaces in the sections following. A tuple-space is a powerful abstraction because it imposes no pre-defined structural constraints on the elements which occupy it. ... |

66 |
Data flow analysis of applicative programs using minimal function graphs
- Jones, Mycroft
- 1986
(Show Context)
Citation Context ...curate tuple usage in such cases. We approach the problem of statically inferring a suitable structure for tuple-space as a variant of a semantic analysis technique known as collecting interpretation =-=[15]-=-. Collecting interpretation is an abstract interpretation [7] that attempts to infer the set of values a given variable can acquire during the execution of a program. In our case, the variables of int... |

49 |
Concurrent Prolog: A progress report
- Shapiro
- 1986
(Show Context)
Citation Context ...llows us to retain a well-defined functional core about which we can reason formally; (2) more importantly, different structured-assignment paradigms (e.g., I-structures [1], readonly logic variables =-=[20]-=-, accumulators [18], etc.) can be expressed using simple and easily implemented patterns of tuple operations. To make our discussion more concrete, consider the implementation of an I-structure, a wri... |

37 |
Experience with CST:programming and implementation
- Horwat, Chien, et al.
- 1989
(Show Context)
Citation Context ... data structure: an expression that attempts to access an empty I-structure blocks; well-defined constraints are imposed on how such structures are filled. Concurrent object-oriented languages (e.g., =-=[12]-=-) that permit an object to This work was supported in part by National Science Foundation grant CCR-8657615 and in part by Office of Naval Research grant N00014-89-J-1906. Appears in Advances in Langu... |

27 |
Melinda: Linda with Multiple Tuple Spaces
- Hupfer
- 1990
(Show Context)
Citation Context ... removes the tuple [true, 10, closure ofs(x) (1+ x)) ] before evaluating the application constituting its body. 2.2 Why First-Class Tuple-Spaces? First-class tuple-spaces have been proposed elsewhere =-=[9, 13]-=- and have been implemented (to a degree) in certain implementations of Linda [16]. The kernel language developed here extends these proposals by embedding first-class tuple-space into a language that ... |

21 |
meets Unix
- Leler, Linda
- 1990
(Show Context)
Citation Context ...tion constituting its body. 2.2 Why First-Class Tuple-Spaces? First-class tuple-spaces have been proposed elsewhere [9, 13] and have been implemented (to a degree) in certain implementations of Linda =-=[16]-=-. The kernel language developed here extends these proposals by embedding first-class tuple-space into a language that supports higher-order functions and complex structure types. The matching algorit... |

13 |
Tuple Analysis and Partial Evaluation Strategies in the Linda Compiler
- Carriero, Gelernter
- 1989
(Show Context)
Citation Context ...on causes the executing process to block. Although it's a flexible device, its amorphous structure makes its efficient implementation a challenging exercise. Optimizing compilers for C.Linda do exist =-=[6]-=- and the technologies which they employ have been quite successful. Nonetheless, no semantic framework for describing or analyzing these optimizations has yet been developed; our goal in this document... |

10 |
the Portable Parallel
- Linda
- 1988
(Show Context)
Citation Context ...side within tuple-space are known as tuples.) C.Linda, a dialect of C that supports the tuple-space abstraction, has been used with notable success on a variety of different machines and applications =-=[2, 5]-=-. We discuss the semantics of tuple-spaces in the sections following. A tuple-space is a powerful abstraction because it imposes no pre-defined structural constraints on the elements which occupy it. ... |

3 |
ID Reference Manual (Version 88.0
- Nikhil
- 1988
(Show Context)
Citation Context ...ctures since a complex structure whose elements are futures may be examined and manipulated by many processes simultaneously. The write-once I-structure [1] found in the mostly-functional language Id =-=[18]-=- can also be viewed as a distributed data structure: an expression that attempts to access an empty I-structure blocks; well-defined constraints are imposed on how such structures are filled. Concurre... |