14 citations found. Retrieving documents...
N. Ramsey. Concurrent programming in ML. Technical Report CS-TR-262-90, Princeton University, Department of Computer Science, April 1990.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Compiler Support for Lightweight Concurrency - Fisher, Reppy (2001)   (Correct)

.... collection of deadlocked threads (i.e. blocked threads that cannot possibly be resumed) Rep99] 8 Related work The correspondence between continuations and multiple threads of control dates back to Wand s seminal work [Wan80] and has been exploited in many concurrency libraries [HFW84, CM90, Ram90, Rep91] Various researchers have observed that the full power of first class continuations is not necessary for implementing either exceptions or concurrency. Bruggeman et al. propose a form of one shot continuations that are sufficient to support concurrency [BWD96] These one shot ....

Ramsey, N. Concurrent programming in ML. Technical Report CS-TR-262-90, Department of Computer Science, Princeton University, April 1990.


A Constructive Restriction of the lambda µ-calculus - Crolard (1999)   (Correct)

.... cooperative coroutines in Scheme [28, 9] This approach has been extended in the Standard ML of New Jersey (SML NJ) to provide simple and elegant implementations of light weight processes (or threads) where concurrency is obtained by having individual threads volontarily suspend themselves [25, 21, 2] (providing time sliced processes using pre emptive scheduling requires additional run time system support [2, 24] The key point in these implementations is that control operators (such as the famous call cc of Scheme and its typed counterpart callcc and throw in SML NJ) make it possible to ....

N. Ramsey. Concurrent programming in ML. Technical Report CS-TR-262-90, Department of Computer Science, Princeton University, Princeton, NJ, 1990.


Procs and Locks: A Portable Multiprocessing Platform for.. - Morrisett, Tolmach (2000)   (16 citations)  (Correct)

....from SF grant R 002 86. protected if the implementation language provides an abstract data type mechanism. Wand used Scheme [10] as his implementation language. Standard ML of New Jersey (SML NJ) is another suitable language system for building continuation based uniprocessor thread packages [13, 28, 30]. Standard ML [26] is a mostly functional programming language that provides first class functions (closures) compile time typing, polymorphism, exceptions, garbage collection, and a powerful module facility. The SML NJ implementation [6, 7] supports type safe, first class continuations [16] and ....

....state consists of its continuation, its id, and the value that it is sending. A receiver s state consists of its continuation, its id, and a mutex lock, committed, that serves as a flag to indicate when a sender has been determined. 3 3 This mechanism is similar to the one proposed by Ramsey [28]. functor MPThread(structure Proc : PROC structure Lock : LOCK structure Queue : QUEUE sharing type Proc.procdatum = int) THREAD = struct val ready : unit cont int) Queue.queue = Queue.create ( val readylock = Lock.mutexlock( val nextid = ref 1 val nextidlock = Lock.mutexlock( ....

N. Ramsey. Concurrent programming in ML. Technical Report CS-TR-262-90, Department of Computer Science, Princeton University, Apr. 1990.


Procs and Locks: A Portable Multiprocessing Platform for.. - Morrisett, Tolmach (1993)   (16 citations)  (Correct)

....from NSF grant CCR 9002786. protected if the implementation language provides an abstract data type mechanism. Wand used Scheme [10] as his implementation language. Standard ML of New Jersey (SML NJ) is another suitable language system for building continuation based uniprocessor thread packages [13, 28, 30]. Standard ML [26] is a mostly functional programming language that provides rst class functions (closures) compile time typing, polymorphism, exceptions, garbage collection, and a powerful module facility. The SML NJ implementation [6, 7] supports type safe, rst class continuations [16] and ....

....state consists of its continuation, its id, and the value that it is sending. A receiver s state consists of its continuation, its id, and a mutex lock, committed, that serves as a ag to indicate when a sender has been determined. 3 3 This mechanism is similar to the one proposed by Ramsey [28]. functor MPThread(structure Proc : PROC structure Lock : LOCK structure Queue : QUEUE sharing type Proc.proc datum = int) THREAD = struct val ready : unit cont int) Queue.queue = Queue.create ( val ready lock = Lock.mutex lock( val next id = ref 1 val next id lock = ....

N. Ramsey. Concurrent programming in ML. Technical Report CS-TR-262-90, Department of Computer Science, Princeton University, Apr. 1990.


C-: A Portable Assembly Language That Supports Garbage.. - Jones, Ramsey, Reig   (Correct)

....the state the machine will be in when control returns to P. The approximation is not completely accurate because other procedures may change the global store or P s stack variables before control returns to P. At the machine level, the activation corresponds to the abstract memory of Ramsey (1992), Chapter 3, which gives the contents of memory, including P s activation record (stack frame) and of registers. The activation abstraction hides machine dependent details and raises the level of abstraction to the C source code level. In particular, the abstraction hides: The layout of an ....

....classic callee saves registers, but also registers like the frame pointer, which must be saved and restored but which aren t always thought of as callee saves registers. might have values of all registers or only of non volatile registers, but this detail is hidden behind the run time interface. Ramsey (1992) discusses retargetable stack walking in Chapters 3 and 8. The run time system executes only when execution of C procedures is suspended. We assume that C execution is suspended only at a safe point. Broadly speaking, a safe point is a point at which the C run time system is guaranteed to ....

Ramsey, Norman. 1992 (December). A Retargetable Debugger. PhD thesis, Princeton University, Department of Computer Science. Also Technical Report CS-TR-403-92.


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

....of PML [Rep88] in SML NJ, but has evolved into a significantly more powerful language. PML in turn was heavily influenced by amber [Car86] There have been other attempts at adding concurrency to various versions of ML. Most of these have been based on message passing ( Hol83] Mat89] and [Ram90] for example) but there is at least one shared memory approach [CM90] As we have shown in this paper, message passing fits very nicely into SML. It allows an applicative style of programming to be used most of the time; the state modifying operations are hidden in the thread and channel ....

Ramsey, N. Concurrent programming in ML. Technical Report CS-TR-262-90, Department of Computer Science, Princeton University, April 1990.


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

....useful addition to ML to support parallel programming (see Chapter 12) they are not a reasonable base for a concurrent language design. 3.3. 6 Message passing and ML In addition to my own work, there have been several other efforts to integrate message passing and ML; e.g. Hol83a] Mat89] and [Ram90] All of these have supported CSP style message passing (i.e. synchronous) Message passing is a useful base for concurrent programming, because it can support the two most common styles of concurrency: pipelining, in which threads are arranged in a data flow network [KM77] and server client ....

