Cluster 86(ID:1206/clu002)

Distributed Object oriented system 


For Cluster (the major component) and 86 for 8086 architecture (not a year)

Shang Lujun, Fan Changpeng, and Xu Lihui; Nanjing University 1987.

Advanced OO system based on Pascal style code, but with behaviour and cluster as first class features, so that types of things (objects) behaviours (methods and events) and collections can be created from nothing. Influenced by Pebble, Newton, Flavors and Smalltalk




Structures:
Related languages
CLU => Cluster 86   Influence
Flavors => Cluster 86   Influence
Newton => Cluster 86   Influence
Pebble => Cluster 86   Influence
Smalltalk-80 => Cluster 86   Influence

References:
  • Shang, L "Cluster 86: the Langauge and Its Application in Developing Distributed Software" Ph.D. Thesis, CSD, Nanjing University, 1987. view details
  • Shang, L et al. Distributed Software Development through Cluster 86. IEEE CS Workshop on the Future Trends of Distributed Computing Systems in 90's, Hong Kong, Sept. 1988 view details
  • Shang, L. et al. "Concurrent Behaviors" pp168-170 view details
          in SIGPLAN Notices 24(04) April 1989 incoroporating Proceedings of the 1988 ACM SIGPLAN workshop on Object-based concurrent programming, San Diego view details
  • Shang, L & C.Fan. "Object Storage System OS2: Why and How?" Proc. of 3rd Pan Pacific Computer Conference, Beijing, China, 1989. view details
          in SIGPLAN Notices 24(04) April 1989 incoroporating Proceedings of the 1988 ACM SIGPLAN workshop on Object-based concurrent programming, San Diego view details
  • Shang, L. "A Combinative Window System" J. of Mini-Micro Systems, April, 1989. view details
          in SIGPLAN Notices 24(04) April 1989 incoroporating Proceedings of the 1988 ACM SIGPLAN workshop on Object-based concurrent programming, San Diego view details
  • Shang, L; L.Xu and Z.Sun. "Building a Combinative DBMS Family with Object-Oriented Paradigm" view details
          in Proc. of ICCC Symposium'89, Beijing, China, 1989 view details
  • Shang, L and L Xu, "Notes on the Design of a Combinative DBMS Family" J. of Computer Sci. and Tech., China view details
          in Proc. of ICCC Symposium'89, Beijing, China, 1989 view details
  • Shang, L et al. "Towards a Combinative Distributed OS in Cluster" Proc. 10th Intl. Conf. on Distributed Computing Systems, Paris, May, 1990. view details
          in Proc. of ICCC Symposium'89, Beijing, China, 1989 view details
  • Shang, L. "Cluster: An Informal Report", pp57-76 view details Abstract: Cluster is a newly designed and implemented object-oriented programming language. This report gives an outline of the language by examples, explanations, comments, and the comparison with other languages. Though incomplete and informal, it shows interesting results in many aspects of the language. DOI Extract: Introduction
    The Cluster language uses a syntax which is much similar to what is adopted by the conventional languages. But the semantics of the corresponding language facility is a natural extension from the conventional languages. This makes the language easy to learn, which has been proved by our students with their practice.
    By Cluster, all language facilities are under the concept of objects. An object may be a number, a sequence of characters, an address, a behavior or a process etc., which is a fundamental entity in the language system. Due to the introduction of some special objects such as behavior objects and label objects, we get, on the object model, a uniform explanation of such traditional language concepts as procedure, function, module, program, constant, variable, data structure etc. This simplifies the language concepts and greatly extends the application scope.
    Cluster is not an all-inclusive language that is overstuffed with various models for diverse requirements. It provides a way to help the user build his own computing models according to his own research field and programming style rather than introduces these models as built-in facilities. This way is of cause not a simple set of primitives. The user-defined model can result in a simple and expressive form.
    The language follows strong-type principle, which ensures the correct usage of types and helps enhance the efficiency at run time. On the other hand, the powerful type system makes it possible to describe dynamic generic facilities and compound type expressions. This makes the language as flexible as those not strongly typed.
    There is no exception in expressions, and no differences between the ways of defining basic objects and the complex objects. The syntax rules of the language in BNF is only as half as those of the C [Ker 78] language. A module bundles a collection of interrelated frames, building blocks and behavior objects about them. The interface of a module is separate from the implementation, and an interface may corresponds to many implementations. Moreover, the Cluster modules have the flexibility of clusters. A module imports a group of modules, making the clusters (generalized frames or building blocks) exported by those modules available, and there, a specialized cluster or type can be either derived from an imported cluster, or merged with locally defined and imported clusters. Both deriving and merging have the effect of inheritance and make it easier to construct new frames and blocks out of existing parts.
    The language has shown its power in programming hardware. Using the language, we have developed an operating system on the bare machine (without a line of assembler). Even the run time support for the language is also written in the language itself. The standard module encapsulates the most basic objects (e.g. types like integer, boolean; behaviors like +, -, etc.), and the system module provides a primitive hardware interface. Both the modules may be re-written for the new application requirement or the new hardware architecture. Extract: Basic Language Concepts
    Basic Language Concepts
    Object: a basic entity with a concrete shape and behavioral property.
    Label: an object used to refer to another object.
    Lspace: a label space, a collection of mappings from labels to the object they refer to. It depicts an object shape.
    Lspace template: a virtual label space with virtual mappings from virtual labels.
    Behavior: an object composed of a sequence of actions. Each action is an application to a behavior. Such recursive definition terminates at the basic behaviors which depend on the language implementation environments.
    Dynamic Lspace: working environment of an behavior. It is composed of an input space, an output space, and an inner space.
    Type: an object describing a group of objects (its instances) of the same shape and with the same behavioral property. The shared shape is described by an Lspace template in the type.
    Cluster: a language feature, or a pseudo-object that describes a group of types of the same shape and with the same behavioral property. It also abstracts the shared shape and behavioral property of all objects of the types grouped in the duster (its 2nd level instances). The shared shape of its 2nd level class is described by an Lspace template in the cluster.
    Behavior types: a type grouping a set of behaviors with isomorphic dynamic Lspaces, which is described by the dynamic Lspace template, and isomorphic action sequences.
    Behavior cluster: a cluster grouping a set of behavior types in which all the behaviors (the 2nd level instances of the behavior duster) have an isomorphic input and output space.
          in SIGPLAN Notices 26(01) January 1991 view details