STING(ID:1710/sti006)


A parallel dialect of Scheme intended to serve as a high-level operating system for symbolic programming languages. First-class threads, and processors, and customizable scheduling policies.


Related languages
Scheme => STING   Dialect of

References:
  • Jagannathan, S. et al, "A Customizable Substrate for Concurrent Languages" view details Abstract: We describe an approach to implementing a wide-range of concurrency paradigms in high-level (symbolic) programming languages. The focus of our discussion is STING, a dialect of Scheme, that supports lightweight threads of control and virtual processors as first-class objects. Given the significant degree to which the behavior of these objects may be customized, we can easily express a variety of concurrency paradigms and linguistic structures within a common framework without loss of efficiency. Unlike parallel systems that rely on operating system services for managing concurrency, STING implements concurrency management entirely in terms of Scheme objects and procedures. It, therefore, permits users to optimize the runtime behavior of their applications without requiring knowledge of the underlying runtime system. This paper concentrates on (a) the implications of the design for building asynchronous concurrency structures, (b) organizing large-scale concurrent computations, and (c) implementing robust programming environments for symbolic computing. DOI
          in SIGPLAN Notices 27(07) July 1992 (Proceedings of the 5th ACM SIGPLAN conference on Programming language design and implementation, 22-31, San Francisco, June 1992) view details
  • Suresh Jagannathan , Jim Philbin, A foundation for an efficient multi-threaded scheme system view details Abstract: 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.
    DOI
          in Proceedings of the 1992 ACM Conference on Conference on LISP and Functional Programming June 1992 San Francisco, California, United States view details