19 citations found. Retrieving documents...
John Reppy. First-class synchronous operations in standard ML. Technical Report TR 89-1068, Computer Science Department, Cornell University, Ithaca, NY, December 1989.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Polymorphic Type Inference and Assignment - Leroy, Weis (1991)   (40 citations)  (Correct)

.... some calculi of communicating systems feature channels as rst class values [10] Polymorphic typing of these channels must guarantee that senders and receivers agree on the types of transmitted values, and this is similar to ensuring that writers and readers of a reference use it consistently [13]. Acknowledgments Didier R emy suggested the use of constraints in the typing rules. We also bene ted from his expertise in type inference and uni cation problems. Many thanks to Brad Chen for his editorial help. A Proof of soundness In this appendix, we sketch the proof of soundness of the ....

J. H. Reppy. First-class synchronous operations in Standard ML. Technical Report TR 89-1068, Cornell University, 1989.


Explicit Polymorphism and CPS Conversion - Harper, Lillibridge (1993)   (41 citations)  (Correct)

....structure and properties of programs. Matters of control are elegantly addressed using the method of continuations. The semantics of control operations may be concisely expressed using continuations [9, 36, 38, 42, 43] Important control constructs such as co routines [21] and user level threads [5, 37] can be defined using primitives for reifying continuations. Conversion into continuationpassing style (CPS) is a useful compilation technique for higher order functional languages [3, 2, 23, 41] Continuations are central to eliciting the computational content of proofs in classical logic ....

John Reppy. First-class synchronous operations in standard ML. Technical Report TR 89-1068, Computer Science Department, Cornell University, Ithaca, NY, December 1989.


Concurrent programming in ML - Ramsey (1990)   (2 citations)  (Correct)

