Advanced programming languages such as Standard ML have rarely been used for systems programming tasks such as operating systems and network communications. In order to understand more fully the requirements of system...
详细信息
ISBN:
(纸本)0897916433
Advanced programming languages such as Standard ML have rarely been used for systems programming tasks such as operating systems and network communications. In order to understand more fully the requirements of systems programming, we have implemented a suite of industry-standard network communication protocols in a completely type-safe extension of Standard ML. While the implementation has only recently become operational, we already observe acceptable communications throughput. We make careful use of the Standard ML modules system, with the core component of the implementation being a signature which is generic to all communications protocols. This generic protocol is then specialized for specific protocols, and these are implemented by functors parameterized by generic protocols. This leads naturally to a layered system structure and also provides an important and useful 'mix-and-match' capability in composing protocols into complex networking systems. We have found the advanced features of Standard ML, in particular the modules system, static typing, and higher-order functions, to be extremely useful in building complex communications systems. The type compatibility of the various components of a system is guaranteed by the compiler. Furthermore, we find it significant that most of the information needed to understand the structure and interactions in our code can be obtained from a study of the signatures alone. Perhaps most important is that we have been able to use the expressive power of Standard ML modules to give concrete expression to previously ad hoc system-structuring concepts developed by other researchers in the field of network communications. For language designers and implementors, our experience has also pointed out specific areas for further work that may lead to advanced languages that are useful for systems programming.
Concurrency and distribution are topics exacerbated by the omnipresence of Internet. Although many languages address these topics, few offer a real opportunity to control and coordinate widely spread dynamic computati...
详细信息
ISBN:
(纸本)0897916433
Concurrency and distribution are topics exacerbated by the omnipresence of Internet. Although many languages address these topics, few offer a real opportunity to control and coordinate widely spread dynamic computations. This paper presents such a language and its prominent features. Besides explaining the software architecture of the implementation (based on objects and generic functions), it also presents an original coherency protocol for shared mutable variables. We first recall, in Section 1, the main features of our Scheme-based, concurrent, distributed and computation-oriented language already presented in more details and examples in [QD93]. Section 2 explains how to systematically implement a concurrent and distributed interpreter for that language, using a set of program transformations combining Abstract Continuation Passing Style (ACPS) [FWFD88] and Object-Oriented Lifting. The originality of this implementation is that it chiefly uses objects and generic functions in a style that allows to concentrate the problems related to concurrency and migration of computations into the sole discriminating behavior of generic functions. ACPS is not only used to reify continuations but also to enforce locality of computations in presence of distal objects. In Section 3, we propose a new (to our knowledge) protocol to manage shared mutable variables. This protocol enhances [MSRN92], does not require atomic broadcast, tolerates short communication breakdowns and uses bounded circular clocks. This result comes from the use of a distributed GC [LQP92] (which allows us to maintain an approximation of Global Virtual Time [Jef85]) and from the exploitation of causality as stated by continuations. To give a continuation a value (and a store) clearly expresses that the computations that are present in the continuation causally depend on the invoker of the continuation. Finally the computation-orientation of our language and mainly the ability to control groups of threads, c
The syntax and semantics for UCL+P, a persistent Common lisp, are defined. The definition provides adequate support for persistence while maintaining the look-and-feel of Common lisp. All lisp data types (except strea...
ISBN:
(纸本)9780897916431
The syntax and semantics for UCL+P, a persistent Common lisp, are defined. The definition provides adequate support for persistence while maintaining the look-and-feel of Common lisp. All lisp data types (except streams) can be made persistent. Persistence is conferred automatically on non-symbol values when they become part of a persistent data structure. Symbols are persistent if interned in a persistent package. The Common lisp package facility was enhanced to allow for persistent packages which provide modularity to the space of persistent values and serve as the ultimate roots of the persistence conferral algorithm. Values are retrieved from the store using demand loading; new or mutated values are automatically detected and written back to the store when the transaction is committed. The sharing semantics of lisp are preserved in this specification.
The conference materials contain 33 papers. The topics covered include compiling lazy pattern matching, garbage collection, parsers in ML, interactive modular programming, finiteness conditions for fixed point iterati...
详细信息
ISBN:
(纸本)0897914813
The conference materials contain 33 papers. The topics covered include compiling lazy pattern matching, garbage collection, parsers in ML, interactive modular programming, finiteness conditions for fixed point iteration, abstract interpretation in weak power domains, data abstraction, type inference, global tagging optimization, calculus for overloaded functions, the Python compiler for CMU common lisp, Tachyon common lisp, confluent calculus of macro expansion and evaluation, dynamic program parallelization, fast parallel implementation of lazy languages, and efficient multi-threaded scheme system.
Tachyon Common lisp is an efficient and portable implementation of Common lisp 2nd Edition. The design objective of Tachyon is to apply both advanced optimization technology developed for RISC processors and lisp opti...
详细信息
ISBN:
(纸本)0897914813
Tachyon Common lisp is an efficient and portable implementation of Common lisp 2nd Edition. The design objective of Tachyon is to apply both advanced optimization technology developed for RISC processors and lisp optimization techniques. The compiler generates very fast codes comparable to, and sometimes faster than the code generated by UNIX C compiler. Comparing with the most widely used commercial Common lisp, Tachyon Common lisp compiled code is 2 times faster and the interpreter is 6 times faster than the lisp in Gabriel benchmark suit. Tachyon Common lisp is the fastest among the lisp systems known to the authors.
The current secondary school computer science curriculum, which culminates in the AP exam, provides students with a misleading picture of the discipline, and many young thinkers are turned off by the rigidity and pett...
详细信息
The current secondary school computer science curriculum, which culminates in the AP exam, provides students with a misleading picture of the discipline, and many young thinkers are turned off by the rigidity and pettiness of syntax-heavy languages like BASIC and Pascal. This paper describes an introductory course that uses functionalprogramming techniques to emphasize the analytical and problem solving aspects that make computer science so interesting, while avoiding the tedium associated with traditional approaches. A course based on this approach has proven very successful in encouraging students to further their study of the discipline.
This paper presents a module system and a programming environment designed to support interactive program development in Scheme. The module system extends lexical scoping while maintaining its flavor and benefits and ...
详细信息
ISBN:
(纸本)0897914813
This paper presents a module system and a programming environment designed to support interactive program development in Scheme. The module system extends lexical scoping while maintaining its flavor and benefits and supports mutually recursive modules. The programming environment supports dynamic linking, separate compilation, production code compilation, and a window-based user interface with multiple read-eval-print contexts.
The Python compiler for CMU Common lisp has been under development for over five years, and now forms the core of a production quality public domain lisp implementation. Python synthesizes the good ideas from lisp com...
详细信息
ISBN:
(纸本)0897914813
The Python compiler for CMU Common lisp has been under development for over five years, and now forms the core of a production quality public domain lisp implementation. Python synthesizes the good ideas from lisp compilers and source transformation systems with mainstream optimization and retargetability techniques. Novel features include strict type checking and source-level debugging of compiled code. Unusual attention has been paid to the compiler's user interface.
The proceedings contain 6 papers and 1 PowerPoint presentation. The topics discussed include: connecting to a relational database application from interleaf 5 using lisp;SENEX: symbolic representation in molecular pat...
The proceedings contain 6 papers and 1 PowerPoint presentation. The topics discussed include: connecting to a relational database application from interleaf 5 using lisp;SENEX: symbolic representation in molecular pathology;sleeping with the enemy: lisp and C in a large, profitable real-time application;supporting complex flight scheduling tasks using CLOS and statice;unifying software elements with lisp-based object-oriented technology;functionalprogramming: more fundamental than BASIC;and lisp and portability: the process modeling system.
We propose a syntactic approach to performing fixed point computation on finite domains. Finding fixed points in finite domains for monotonic functions is an essential task when calculating abstract semantics of funct...
详细信息
ISBN:
(纸本)0897914813
We propose a syntactic approach to performing fixed point computation on finite domains. Finding fixed points in finite domains for monotonic functions is an essential task when calculating abstract semantics of functional programs. Previous methods for fixed point finding have been mainly based on semantic approaches which may be very inefficient even for simple programs. We outline the development of a syntactic approach, and show that the syntactic approach is sound and complete with respect to semantics. A few examples are provided to illustrate this syntactic approach.
暂无评论