## Typed Concurrent Objects (1994)

### Cached

### Download Links

- [www.di.fc.ul.pt]
- [www.di.fc.ul.pt]
- [www.di.fc.ul.pt]
- [www.di.fc.ul.pt]
- DBLP

### Other Repositories/Bibliography

Venue: | ECOOP'94, LNCS |

Citations: | 74 - 11 self |

### BibTeX

@INPROCEEDINGS{Vasconcelos94typedconcurrent,

author = {Vasco Vasconcelos},

title = {Typed Concurrent Objects},

booktitle = {ECOOP'94, LNCS},

year = {1994},

pages = {100--117},

publisher = {Springer-Verlag}

}

### OpenURL

### Abstract

Based on a name-passing calculus and on its typing system the paper shows how to build several language constructors towards a strongly-typed objectoriented concurrent programming language. The basic calculus incorporates the notions of asynchronous labelled messages, concurrent objects composed of labelled methods, and a form of abstraction on processes allowing in particular to declare polymorphic classes. We introduce a notion of values as name-expressions, and show how to create subclasses of existing classes. A systematic translation of the derived constructors into the basic calculus provides for semantics and for typing rules for the new constructors. Introduction Concurrent objects constitute a convenient tool to describe concurrent and distributed computations. Types enforce a discipline in the usage of the programming language constructors that not only provides for partial-correctness, but also helps in writing clear programs. Furthermore, a type for a program often gives s...

### Citations

1658 | The Definition of Standard ML
- Milner, Tofte, et al.
- 1990
(Show Context)
Citation Context ...introducing recursive types [2, 14, 16], and a form of predicative polymorphism [3, 15]. Then, we incorporate datatype declarations, and values constructed from these declarations, in the style of ML =-=[9]-=-, Miranda [13], and Haskell [6]. Further values are the application of values to values, and a form of name abstraction. Together, these constitute name-expressions evaluating to a name in a given con... |

572 |
The Implementation of Functional Programming Languages
- Jones
- 1987
(Show Context)
Citation Context ...psB[ map: nil =) nil j f cons(h t) =) cons(fCh list-opsCmap: f t) & : : : ] It should be possible to encode nested patterns as well. Compiling patterns into case-expressions is a well-studied subject =-=[7]-=- and the techniques known for functional programming languages with pattern-matching can be transposed to T yCO. 6 Name Abstraction This section introduces the last form of name-expressions. An expres... |

387 | Principal type-schemes for functional programs
- Damas, Milner
- 1982
(Show Context)
Citation Context ...ral times in a given process. T yCO grows from the basic calculus of objects and its monomorphic typing system [17], by introducing recursive types [2, 14, 16], and a form of predicative polymorphism =-=[3, 15]-=-. Then, we incorporate datatype declarations, and values constructed from these declarations, in the style of ML [9], Miranda [13], and Haskell [6]. Further values are the application of values to val... |

385 | An object calculus for asynchronous communication - Honda, Tokoro - 1991 |

347 |
Functions as processes
- Milner
- 1992
(Show Context)
Citation Context ...X := A] denotes the result of replacing the free occurrences of agent-variable X by agent A in process P . Structural congruence over processes simplifies the treatment of reduction. Following Milner =-=[8]-=-, we define j to be the smallest congruence relation over processes generated by the following rules. 1. P j Q if P is ff-convertible to Q 2. P; Q j Q; P and (P; Q); R j P; (Q; R) 3. M j N if M is a p... |

157 |
Miranda-a Non-strict Functional Language with Polymorphic Types
- Turner
- 1985
(Show Context)
Citation Context ...ecursive types [2, 14, 16], and a form of predicative polymorphism [3, 15]. Then, we incorporate datatype declarations, and values constructed from these declarations, in the style of ML [9], Miranda =-=[13]-=-, and Haskell [6]. Further values are the application of values to values, and a form of name abstraction. Together, these constitute name-expressions evaluating to a name in a given context or contin... |

155 |
A universal modular actor formalism for artificial intelligence
- Hewitt, Bishop, et al.
- 1973
(Show Context)
Citation Context ...essarily var 1 ; : : : ; var n provides for a disciplined form of assignment where all local variables are assigned at the same time, in a way reminiscent of the "become" operation in the ac=-=tor model [4]. Methods -=-in M need not recur with Classname(self var 0 1 \Delta \Delta \Delta var 0 n ). They may not recur at all (in which case the "existence" of the instance objects terminates), or they may inst... |

67 |
et al. “Report on the Programming Language Haskell
- Hudak
- 1992
(Show Context)
Citation Context ... 14, 16], and a form of predicative polymorphism [3, 15]. Then, we incorporate datatype declarations, and values constructed from these declarations, in the style of ML [9], Miranda [13], and Haskell =-=[6]-=-. Further values are the application of values to values, and a form of name abstraction. Together, these constitute name-expressions evaluating to a name in a given context or continuation. A general... |

57 | A compilation method for ML-style polymorphic record calculi
- Ohori
- 1992
(Show Context)
Citation Context ...) does not possess a simple notion of principal types. Nevertheless, this can be recovered by introducing constraints on the types a type-variable may be substituted for, in the form of Ohori's kinds =-=[11]-=-, and by a small adjustment in the Msg-axiom [14, 17]. 3 Datatype Declarations and Constructed Data In order to build interesting programs based on the calculus proposed in the preceding sections, the... |

56 |
pi-calculus Semantics for Object-Oriented Programming Languages
- Walker
- 1991
(Show Context)
Citation Context ...elated Work Walker showed how to describe a semantics for concurrent object-oriented programming languages by a systematic translation of the constructors in a POOL-like language into the ��-calcu=-=lus [18]-=-. We follow the opposite approach: given a name-passing calculus, build high-level constructors present in functional and concurrent objectoriented programming languages. Pierce, R'emy, and Turner pro... |

