A denotational model for the integration of concurrent, functional and imperative programming
Dominique Bolignano, Mourad Debabi
Abstract
Dominique Bolignano, Mourad Debabi
Abstract
We deal with the theoretical foundations of integrating the concurrent, functional and imperative programming paradigms. The intent is to present a denotational model for a language that is aimed to integrate all the three paradigms. Concurrency is supported through the embedding of a CSP-like process algebra into a functional language. Expressions may communicate through unidirectional channels and can also be composed through some concurrency combinators. The notion of reference is used to support imperative aspects. References, channels, and functions are made first-class citizens. Following an informal presentation of the language we describe its static semantics. This semantics is effect-based i.e. for each expression it yields a type, the side effects and the communication effects. The use of types and effects allows a safe and efficient integration of the three programming paradigms and also solves some technical problems related to the foundations of the dynamic domains. Then the dynamic semantics is presented. It is denotational and rests on an extension of the mathematical model of acceptance trees.>
OpenAlex reports 4 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
We deal with the theoretical foundations of integrating the concurrent, functional and imperative programming paradigms. The intent is to present a denotational model for a language that is aimed to integrate all the three paradigms. Concurrency is supported through the embedding of a CSP-like process algebra into a functional language. Expressions may communicate through unidirectional channels and can also be composed through some concurrency combinators. The notion of reference is used to support imperative aspects. References, channels, and functions are made first-class citizens. Following an informal presentation of the language we describe its static semantics. This semantics is effect-based i.e. for each expression it yields a type, the side effects and the communication effects. The use of types and effects allows a safe and efficient integration of the three programming paradigms and also solves some technical problems related to the foundations of the dynamic domains. Then the dynamic semantics is presented. It is denotational and rests on an extension of the mathematical model of acceptance trees.>
Key concepts: Concurrency, Denotational semantics, Programming language, Computer science, Denotational semantics of the Actor model, Functional programming, Semantics (computer science), Process calculus