Lucinda(ID:1641/luc004)


Combines Russell-like polymorphism with Linda-like concurrency. Implemented as a threaded interpreter written in C, for a Sun network and a Meiko Computing Surface.

Butcher, University of York


Related languages
Linda => Lucinda   Implementation
RUSSELL => Lucinda   Influence

References:
  • Butcher, Paul; Zedan, Hussein "Lucinda - A Polymorphic Linda" view details Abstract: This document describes the courting of Linda (a coordination language) by Russell (a computation language), and the subsequent conception of their child Lucinda. Mother and baby are both doing well.A number of disadvantages with current Linda implementations are discussed, and a new language, Lucinda, is proposed to overcome them. Lucinda provides multiple, typed tuple spaces, polymorphism, and a novel approach to data structuring and storage.

          in Banâtre, J.P. and D. Le Métayer, (eds) Research Directions in High-Level Parallel Programming Languages, June 17-19 1991 LNCS 574, Springer Verlag, Berlin 1992 view details
  • Butcher, Paul; Zedan, Hussein "Lucinda: An Overview" view details Abstract: This document describes the courting of Linda (a coordination language) by Russell (a computation language), and the subsequent conception of their child Lucinda. Mother and baby are both doing well. A number of disadvantages with current Linda implementations are discussed, and a new language, Lucinda, is proposed to overcome them. Lucinda provides multiple, typed tuple spaces, polymorphism, and a novel approach to data structuring and storage. DOI Extract: Introduction
    Introduction
    The increasing availability of parallel, distributed computers has resulted in a considerable amount of research into programming techniques and languages for these machines. Examples are DP[2], Concurrent Pascal[3], Ada[9], CSP[13]o Path Pascal[16] and occam[20]. Most such research has concentrated on the "message passing" paradigm, and has been aimed at scientific and engineering applications (e.g. fluid flow analysis, theorem provers, numerical methods etc.). This document describes the design and implementation of a new language "Lucinda", which incorporates both concurrency and polymorphism. It is hoped that this will make it suitable for general purpose programming (e.g. spreadsheets, word processors etc.) as well as scientific programming.
    Lucinda is based upon the Linda inter-process communication paradigm, which provides a high level, explicitly parallel programming model with a number of advantages over message passing. In particular, Linda allows the construction of highly uncoupled programs; in a message passing system, the programmer has to consider both the destination of the message and the synchronisation aspects of the data exchange every time a message is sent. Linda allows the programmer to ignore these aspects if they are unimportant.
    Extract: Design Rationale for Lucinda
    Design Rationale for Lucinda
    Given that a new language is called for, it is necessary to determine what features would be desirable in a language based on Linda. Firstly, the principles of simplicity, regularity and orthogonality mean that not only should Linda be the sole IPC mechanism, but also that the language should use tuple spaces as its sole data storage and structuring mechanism. Therefore the language should not directly support the "variable" abstraction. Similarly, tuples should be supported directly in the language.
    The principles of safety and explicit interfaces are slightly more difficult. As Linda stands there is no means of type-checking tuple space accesses, nor is there any way of specifying which forms of tuples will be accepted by a particular tuple space. Such mechanisms, if provided, should not decrease the power of Lucinda in any way. As a result it has been decided to incorporate a polymorphic type system into Lucinda.
          in SIGPLAN Notices 26(08) Aug 1991 view details