ASL : Hierarchy , Composition , Heterogeneity , and Multi-Granularity in Concurrent Object-Oriented Programming

The Abstract Schema Language (ASL) defines a hierarchical computational model for th development of distributed heterogeneous systems. ASL extends the capabilities and methodologies of concurrent object-oriented programming to enable the construction of highly complex multi-granular systems. The ASL model is described in terms of schemas (concurrent objects), supporting aggregation (schema assemblages), and both top-down and bottom-up system designs. ASL encourages code reusability by enabling the integration of heterogeneous components, e.g., procedural and neural network programs. ASL schemas are designed and implemented in an orthogonal fashion; integrated, either statically, through wrapping, or dynamically, via (task) delegation. Schemas include a dynamic interface, made of multiple unidirectional input and output ports, and a body section where schema behavior is specified. Communication is in the form of asynchronous message passing, hierarchically managed, internally, through anonymous port reading and writing, and externally, through dynamic port inter-connections and relabelings. Introduction The Abstract Schema Language (ASL) [Weitzenfeld 1992; 1993] describes an evolved computational model for the development of distributed heterogeneous ystems. ASL presents a hierarchical approach for the design and implementation of systems where intensive processing and continuous inter-process communication are intrinsic properties. ASL unifies schema modeling [Arbib 1992] with concurrent object-oriented programming (COOP) [Yonezawa and Tokoro 1987]. Generally speaking, COOP integrates concurrency with object-oriented design, where an object-oriented language can be analyzed in terms of objects, instantiation, inheritance, and message passing [Cointe 1984]. In a concurrent world, some of these concepts become more complex, especially when designing inheritance schemes [Briot and Yonezawa 1990], where as an alternative to inheritance, the notion of delegation [Lieberman 1986] has been suggested. ASL extends the current state of the art in both schema research and COOP while providing a hierarchical approach towards heterogeneous and multi-granular concurrent object design. In particular, ASL addresses the development of complex systems integrating developments in Distributed Artificial Intelligence (DAI), Robotics, as well as Brain Theory (BT) and Cognitive Psychology. The ASL communication model is asynchronous, based on dynamic multiple input and output ports, connections and relabelings. The ASL communication model is hierarchically managed, where messages are s nt and received anonymously internally to schemas, while actual communication paths between schema ports areexternally set. The hierarchical port management methodology enables the development of distributed systems where objects may be designed and implemented independently and without prior knowledge of their final execution environments. Furthermore, dedicated port inter-connections avoids the overhead of direct process naming between continuously communicating entities. Yet, ASL communication model is expressive enough, making it possible to simulate other communication paradigms, such as client/server and blackboards (see Weitzenfeld [1992]). The integration of ASL with the Neural Simulation Language (NSL) system [Weitzenfeld 1991], a simulation system extensibly used by the neural networks research community, gives rise to Neural-Schema Language (Weitzenfeld [1992] (also referred to as NSL), a comprehensive simulation system for applications in DAI , Robotics and Brain Theory. 1 1 The ASL operational semantics are described in Weitzenfeld and Arbib [1993], and a multi-process impl mentation can be found in Weitzenfeld [1992]. Alfredo Weitzenfeld: ASL 1 Schemas The ASL computational model is defined in terms of schemas2, hierarchical concurrent objects, as shown in Figure 1. At the top of the diagram a schema is shown decomposed into other schemas. This decomposition gives rise to schema aggregation, or schema assemblages. Schemas are specified and implemented in an orthogonal fashion, either through wrapping, which enables static integration of heterogeneous external programs (e.g. procedural and neural), or through delegation, which enables dynamic integration of schemas as specification and implementation tasks. (Simple lines between boxes represent connections between objects, while arrows represent task delegation. The barrier separates the higher level schema specifications from the lower level schema implementations.) delegation