....first class synchronous operations. I wrote the first implementation in C as part of the Pegasus PML run time system [Rep88] I later implemented the concurrency mechanisms of PML on top of SML NJ in a coroutine 1 library [Rep89] and Norman Ramsey has implemented a similar system at Princeton [Ram90] More recently, I implemented CML on top of SML NJ [Rep91a] Of these implementations, CML provides the richest programming notation and the best performance. It is written entirely in SML, using two non standard extensions provided by SML NJ, firstclass continuations [DHM91] and asynchronous ....

[Article contains additional citation context not shown here]

Ramsey, N. Concurrent programming in ML. Technical Report CS-TR-262-90, Department of Computer Science, Princeton University, April 1990.


Concurrent Rule Execution In Active Databases - Saygin, Ulusoy, Chakravarthy (1998)   (Correct)

....Overview of ADBMS Rule Execution A rule in an ADBMS consists of an event, a condition and an action. If the event is missing, then the rule is a condition action (CA) rule or a production rule; if no condition is specified, then the resulting rule is an event action (EA) rule or simply a trigger [PD95] When an event is detected, the system searches for the corresponding rules. The condition part of the rule triggered by that event is evaluated and the action is taken if the condition is satisfied. An event may cause more than one rule to be fired. Handling of multiple rules fired by an event ....

Norman W. Paton and Oscar Diaz. Active Database Systems. Technical report, University of Manchester, Department of Computer Science, 1995.


A Portable Multiprocessor Interface for Standard ML of New.. - Morrisett, Tolmach (1992)   (1 citation)  (Correct)

....thread package for uniprocessors quite easy. Uniprocessor implementations simulate concurrent thread execution, distributing access to the processor among the currently active threads, typically with the aid of a clock driven preemption mechanism. At least four such packages currently exist [14, 31, 37, 39]. Many multi threaded applications offer better latency if they are executed in truly concurrent fashion, using multiple processors. Moreover, a truly concurrent thread model can be used to express parallel algorithms designed to maximize throughput. We have designed and implemented a ....

