Cluster 86(ID:1206/clu002)Distributed Object oriented systemFor 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
References: in SIGPLAN Notices 24(04) April 1989 incoroporating Proceedings of the 1988 ACM SIGPLAN workshop on Object-based concurrent programming, San Diego 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 in SIGPLAN Notices 24(04) April 1989 incoroporating Proceedings of the 1988 ACM SIGPLAN workshop on Object-based concurrent programming, San Diego view details in Proc. of ICCC Symposium'89, Beijing, China, 1989 view details in Proc. of ICCC Symposium'89, Beijing, China, 1989 view details in Proc. of ICCC Symposium'89, Beijing, China, 1989 view details 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 |