MULTILISP: a language for concurrent symbolic computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
ORBIT: an optimizing compiler for scheme
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
Revised report on the algorithmic language scheme
ACM SIGPLAN Notices
Structure and interpretation of computer programs
Structure and interpretation of computer programs
Real-time concurrent collection on stock multiprocessors
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Communications of the ACM
Workcrews: an abstraction for controlling parallelism
International Journal of Parallel Programming
Mul-T: a high-performance parallel Lisp
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
The definition of Standard ML
A parallel virtual machine for efficient scheme compilation
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Lazy task creation: a technique for increasing the granularity of parallel programs
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
PPOPP '90 Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming
CML: A higher concurrent language
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
A customizable substrate for concurrent languages
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Full utilization of communication resources
Full utilization of communication resources
Monsoon: an explicit token-store architecture
ISCA '90 Proceedings of the 17th annual international symposium on Computer Architecture
A real-time garbage collector based on the lifetimes of objects
Communications of the ACM
Experience with processes and monitors in Mesa
Communications of the ACM
List processing in real time on a serial computer
Communications of the ACM
Queue-based multi-processing LISP
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Garbage collection in a large LISP system
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Continuation-based multiprocessing
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
Generation Scavenging: A non-disruptive high performance storage reclamation algorithm
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
A customizable substrate for concurrent languages
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Procs and locks: a portable multiprocessing platform for standard ML of New Jersey
PPOPP '93 Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming
Tutorial notes on partial evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Locality, causality and continuations
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Analyzing stores and references in a parallel symbolic language
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Higher-order distributed objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
A hybrid execution model for fine-grained languages on distributed memory multicomputers
Supercomputing '95 Proceedings of the 1995 ACM/IEEE conference on Supercomputing
Guaranteeing Good Memory Bounds for Parallel Programs
IEEE Transactions on Software Engineering
Space-efficient scheduling of parallelism with synchronization variables
Proceedings of the ninth annual ACM symposium on Parallel algorithms and architectures
Provably efficient scheduling for languages with fine-grained parallelism
Journal of the ACM (JACM)
Lisp and Symbolic Computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Lightweight concurrency primitives for GHC
Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
Hi-index | 0.00 |
We have built a parallel dialect of Scheme called STING that differs from its contemporaries in a number of important respects. STING is intended to be used as an operating system substrate for modern parallel programming languages.The basic concurrency management objects is STING are first-class lightweight threads of control and virtual processors (VPs). Unlike high-level concurrency structures, STING threads and VPs are not encumbered by complex synchronization protocols. Threads and VPs are manipualted in the same way as any other Scheme structure.STING separates thread policy decisions from thread implementation ones. Implementations of different parallel languages built on top of STING can define their own scheduling and migration policies without requiring modification to the runtime system or the provided interface. Process migration and scheduling can be customized by applications on a per-VP basis.The semantics and implementation of threads minimizes the cost of thread creation, and puts a premium on storage locality. The storage management policies in STING lead to better cache and page utilization, and allows users to experiment with a variety of different execution regimes—from fully delayed to completely eager evaluation.