Typed Concurrent Programming with Logic Variables
We present a concurrent higher-order programming language called Plain and a
concomitant static type system. Plain is based on logic variables and computes
with possibly partial data structures. The data structures of Plain are procedures, cells, and records. Plain's type system features record-based subtyping, bounded existential polymorphism, and access modalities distinguishing between reading and writing.
You may want to compare this with The Oz Programming Model (OPM), which
... is a concurrent programming model subsuming higher-order functional and object-oriented programming as facets of a general model. This is particularly interesting for concurrent object-oriented programming, for which no comprehensive formal model existed until now. The model can be extended so that it can express encapsulated problem solvers generalizing the problem solving capabilities of constraint logic programming.
Another paper on OPM is The Operational Semantics of Oz.
In short, the model of Plain is based on that of Oz with the main differences being:
- Plain statically types programs using a type system with subtyping, while Oz is latently typed.
- Therefore Plain chooses to drop support for unification in favor of a single-assignment operation.
Recent comments
27 weeks 1 day ago
27 weeks 2 days ago
27 weeks 2 days ago
49 weeks 3 days ago
1 year 1 week ago
1 year 3 weeks ago
1 year 3 weeks ago
1 year 5 weeks ago
1 year 10 weeks ago
1 year 10 weeks ago