Results 1 - 10
of
15
Design of a Concurrent and Distributed Language
, 1992
"... . This paper presents a new dialect of Scheme aimed towards concurrency and distribution. It offers a few primitives, including first-class continuations, with very simple semantics. Numerous examples are given showing how to program the classical concurrent control operators such as future, pcall a ..."
Abstract
-
Cited by 21 (13 self)
- Add to MetaCart
. This paper presents a new dialect of Scheme aimed towards concurrency and distribution. It offers a few primitives, including first-class continuations, with very simple semantics. Numerous examples are given showing how to program the classical concurrent control operators such as future, pcall and either. The implementation is sketched and presented along the lines of a metacircular interpreter. This paper presents the idiom of Icsla 1 , a language belonging to the Lisp family and more precisely a descendant of Scheme. This dialect has been designed with respect to the following main objectives: -- It should have a very simple and understandable semantics, with few but powerful and unrestrictively combinable concepts; -- It should offer concurrency, distribution and some other modern features such as sophisticated control features while not sacrificing the variety of styles traditionally offered by Lisp. These goals are rather general and deserve further comment. Following Sche...
Translating Core Facile
, 1995
"... In first approximation Core Facile is a simply typed -calculus enriched with parallel composition, dynamic channel generation, and input-output synchronous communication primitives. In this paper we explore the (dynamic) semantics of core Facile programs. This should be taken as a basis for the def ..."
Abstract
-
Cited by 20 (2 self)
- Add to MetaCart
In first approximation Core Facile is a simply typed -calculus enriched with parallel composition, dynamic channel generation, and input-output synchronous communication primitives. In this paper we explore the (dynamic) semantics of core Facile programs. This should be taken as a basis for the definition of abstract machines, the transformation of programs, and the development of modal specification languages. We claim two main contributions. We introduce a new semantics based on the notion of barbed bisimulation. We argue that the derived equivalence provides a more satisfying treatment of restriction, in particular by proving the adequacy of a natural translation of Facile into ß-calculus we suggest that our approach is in good harmony with previous research on the semantics of sub-calculi of Core Facile such as Chocs and ß-calculus. We illustrate at an abstract level various aspects of Facile compilation. In particular we introduce an `asynchronous' version of the Facile language...
Dreme: for Life in the Net
, 1996
"... This dissertation makes four contributions towards supporting distributed, multiuser applications over open networks. Dreme, a distributed dialect of the Scheme language in which all first-class language objects are mobile in the network. In particular, various distributed topologies, such as client ..."
Abstract
-
Cited by 20 (3 self)
- Add to MetaCart
This dissertation makes four contributions towards supporting distributed, multiuser applications over open networks. Dreme, a distributed dialect of the Scheme language in which all first-class language objects are mobile in the network. In particular, various distributed topologies, such as client/server and peer-to-peer, can be created by migrating closures with overlapping scopes around the network, correct inter-process communication being assured by Scheme's lexical scoping rules and network wide addressing. Threads of control are passed around through first-class distributed continuations. A User Interface toolkit for coordinating events in multi-threaded, multi-user applications by organizing continuation callbacks into nested lexical scopes. Each event has certain attributes, such as synchronous/asynchronous. Certain events create new scopes with new events. Continuation callbacks allow both synchronous events which return values to their callers, and asynchronous ones. Applic...
A Library of High Level Control Operators
- Lisp Pointers, ACM SIGPLAN Special Interest Publ. on Lisp
, 1993
"... Numerous high-level control operators, with various properties, exist in the literature. To understand or compare them is difficult since their definitions use quite different theoretical frameworks; moreover, to our knowledge, no implementation offers them all. This paper tries to explain control o ..."
Abstract
-
Cited by 11 (0 self)
- Add to MetaCart
Numerous high-level control operators, with various properties, exist in the literature. To understand or compare them is difficult since their definitions use quite different theoretical frameworks; moreover, to our knowledge, no implementation offers them all. This paper tries to explain control operators by the often simple stack manipulation they perform. We therefore present what we think these operators are, in an executable framework derived from abstract continuations. This library is published in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For instance, we do not claim our implementation to be faithful nor we attempt to formally derive these implementations from their original definitions. The goal is to give a flavor of what control operators are, from an implementation point of view. Last but worth to say, all errors are mine. Among the many existing control operators, w...
Sharing Mutable Objects and Controlling Groups of Tasks in a Concurrent and Distributed Language
- In Takayasu Ito and Akinori Yonezawa, editors, Proceedings of the Workshop on Theory and Practice of Parallel Programming (TPPP'94), number 700 in Lecture Notes in Computer Science
, 1994
"... . This paper presents: (i) an operational semantics, based on a functional framework, for a concurrent and distributed extension of the Scheme programming language, (ii ) a coherency protocol taking care of shared mutable objects, (iii ) a new coherency protocol to imperatively control hierarchical ..."
Abstract
-
Cited by 6 (4 self)
- Add to MetaCart
. This paper presents: (i) an operational semantics, based on a functional framework, for a concurrent and distributed extension of the Scheme programming language, (ii ) a coherency protocol taking care of shared mutable objects, (iii ) a new coherency protocol to imperatively control hierarchical groups of cooperating tasks. These two protocols do not require broadcast, nor FIFO communications, nor a centralized machine; they allow to manage an unbound number of shared mutable values and groups of tasks. This paper also advocates for the use of a functional continuationbased presentation for these protocols. The omnipresence of interconnected networks exacerbates the need for high level languages allowing to express and control widely distributed computations. Much network services such as news, finger, archie, netfind etc. [ODL93] basically manage a set of informations which is accessed and enriched on a world-distributed basis. We think that it will become more and more necessary f...
A Study on Mobile Language Systems
, 1999
"... The mobile form of distributed computation, called mobile computation, is investigated from the viewpoints of computational model, programming language and implementation. The emphasis of this thesis compared with the related work is on analyzing existing mobile language systems from a rather implem ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
The mobile form of distributed computation, called mobile computation, is investigated from the viewpoints of computational model, programming language and implementation. The emphasis of this thesis compared with the related work is on analyzing existing mobile language systems from a rather implementational point of view. The contribution of this thesis is threefold. (1) We present a computational model in which dynamic transference of code, data and execution state can be represented. Several mobility mechanisms in existing mobile language systems are analyzed in the model. (2) Based on the analysis, a programming language for mobile computation is designed. The distinctive feature of the language is the facility to control the transparency of migration. (3) An implementation of the mobile programming language is presented. The language is implemented as an extension of the Java language. The implementation is so portable that the program runs on any standard Java inte...
Value Transforming Style
, 1992
"... A new program transformation is presented that allows to remove control operators related to partial continuations. The basis for the transformation is to adopt an improved representation for continuations that makes frames apparent. Various examples of control operators with or without dynamic exte ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
A new program transformation is presented that allows to remove control operators related to partial continuations. The basis for the transformation is to adopt an improved representation for continuations that makes frames apparent. Various examples of control operators with or without dynamic extent stress are presented. Scheme [IEE91], offers first-class continuations with indefinite extent. Pioneered in [Lan65, Rey72], continuations proved to be very useful tools allowing to program a wide variety of control features such as coroutines [Wan80], engines [HF84], escapes [HFW84] etc. The call/cc function reifies [Wan86] continuations into monadic functions, transfer of control occurs when these functional objects are applied. A transformation called "Continuation Passing Style" (or CPS for short) exists that transforms a program using call/cc into a new semantically equivalent program without call/cc. In this transformation, continuations are transformed again into monadic functions....
An Overview of the Parallel Language Id (a foundation for pH, a parallel dialect of Haskell)
- Digital Equipment Corporation, Cambridge Research Laboratory
, 1993
"... : Id is an architecture-independent, general-purpose parallel programming language that has evolved and been in use for a number of years. Id does not have a sequential core; rather, it is implicitly parallel, with the programmer introducing sequencing explicitly only if necessary. Id is a mostly ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
: Id is an architecture-independent, general-purpose parallel programming language that has evolved and been in use for a number of years. Id does not have a sequential core; rather, it is implicitly parallel, with the programmer introducing sequencing explicitly only if necessary. Id is a mostly-functional language, in the family of non-strict functional languages with a HindleyMilner static type system. Unlike other non-strict functional languages, it uses lenient, not lazy evaluation, for reasons of parallelism, as well as to give meaning to non-functional constructs. The non-functional constructs come in two layers: I-structures (which preserve determinacy, but not referential transparency, and are closely related to logic variables), and M-structures, which are side-effects with implicit synchronization. The layers are distinguished by syntax and types, so that it is possible for an implementation to force a program to be within a desired layer (e.g., purely functional)....
Continuation-based Transformations for Coordination Languages
- Theoretical Computer Science
, 1999
"... . Coordination languages for parallel and distributed systems specify mechanisms for creating tasks and communicating data among them. These languages typically assume that (a) once a task begins execution on some processor, it will remain resident on that processor throughout its lifetime, and (b) ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
. Coordination languages for parallel and distributed systems specify mechanisms for creating tasks and communicating data among them. These languages typically assume that (a) once a task begins execution on some processor, it will remain resident on that processor throughout its lifetime, and (b) communicating shared data among tasks is through some form of message-passing and data migration. In this paper, we investigate an alternative approach to understanding coordination. Communication-passing style (CmPS) refers to a coordination semantics in which data communication is always undertaken by migrating the continuation of the task requiring the data to the processor where the data resides. Communication-passing style is closely related to continuation-passing style (CPS), a useful transformation for compiling functional languages. Just as CPS eliminates implicit call-return sequences, CmPS eliminates implicit inter-processor data communication and synchronization reque...
Advanced Programming Techniques Using Scheme
, 1998
"... this paper, we describe an interactive reducer for lambda terms that combines first-class continuations, macros, delay, and state. We also describe the means by which we induce students to master advanced topics. 1. Introduction ..."
Abstract
- Add to MetaCart
this paper, we describe an interactive reducer for lambda terms that combines first-class continuations, macros, delay, and state. We also describe the means by which we induce students to master advanced topics. 1. Introduction