52 | A typing system for a calculus of objects
- Vasconcelos, Tokoro
- 1993
(Show Context)
Citation Context ...n and, through an ML-like let constructor, allow to declare an agent once and use it several times in a given process. T yCO grows from the basic calculus of objects and its monomorphic typing system =-=[17]-=-, by introducing recursive types [2, 14, 16], and a form of predicative polymorphism [3, 15]. Then, we incorporate datatype declarations, and values constructed from these declarations, in the style o... |

49 |
Two extension of Curry's type inference system
- Cardone, Coppo
(Show Context)
Citation Context ...ctor, allow to declare an agent once and use it several times in a given process. T yCO grows from the basic calculus of objects and its monomorphic typing system [17], by introducing recursive types =-=[2, 14, 16]-=-, and a form of predicative polymorphism [3, 15]. Then, we incorporate datatype declarations, and values constructed from these declarations, in the style of ML [9], Miranda [13], and Haskell [6]. Fur... |

48 | Towards an Object Calculus
- Nierstrasz
- 1991
(Show Context)
Citation Context ...akes the invocation of a method a tree-way protocol, against a one-way in T yCO. Nierstrasz's proposed a name-passing calculus featuring communication of tuples and function application as primitives =-=[10]-=-. As demonstrated by Pierce, R'emy, and Turner, as well as the present work, function application can be cleanly incorporated in pure name-passing calculi. Abadi and Cardelli recently proposed a basic... |

30 | A theory of primitive objects
- Abadi, Cardelli
- 1993
(Show Context)
Citation Context ...rk, function application can be cleanly incorporated in pure name-passing calculi. Abadi and Cardelli recently proposed a basic calculus supporting builtin objects, and method invocation and override =-=[1]-=-. Although no form of concurrency is present, the calculus shares with T yCO the notions of builtin objects composed of labelled methods, and that of labelled method invocation. Builtin in that calcul... |

15 | Atyped higher-order programming language based on the pi-calculus. Draft report� an earlier version was presented as an invited lecture at the Workshop on Type Theory and its Application to Computer Systems
- Pierce, Remy, et al.
- 1993
(Show Context)
Citation Context .... ~ ff ! fi; \Gamma Notice the similarity between the rules above and those of the simply typed - calculus. A rule similar to the particular case of the Case-rule appears in Pierce, R'emy, and Turner =-=[12]-=-. 7 Branch Statements Communication in T yCO is via asynchronous message passing. It is often the case that processes must wait for a reply before continuing execution. Synchronous invocation of metho... |

12 |
Principal typing-schemes in a polyadic -calculus
- Vasconcelos, Honda
- 1992
(Show Context)
Citation Context ...ctor, allow to declare an agent once and use it several times in a given process. T yCO grows from the basic calculus of objects and its monomorphic typing system [17], by introducing recursive types =-=[2, 14, 16]-=-, and a form of predicative polymorphism [3, 15]. Then, we incorporate datatype declarations, and values constructed from these declarations, in the style of ML [9], Miranda [13], and Haskell [6]. Fur... |

11 |
Predicative polymorphism in the -calculus
- Vasconcelos
- 1994
(Show Context)
Citation Context ...ral times in a given process. T yCO grows from the basic calculus of objects and its monomorphic typing system [17], by introducing recursive types [2, 14, 16], and a form of predicative polymorphism =-=[3, 15]-=-. Then, we incorporate datatype declarations, and values constructed from these declarations, in the style of ML [9], Miranda [13], and Haskell [6]. Further values are the application of values to val... |

5 |
Functions as processes. In Automata, Language and Programming, volume 443 of LNCS
- Milner
- 1990
(Show Context)
Citation Context ...X := A] denotes the result of replacing the free occurrences of agent-variable X by agent A in process P . Structural congruence over processes simplifies the treatment of reduction. Following Milner =-=[8]-=-, we define ≡ to be the smallest congruence relation over processes generated by the following rules. 1. P ≡ Q if P is α-convertible to Q 2. P, Q ≡ Q, P and (P, Q), R ≡ P, (Q, R) 3. M ≡ N if M is a pe... |

4 |
K.: Principal typing-schemes in a polyadic π-calculus
- Vasconcelos, Honda
- 1993
(Show Context)
Citation Context ...uctor, allow to declare an agent once and use it several times in a given process. TyCO grows from the basic calculus of objects and its monomorphic typing system [17], by introducing recursive types =-=[2, 14, 16]-=-, and a form of predicative polymorphism [3, 15]. Then, we incorporate datatype declarations, and values constructed from these declarations, in the style of ML [9], Miranda [13], and Haskell [6]. Fur... |

3 | Recursive types in a calculus of objects
- Vasconcelos
- 1994
(Show Context)
Citation Context ...ctor, allow to declare an agent once and use it several times in a given process. T yCO grows from the basic calculus of objects and its monomorphic typing system [17], by introducing recursive types =-=[2, 14, 16]-=-, and a form of predicative polymorphism [3, 15]. Then, we incorporate datatype declarations, and values constructed from these declarations, in the style of ML [9], Miranda [13], and Haskell [6]. Fur... |

2 | Predicative polymorphism in π-calculus
- Vasconcelos
- 1994
(Show Context)
Citation Context ...eral times in a given process. TyCO grows from the basic calculus of objects and its monomorphic typing system [17], by introducing recursive types [2, 14, 16], and a form of predicative polymorphism =-=[3, 15]-=-. Then, we incorporate datatype declarations, and values constructed from these declarations, in the style of ML [9], Miranda [13], and Haskell [6]. Further values are the application of values to val... |