Results 1 - 10
of
11
Correspondence between Operational and Denotational Semantics
- Handbook of Logic in Computer Science
, 1995
"... This course introduces the operational and denotational semantics of PCF and examines the relationship between the two. Topics: Syntax and operational semantics of PCF, Activity Lemma, undefinability of parallel or; Context Lemma (first principles proof) and proof by logical relations Denotational ..."
Abstract
-
Cited by 21 (0 self)
- Add to MetaCart
This course introduces the operational and denotational semantics of PCF and examines the relationship between the two. Topics: Syntax and operational semantics of PCF, Activity Lemma, undefinability of parallel or; Context Lemma (first principles proof) and proof by logical relations Denotational semantics of PCF induced by an interpretation; (standard) Scott model, adequacy, weak adequacy and its proof (by a computability predicate) Domain Theory up to SFP and Scott domains; non full abstraction of the standard model, definability of compact elements and full abstraction for PCFP (PCF + parallel or), properties of order-extensional (continuous) models of PCF, Milner's model and Mulmuley's construction (excluding proofs) Additional topics (time permitting): results on pure simply-typed lambda calculus, Friedman 's Completeness Theorem, minimal model, logical relations and definability, undecidability of lambda definability (excluding proof), dI-domains and stable functions Homepa...
Towards a theory of parallel algorithms on concrete data structures
- In Semantics for Concurrency, Leicester
, 1990
"... The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of DARPA or the U.S. government. Building on Kahn and Plotkin’s theory of concrete data structures and sequential functions, ..."
Abstract
-
Cited by 11 (6 self)
- Add to MetaCart
The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of DARPA or the U.S. government. Building on Kahn and Plotkin’s theory of concrete data structures and sequential functions, Berry and Curien defined an intensional model of sequential algorithms between concrete data structures. In this paper we report on an attempt to develop a similar intensional model of concurrent computation. We present a notion of parallel algorithm between concrete data structures, together with suitable application and currying operations. We define an intensional strictness ordering on parallel algorithms, with respect to which application is well behaved (at first order types). We define the input-output function computed by a parallel algorithm, and we show that every parallel algorithm computes a continuous function. Thus, a parallel algorithm may be viewed as a continuous function together with a parallel computation strategy. In contrast, a Berry-
A Cartesian Closed Category of Parallel Algorithms between Scott Domains
, 1991
"... We present a category-theoretic framework for providing intensional semantics of programming languages and establishing connections between semantics given at different levels of intensional detail. We use a comonad to model an abstract notion of computation, and we obtain an intensional category fr ..."
Abstract
-
Cited by 6 (2 self)
- Add to MetaCart
We present a category-theoretic framework for providing intensional semantics of programming languages and establishing connections between semantics given at different levels of intensional detail. We use a comonad to model an abstract notion of computation, and we obtain an intensional category from an extensional category by the co-Kleisli construction; thus, while an extensional morphism can be viewed as a function from values to values, an intensional morphism is akin to a function from computations to values. We state a simple category-theoretic result about cartesian closure. We then explore the particular example obtained by taking the extensional category to be Cont, the category of Scott domains with continuous functions as morphisms, with a computation represented as a non-decreasing sequence of values. We refer to morphisms in the resulting intensional category as algorithms. We show that the category Alg of Scott domains with algorithms as morphisms is cartesian closed. We...
Concrete Data Structures and Functional Parallel Programming
, 1997
"... We present a framework for designing parallel programming languages whose semantics is functional and where communications are explicit. To this end, we specialize Brookes and Geva's generalized concrete data structures with a notion of explicit data layout and obtain a CCC of distributed structures ..."
Abstract
-
Cited by 4 (3 self)
- Add to MetaCart
We present a framework for designing parallel programming languages whose semantics is functional and where communications are explicit. To this end, we specialize Brookes and Geva's generalized concrete data structures with a notion of explicit data layout and obtain a CCC of distributed structures called arrays. We find that arrays' symmetric replicated structures, suggested by the data-parallel SPMD paradigm, are incompatible with sum types. We then outline a functional language with explicitly-distributed (monomorphic) concrete types, including higher-order, sum and recursive ones. In this language, programs can be as large as the network and can observe communication events in other programs. Such flexibility is missing from current data-parallel languages and amounts to a fusion with their so-called annotations, directives or meta-languages. 1 Explicit communications and functional programming Faced with the mismatch between parallel programming languages and the requirements o...
Array Structures and Data-Parallel Algorithms
- In
, 1996
"... We apply Brookes and Geva's theory of generalised concrete data structures and computational co-monads to the semantics of higher-order data-parallel functional languages. This yields a mathematical framework for describing the interaction between higher-order functions, explicitly distributed data ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
We apply Brookes and Geva's theory of generalised concrete data structures and computational co-monads to the semantics of higher-order data-parallel functional languages. This yields a mathematical framework for describing the interaction between higher-order functions, explicitly distributed data and asynchronous algorithms. Concrete data structures (or CDS) allow the construction of several Cartesian closed categories, standard models for typed functional languages. Brookes and Geva have studied generalised CDSs and so-called parallel algorithms as meanings for lambda-calculus terms. An input-output function may correspond to many algorithms. Their construction is adapted to data-parallel functional languages through concrete array structures with explicit data layout. We construct a sub-category of array gCDS preserved by exponentiation through isomorphisms relating higherorder objects to their local parts. This formalism brings notions of data locality, synchronisation and denotat...
Design of an Event-Oriented Functional Parallel Language: the Finite Case
"... MACHINE: REWRITING SEMANTICS The rewriting semantics is defined by the tables below representing possible transitions from left columns to right columns. The global data structure is a multiset of tasks together with a function (set of pairs) mapping syntactic nodes of the term being evaluated to t ..."
Abstract
- Add to MetaCart
MACHINE: REWRITING SEMANTICS The rewriting semantics is defined by the tables below representing possible transitions from left columns to right columns. The global data structure is a multiset of tasks together with a function (set of pairs) mapping syntactic nodes of the term being evaluated to tables. There are two main forms of tasks. The first component of tasks is the name of a cell together with the term whose type contains it. The last component of tasks is always a mode: either a value computed for the given cell, a failure marker ? to indicate that the cell could not be filled, or a request mode. A simple request mode "?" simply means a general request to fill the cell. An indexed request mode ? c means a request with the added information that the value sought is also that of cell c. As an example of this last kind of mode, see rule CL2 in the first table. A last kind of mode ? tr indicates that a slice of state (A(x) in the operational semantics) is currently being filled....
An Intensional Investigation of Parallelism
, 1994
"... Denotational semantics is usually extensional in that it deals only with input/output properties of programs by making the meaning of a program a function. Intensional semantics maps a program into an algorithm, thus enabling one to reason about complexity, order of evaluation, degree of parallelism ..."
Abstract
- Add to MetaCart
Denotational semantics is usually extensional in that it deals only with input/output properties of programs by making the meaning of a program a function. Intensional semantics maps a program into an algorithm, thus enabling one to reason about complexity, order of evaluation, degree of parallelism, efficiency-improving program transformations, etc. I propose to develop intensional models for a number of parallel programming languages. The semantics will be implemented, resulting in a programming language of parallel algorithms, called CDSP. Applications of CDSP will be developed to determine its suitability for actual use. The thesis will hopefully make both theoretical and practical contributions: as a foundational study of parallelism by looking at the expressive power of various constructs, and with the design, implementation, and applications of an intensional parallel programming language. 1 Introduction Denotational semantics has now been around for about 25 years, which makes...
L'approche Berry-Curien des langages fonctionnels: application au parall'elisme en processus statiques
, 1996
"... pendant du mat'eriel, fait abstraction du nombre de processus en jeu ou de la charge du r'eseau n'a pas de meilleures chances de succ`es que le responsable d'une flotte de camions qui ferait abstraction des p'eriodes d'affluence sur l'autoroute. Ses strat'egies pourront etre localement efficaces, le ..."
Abstract
- Add to MetaCart
pendant du mat'eriel, fait abstraction du nombre de processus en jeu ou de la charge du r'eseau n'a pas de meilleures chances de succ`es que le responsable d'une flotte de camions qui ferait abstraction des p'eriodes d'affluence sur l'autoroute. Ses strat'egies pourront etre localement efficaces, les conditions moyennes du r'eseau lui seront d'efavorables tot ou tard. L'approche BSP ou Bulk-Synchronous Parallelism [14] a largement justifi'e la prise en compte des processus physiques et du r'eseau par les algorithmes. Ce paradigme pose les bases d'une v'eritable th'eorie scientifique qui relie th'eoriquement et empiriquement les algorithmes aux architectures parall`eles. Plutot que comme un pur objet logique, on y voit le programme parall`ele comme une repr'esentation des calculs qu'il engendre et aussi de leur consommation des ressources. La s'emantique du programme joue ainsi le role d'une th'eorie physique en miniature, servant `a pr'evoir non seulement son comporteme
Design of an Event-Oriented Functional Parallel Language: the Finite Case
"... MACHINE: REWRITING SEMANTICS The rewriting semantics is defined by the tables below representing possible transitions from left columns to right columns. The global data structure is a multiset of tasks together with a function (set of pairs) mapping syntactic nodes of the term being evaluated to t ..."
Abstract
- Add to MetaCart
MACHINE: REWRITING SEMANTICS The rewriting semantics is defined by the tables below representing possible transitions from left columns to right columns. The global data structure is a multiset of tasks together with a function (set of pairs) mapping syntactic nodes of the term being evaluated to tables. There are two main forms of tasks. The first component of tasks is the name of a cell together with the term whose type contains it. The last component of tasks is always a mode: either a value computed for the given cell, a failure marker ? to indicate that the cell could not be filled, or a request mode. A simple request mode "?" simply means a general request to fill the cell. An indexed request mode ? c means a request with the added information that the value sought is also that of cell c. As an example of this last kind of mode, see rule CL2 in the first table. A last kind of mode ? tr indicates that a slice of state (A(x) in the operational semantics) is currently being filled....
c○SPRINGER VERLAG – Lecture Notes in Computer Science Functional parallel programming with explicit processes: beyond SPMD
, 1997
"... Introduction. Parallel programming languages tend to waste algorithmic expressiveness to avoid deadlocks, non-determinism and the general complexity of concurrent languages. As a result, most of them don't specify data placement so that performance is unpredictable as a function of the source progr ..."
Abstract
- Add to MetaCart
Introduction. Parallel programming languages tend to waste algorithmic expressiveness to avoid deadlocks, non-determinism and the general complexity of concurrent languages. As a result, most of them don't specify data placement so that performance is unpredictable as a function of the source program (it depends on the language implementation, not its semantics). The BSP paradigm [7] demonstrates that explicit processor locations and explicit communications remove this uncertainty at the cost of a restricted programming style. We propose a solution to this dilemma by combining the events of process algebras and explicit processor locations of BSP with a higher-order functional language. The resulting language, CDS*, is derived from Berry and Curien's sequential language CDS0 and realizes Brookes and Geva's theory of deterministic parallel functions. 2 Types and constants. We first outline the concrete syntax used to declare basic types in CDS* and we give mathematical formalization