N. Ramsey. Concurrent programming in ML. Technical Report CS-TR-262-90, Department of Computer Science, Princeton University, Apr. 1990.


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

....[3, 7] supports type safe, first class 1 UNIX is a trademark of AT T Bell Laboratories. Hoare s monitors [22] Mesa processes [25] Modula 2 threads [9, 10, 33] CMA [17] C threads [15] Phi Phi Phi Wand s coroutines [38] POSIX threads [24] Ramsey s and Reppy s coroutines [28, 30] H H H Phi Phi Phi SML threads Figure 1: Genealogy of thread interfaces continuations with callcc and throw, and provides asynchronous exception handling facilities in the form of signal handlers [32] We have found that these extensions, along with the clean organization of the compiler and ....

....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 SML thread module described here is summarized in Figure 1. signature THREAD = sig val fork : unit unit) unit val exit : unit a val yield : unit unit type mutex val mutex : unit mutex val ....

Norman Ramsey. Concurrent programming in ML. Technical Report CS-TR-262-90, Department of Computer Science, Princeton University, April 1990.


The New Jersey Machine-Code Toolkit - Ramsey, Fernandez (1995)   (27 citations)  Self-citation (Norman)   (Correct)

....instruction set can be specified with modest effort; our MIPS, SPARC, and 486 specifications are 127, 193, and 460 lines. We have two applications that use the toolkit. mld (Fern andez 1994) a retargetable, optimizing linker, uses the toolkit to encode instructions and emit executable files. ldb (Ramsey 1992; Ramsey and Hanson 1992) a retargetable debugger, uses the toolkit to decode instructions and to implement breakpoints. The toolkit provides practical benefits, like reducing retargeting effort. For example, ldb s disassembler for the MIPS requires less than 100 lines of code, and mld has ....

....storage widens. Better compression would help reduce the storage requirements for large network traces, which can consume gigabytes (Duffy et al. 1994) 13 Discussion Our specification language evolved from a simpler language used to recognize RISC instructions in a retargetable debugger (Ramsey 1992, Appendix B) That language had field constraints and patterns built with conjunction and disjunction, but no concatenation and no constructors. There was no notion of instruction stream; instructions were values that fit into a machine word. We extended that language to specify encoding ....

Ramsey, Norman. 1992 (December). A Retargetable Debugger. PhD thesis, Princeton University, Department of Computer Science. Also Technical Report CS-TR-403-92.


The New Jersey Machine-Code Toolkit - Ramsey, Fernandez (1995)   (27 citations)  Self-citation (Norman)   (Correct)

....be coupled (see Section 5.1) and on automating the translation to and from that high level representation. We have experience with two applications that use the toolkit. mld (Fernandez 1995) a retargetable, optimizing linker, uses the toolkit to encode instructions and emit executable files. ldb (Ramsey 1992; Ramsey and Hanson 1992) a retargetable debugger, uses the toolkit to decode instructions and to implement breakpoints. The toolkit provides practical benefits, like reducing retargeting effort. For example, ldb s disassembler for the MIPS requires less than 100 lines of code, and mld has ....

....it can t currently represent relocatable object code on disk, and it can t make use of optimizations that vendors may build into assemblers, like MIPS instruction scheduling. Our specification language evolved from a simpler language used to recognize RISC instructions in a retargetable debugger (Ramsey 1992, Appendix B) That language had field constraints and patterns built with conjunction and disjunction, but no concatenation and no constructors. There was no notion of instruction stream; instructions were values that fit into a machine word. We extended that language to specify encoding ....

Ramsey, Norman. 1992 (December). A Retargetable Debugger. PhD thesis, Princeton University, Department of Computer Science. Also Technical Report CS-TR-40392.


Dynamic Language - Parallelization By Requirements   (Correct)

No context found.

N. Ramsey. Concurrent programming in ML. Technical Report CS-TR-262-90, Princeton University, Department of Computer Science, April 1990.


A Typed Higher-Order Programming Language Based on the.. - Pierce, Rémy.. (1993)   (15 citations)  (Correct)

No context found.

Norman Ramsey. Concurrent programming in ML. Technical Report CS--TR--262--90, Department of Computer Science, Princeton University, April 1990.

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