....( let val a = ref 0 fun accum (n:int) a : a n in accum end; In the benchmarks, the functions send (accumulator( and faccumulator( were called repeatedly with argument 1. 4 This technique was subsequently used in a re implementation of the Pegasus concurrency primitives in ML [Rep89]. 12 I tested the communicating version with my standard implementation of the primitives and also with implementations I modified for increased speed. The first modification uses restricted channels whose queues hold at most one blocked process. Many programs work unchanged with such channels, ....

John H. Reppy. First-class synchronous operations in Standard ML. Technical Report TR 89-1068, Cornell University Department of Computer Science, December 1989.


Polymorphic Type Inference And Assignment - Leroy, Weis (1990)   (40 citations)  (Correct)

.... some calculi of communicating systems feature channels as first class values [10] Polymorphic typing of these channels must guarantee that senders and receivers agree on the types of transmitted values, and this is similar to ensuring that writers and readers of a reference use it consistently [13]. Acknowledgments Didier R emy suggested the use of constraints in the typing rules. We also benefited from his expertise in type inference and unification problems. Many thanks to Brad Chen for his editorial help. A Proof of soundness In this appendix, we sketch the proof of soundness of the ....

John H. Reppy. First-class synchronous operations in Standard ML. Technical Report TR 89-1068, Cornell University, 1989.


An Operational Semantics for a Parallel Functional Language With.. - Moreau (1992)   (5 citations)  (Correct)

....language. On the one hand, the approach adopted by the ML community [17] consists in adding to the language the notions of processes, channels and communications as in calculi like CCS [16] An operational semantics is given in [15] and several implementations were realised (PFL [11] CML [24]) Its main drawback is that the language is no longer functional and that it requires another programming methodology to develop parallel applications. On the other hand, one can preserve the functional features of the language by adding constructs like future and pcall. These constructs were ....

J. H. Reppy. First-class synchronous operations in Standard ML. Technical report, Cornell University, Department of Computer Science, 1989.


A Parallel Functional Language With First-Class Continuations.. - Moreau   (Correct)

....constructs. On the one hand, the approach adopted by the ML community [22] consists in adding to the language the notions of processes, channels, and communications as in calculi like CCS [21] An operational semantics is given in [2] and several implementations were realised (PFL [17] CML [32]) Its main drawbacks are that the language is no longer functional and that it requires another programming methodology to develop parallel applications. On the other hand, one can preserve the functional features of the language by adding constructs like future and pcall. These constructs were ....

John Hamilton Reppy. First-Class Synchronous Operations in Standard ML. Technical report, Cornell University, Department of Computer Science, 1989.


Typing First-Class Continuations in ML - Harper, Duba, MacQueen (1992)   (17 citations)  (Correct)

....functional languages. The ability to seize the current continuation (control state of the evaluator) provides a simple and natural basis for defining numerous higher level constructs such as coroutines [22] exceptions [41] and logic variables [8, 19] for supporting multiple threads of control [6, 20, 28, 40], for providing asynchronous signal handlers [29] and for implementing non blind backtracking [15] and dynamic barriers such as unwind protect [21] Tractable logics for reasoning about program equivalence in the presence of first class continuations in an untyped setting have been developed [11, ....

....: state cont = produce(n,S k) fun prun ( consume(pinit(0) Coroutines can be generalized to lightweight processes or threads. Continuations have been used as the basis for the implementations of several process facilities for Standard ML of New Jersey, some of which use preemptive scheduling [28, 3, 27, 35]. The following example uses stored continuations to implement a simple backtracking scheme. let val stack : unit cont list ref = ref [ fun pushstate(k : unit cont) stack : k : stack fun popstate( stack : tl( stack) fun backtrack( a = case stack of [ raise Error k : r = ....

John Reppy. First-class synchronous operations in standard ML. Technical Report TR 89-1068, Computer Science Department, Cornell University, Ithaca, NY, December 1989.


A semantics for ML concurrency primitives - Berry, Milner, Turner (1992)   (68 citations)  (Correct)

....5 Further Work There are three main avenues that we wish to follow with this work in the future. The first is to see how other communication constructs can be expressed in our semantics. Many constructs can be expressed as library functions using the primitives presented here, as Reppy has shown [Rep89]. We hope to define a wide range of features in this way, possibly including those of LINDA [CG89] For example, we could define an asynchronous send operator as a function that forks a new process to send the value. We could use techniques similar to those used in the Store Theorem to show that ....

J. H. Reppy. First-class synchronous operations in Standard ML. Technical Report TR 89-1068, Dept. of Computer Science, Cornell University, 1989.


Typing First-Class Continuations in ML - Duba, Harper, MacQueen (1991)   (52 citations)  (Correct)

....functional languages. The ability to seize the current continuation (control state of the evaluator) provides a simple and natural basis for defining numerous higherlevel constructs such as coroutines [16] exceptions [42] and logic variables [8, 19] for supporting multiple threads of control [41, 18, 29, 6], for providing asynchronous signal handlers [30] and for implementing non blind backtracking [14] and dynamic barriers such as unwind protect [17] Tractable logics for reasoning about program equivalence in the presence of first class continuations in an untyped setting have been developed [9, ....

....k : state cont = produce(n,S k) fun prun ( consume(pinit(0) Coroutines can be generalized to lightweight processes or threads. Continuations have been used as the basis for several implementations of process facilities for Standard ML of New Jersey, some of which use preemptive scheduling [29, 5, 28, 37]. The following example uses stored continuations to implement a simple backtracking scheme. let val stack : unit cont list ref = ref [ fun pushstate(k : unit cont) stack : k : stack fun popstate( stack : tl( stack) fun backtrack( a = case stack of [ raise Error k : r = ....

John Reppy. First-class synchronous operations in Standard ML. Technical Report TR 89-1068, Computer Science Department, Cornell University, Ithaca, NY, December 1989.


Adding Threads to Standard ML - Cooper, Morrisett (1990)   (49 citations)  (Correct)

....with threads [10] is directly applicable to the SML threads described here. Other researchers have examined concurrency in conjunction with SML. However, most have adopted message passing as the means of communication and synchronization. Reppy s work on first class synchronous operations [31] describes an implementation of coroutine based threads and a number of higher level constructs (channels and events) Ramsey presents a similar messagepassing, coroutine threads package based on CSP [28] Both implementations use continuations to simulate concurrency [38] The genealogy of the ....

....ready, any, or blocked. The any status is used to indicate a satisfiable event that should only be chosen if there are no ready events. Events that are blocked will never be chosen. Each of these differences makes implementing events quite difficult. Reppy gives a coroutine implementation [31], but many of the difficulties arise in the presence of true parallelism. In particular, the last problem has been a topic of quite a bit of research [8, 34, 35] Nevertheless, we have been able to implement events using the thread interface [27] The fact that so many higher level constructs can ....

J. H. Reppy. First-class synchronous operations in Standard ML. Technical Report TR 89-1068, Department of Computer Science, Cornell University, December 1989.


Typing First-Class Continuations in ML - Robert Harper   (17 citations)  (Correct)

....functional languages. The ability to seize the current continuation (control state of the evaluator) provides a simple and natural basis for defining numerous higher level constructs such as coroutines [22] exceptions [41] and logic variables [8, 19] for supporting multiple threads of control [6, 20, 28, 40], for providing asynchronous signal handlers [29] and for implementing non blind backtracking [15] and dynamic barriers such as unwind protect [21] Tractable logics for reasoning about program equivalence in the presence of first class continuations in an untyped setting have been developed [11, ....

....: state cont = produce(n,S k) fun prun ( consume(pinit(0) Coroutines can be generalized to lightweight processes or threads. Continuations have been used as the basis for the implementations of several process facilities for Standard ML of New Jersey, some of which use preemptive scheduling [28, 3, 27, 35]. The following example uses stored continuations to implement a simple backtracking scheme. let val stack : unit cont list ref = ref [ fun pushstate(k : unit cont) stack : k : stack fun popstate( stack : tl( stack) fun backtrack( a = case stack of [ raise Error k : r = ....

John Reppy. First-class synchronous operations in standard ML. Technical Report TR 89-1068, Computer Science Department, Cornell University, Ithaca, NY, December 1989.


Advanced Languages for Systems Software The Fox Project in 1994 - Harper, Lee (1994)   (4 citations)  (Correct)

....systems. The Standard ML of New Jersey compiler [9] on which this project relies) was written jointly by MacQueen and Andrew Appel of Princeton, along with their co workers and students. An important development is the extension of SML with concurrency primitives, called CML, by John Reppy [113, 111, 112] and its application to windowing systems [38] The message passing approach of CML provides a counterpoint to our own ML Threads system [27] which stresses a more imperative style of programming. The Fox Project has a established a close interaction with AT T that we expect to continue in the ....

John Reppy. First-class synchronous operations in standard ML. Technical Report TR 891068, Computer Science Department, Cornell University, Ithaca, NY, December 1989.


Typing First-Class Continuations in ML - Duba, Harper, MacQueen (1991)   (52 citations)  (Correct)

.... (control state of the evaluator) provides a simple and natural basis for defining numerous higherlevel constructs such as coroutines [15] exceptions [41] and engines [6] for writing interpreters and compilers [30, 34] and for organizing run time support for multiple threads of control [40, 27]. Tractable logics for reasoning about program equivalence in the presence of first class continuations in an untyped setting have been developed [8, 9, 38] Recent studies have focused on questions of typing for first class continuations [12, 11, 14] and their impact on full abstraction results ....

.... : state cont = produce(n,S k) fun prun ( consume(pinit(0) Closely related to coroutines are lightweight processes or threads, and continuations have been used as the basis for several implementations of process facilities for Standard ML of New Jersey, some of which use preemptive scheduling [27, 5, 26, 36]. Another use of continuations is to provide a clean, typed interface for asynchronous signal handling [28] In Standard ML of New Jersey the type of a signal handler is (int unit cont) unit cont, where the argument is a pair consisting of a count of pending signals of the kind being handled, ....

John Reppy. First-class synchronous operations in Standard ML. Technical Report TR 89-1068, Computer Science Department, Cornell University, Ithaca, NY, December 1989.


Explicit Polymorphism and CPS Conversion - Harper, Lillibridge (1993)   (41 citations)  (Correct)

....structure and properties of programs. Matters of control are elegantly addressed using the method of continuations. The semantics of control operations may be concisely expressed using continuations [9, 36, 38, 42, 43] Important control constructs such as co routines [21] and user level threads [5, 37] can be defined using primitives for reifying continuations. Conversion into continuation passing style (CPS) is a useful compilation technique for higher order functional languages [3, 2, 23, 41] Continuations are central to eliciting the computational content of proofs in classical logic ....

John Reppy. First-class synchronous operations in standard ML. Technical Report TR 891068, Computer Science Department, Cornell University, Ithaca, NY, December 1989.


Concurrent ML: Design, Application and Semantics - Reppy (1993)   (4 citations)  Self-citation (Reppy)   (Correct)

....3 First class Synchronous Operations To resolve the conflict between abstraction and selective communication requires introducing a new abstraction mechanism that preserves the synchronous nature of the abstraction. First class synchronous operations provide this abstraction mechanism [Rep88, Rep89, Rep91a] The traditional select construct has four facets: the individual I O operations, the actions associated with each operation, the nondeterministic choice, and the synchronization. In CML, we unbundle these facets by introducing a new type of values, called events, that represent ....

Reppy, J. H. First-class synchronous operations in Standard ML. Technical Report TR 89-1068, Department of Computer Science, Cornell University, December 1989.


Asynchronous Signals in Standard ML - Reppy (1990)   (19 citations)  Self-citation (Reppy)   (Correct)

....first signal on the pending list. This implementation requires about 100 lines of ML code. 4. 2 Concurrency First class continuations provide an attractive basis for implementing light weight threads [Wand80] The continuations of SML NJ have been used to implement co routine packages (e.g. [Reppy89, Ramsey90]) but providing pre emptive scheduling requires additional run time system support. This was one of the major reasons for developing the signal handling mechanism described in this paper. Shared data structures, such as the process ready queue, must be accessed atomically with respect to process ....

Reppy, J.H. "First-class synchronous operations in standard ml," Technical Report TR 89-1068, Computer Science Department, Cornell University, December 1989.


Higher-order Concurrency - Reppy (1992)   (67 citations)  Self-citation (Reppy)   (Correct)

....been several instantiations of them in language designs. I first developed this approach in the context of PML [Rep88] an ML like language used in the Pegasus system at AT T Bell Laboratories [RG86, GR92] I reimplemented the concurrency primitives of PML on top of SML NJ at Cornell University [Rep89] This implementation evolved into the current version of CML [Rep91a] which is described in this dissertation. 2 The first version was released in November 1990. Chapter 2 An Introduction to SML While the ideas presented in this dissertation are largely language independent, they have been ....

....The operation select is a short hand for the common idiom of applying sync to a choice of events; i.e. val select = sync o choose The operation poll is a non blocking form of sync; it returns NONE in the case that sync would have blocked. This form of polling is different from those of [Rep88] Rep89] and [Rep91a] In these earlier versions, polling was handled by constructing polling event values. 4 The semantics of these approaches is more difficult to specify and the implementation is more complicated; furthermore, in practice, the few rare uses of polling have always been in combination ....

[Article contains additional citation context not shown here]

Reppy, J. H. First-class synchronous operations in Standard ML. Technical Report TR 89-1068, Computer Science Department, Cornell University, December 1989.


Explicit Polymorphism and CPS Conversion - Robert Harper Mark (1992)   (41 citations)  (Correct)

No context found.

John Reppy. First-class synchronous operations in standard ML. Technical Report TR 89-1068, Computer Science Department, Cornell University, Ithaca, NY, December 1989.


Applicative Programming and Specification - Gilmore (1993)   (Correct)

No context found.

J. H. Reppy. First-class synchronous operations in Standard ML. Technical Report TR 89-1068, Dept. of Computer Science, Cornell University, 1989.

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC