TL;DR: This paper describes a practical approach to type inference realized in a module and application compiler for EuLisp, partly related to Milner-style polymorphic type inference, but differs by describing functions with generic type schemes.
Abstract: Lisp applications need to show a reasonable cost-benefit relationship between the offered expressiveness and their demand for storage and run-time. Drawbacks in efficiency, apparent inLisp as a dynamically typed programming language, can be avoided by optimizations. Statically inferred type information can be decisive for the success of these optimizations.
TL;DR: This work outliize a virtual architecture for general purpose parallel processing on multicomputers, allowing multi-user remote manipulaton of SIMD arrays, multiprocessors, and LAN connected workstations, from within a single application session.
Abstract: We advocate the use of a single language to control heterogeneous computer ensembles, and offer an alternative perspective on architecture independence. The approach we suggest emphasises the common aspects of all models of parallel computation, while accepting the strengths and weaknesses of their differences. This common model can then be used to express algorithms appropriate to the different operational models of the target machines involved. Our work is based on Paralation Lisp - we give a brief overview of this collection-oriented language, and describe an experimental MIMD implementation based on EuLisp and PVM. Finally, we outliize a virtual architecture for general purpose parallel processing on multicomputers, allowing multi-user remote manipulaton of SIMD arrays, multiprocessors, and LAN connected workstations, from within a single application session.
TL;DR: Plural EuLisp is presented, which is a relatively low-level abstract model of massively parallel processing that encompasses ideas integral to at least Paralation Lisp, and how memory and processors are allocated and garbage collected is described.
Abstract: We present here a data parallel dialect of lisp, Plural EuLisp, which is a relatively low-level abstract model of massively parallel processing. It is not as rich as languages like Connection Machine Lisp and Paralation Lisp but encompasses ideas integral to at least Paralation Lisp. However its low-level nature makes the explanation of the underlying processor/memory management mechanisms easier as the low level structures are closer to the objects in Plural EuLisp. We describe how memory and processors are allocated and garbage collected, with particular interest in heterogeneous data parallel objects — which in general have been considered too expensive to be supported seriously.
TL;DR: The paper describes how threads can cross language boundaries, i.e. can be shared by components written in different languages within a single application (multilingual threading), and shows that multilingualthreading is particularly fruitful when higher level and lower level languages, like Lisp and C, are combined.
Abstract: Multiple threads of execution within a single address space provide concurrency in a structured and simple way. The paper describes how threads can cross language boundaries, i.e. can be shared by components written in different languages within a single application (multilingual threading). The advantage is that each component can be written in the language which is most suitable for it and benefit from multithreading. Our approach to multilingual threading is implemented in youtoo. The youtoo system supports the creation of multithreaded stand alone applications from interlinked EuLisp and C modules. Depending on the platform, multithreading is based on the POSIX kindred UI (UNIX International), PPCR (POSIX Portable Common Runtime) or MIT thread library. We show that multilingual threading is particularly fruitful when higher level and lower level languages, like Lisp and C, are combined.
TL;DR: This work describes the extensions made to EuLisp for data-parallel programming and their implementation on a specific platform, a MasPar MP-1, and demonstrates how to implement a number of higher-level abstraction from other data-Parallel languages.
Abstract: There are now several versions of Lisp for massively parallel SIMD architectures like the Thinking Machines Connection Machine. We describe here the extensions made to EuLisp for data-parallel programming and their implementation on a specific platform, a MasPar MP-1. Plural EuLisp, in keeping with the rest of the language, presents a collection of simple orthogonal operators which capture the essence of data parallel processing. In support of this, we demonstrate how to implement a number of higher-level abstraction from other data-parallel languages.