|
Page Title | ||||||||||||||||||
| Intelligent OOP | ||||||||||||||||||
|
Multi Agent Objet Level Computing The Priliminary Overview Cyrus F. Nourani Abstract We present new OOP techniques called Multi Agent Object Level Programming, and new paradigms for OOP defining intelligent objects. New linguistics constructs are defined for object level programming with String and Splurge functions treating object visibility and messages. Treating objects as abstract data types and a two level programming approach to OOP allows us to define Pullup abstractions to treat incompatible objects. The techniques open new areas of research on object level programming to pursue, and put us at MJOOP, the Multiagent Junction For OOP. The project fills the gap between object programming as languages and their artificial intelligence practice. Keywords Abstract Objects, Intelligent Syntax, MJOOP, Multi Agent Object Level Programming, Multi Kernel Design With OOP Copyright © Photo reproduction for noncommercial use is permitted without payment of royalty provided that the Journal reference and copyright notice are included on the first page. 0. Introduction We present new techniques and languages for object level programming with intelligent trees implemented by agent functions. We have defined intelligent syntax and put forth the basis for automatic tree implementation techniques for object level programming. We define OOPI, OOP Intelligent, functions and Pullup Abstractions in brief from our [5,6] as a structural analogy to operation overloading. New linguistics constructs are defined for object level programming treating objects as abstract data types. The OOP defined by the present programming techniques have tree rewrite automatic implementations. The techniques, concepts, and paradigms defined by the Project are as follows. Intelligent Objects, MJOOP - The Multiagent Junction to OOP; Intelligent OOP Languages; String and Splurge Functions; The Object Coobject Design Paradigm; The Pullup Abstraction Function; and Multi Kernel AI Designs With Intelligent Objects 1. Intelligent Objects and Multi Agent OOP The term "agent" has been recently applied to refer to AI constructs that enable computation on behalf of an AI activity[1,2,3]. It also refers to computations that take place in an autonomous and continuous fashion, while considered a high-level activity, in the sense that its definition is software/hardware, thus implementation, independent [1,4]. The present project develops new techniques, and linguistics constructs for programming with objects implemented by agents, based on a theory of computing with trees on signatures carrying agent functions on trees [5]. The agents are designated functions with specified functionality and message syntax. Thus context can be carried at syntax. We present new techniques and languages for object level programming with intelligent trees implemented by agent functions. We show in [6], and brief in the present paper, how a two-level language paradigm and intelligent object level programming can handle what otherwise is a complicated computing phenomena. There are objects as situated automata, for which abstract syntax trees and a computing theory merging with the current practice of programming theories is quite impossible. 2. PROGRAMMING LINGUISTICS And INTELLIGENT SYNTAX This project is towards programming techniques that could provide a foundation for the method of computing that is inevitable with the current and forthcoming AI programming techniques, supported by our theoretical development in [5,6].. There is a gap between the OOP object programming trends and objects as applied to AI programming [13,14,16]. We had started on a project to bridge the abstract data type AI KR in our 1985 paper [15]. For OOP the AI application areas are outlined in [10,11,13]. The present paper offers a syntactic OOP techniques applicable to AI and ordinary OOP. An important technical point is that the agents are represented by function names that appear on the free syntax trees of implementing trees. The trees defined by the present approach have function names corresponding to computing agents. The computing agent functions have a specified module defining their functionality. 2.1 Intelligent Syntax By an intelligent language we intend a language with syntactic constructs that allow function symbols and corresponding objects, such that the function symbols are implemented by computing agents in the sense defined by this author in [5,6]. A set of function symbols in the language, referred to by Agent Function Set, are function symbols that are modeled in the computing world by AI Agents. The objects, message passing actions, and implementing agents are defined by syntactic constructs. Agents appear as functions, expressed by an abstract language that is capable of specifying modules, agents, and their communications. We have put this together with syntactic constructs that could run on the tree computing theories that are presented in [7]. Definition 2.1 We say that a syntax is intelligent iff it has intelligent function symbols. [] Definition 2.2 A language L is said to be an intelligent language iff L is defined from an intelligent syntax. [] The most recent language support for AI programming, languages are pursued where objects are at play without much handle on the syntax trees. Objects appear on various semantic networks and are a sort of situated automata, that implement a computation by asynchronous methods. Our goal in the present project is to have language constructs that allow us to handle objects on abstract syntax trees and implement the mystical behavior of situated automata by agents. 3. String and Splurge Functions Formal techniques with intelligent syntax, String and Splurge programming linguistics allow us to treat visibility in a precise way and to get theoretical results [5,6,7] for MJOOP and OOP. These techniques and our formalization for AI computations [9] lead to an exciting new programming theory and practice for MJOOP. The new programming technique present the basis for programming with nondeterministic syntax[11]. Definition 3.1 We say that a function f is a string function iff there is no message passing or information exchange except onto the object that is at the range set for f, reading parameters visible at each object. Otherwise, f is said to be a splurge function. We refer to them by string and splurge functions when there is no ambiguity. Remark: Nullary functions are string functions. Amongst the functions in AFS only some interact by message passing. By defining String and Splurge functions we can have a formal treatment for programming with objects to handle object visibility and other related OOP computation problems. 4. The Pullup Abstraction Function 4.1 The Two Level Language Paradigm The abstract syntax put forth for to be implemented are expected at two levels. Level 1 is a language that only expresses the functionality of modules by names of objects and their message passing Actions, and abstract data types , for example by SLPX[8]. Level 2 defines the functions themselves. The implementing agents, their corresponding objects and their message passing actions can also be presented by the two-level abstract syntax. From the practical stand point, the models as individual programs can be specified with well known specifications languages. 4.2 The Abstraction Function To handle the compatibility problem, arising often in OOP, we have defined the Pullup abstraction function in [7]. The idea is when defining operations across two incompatible objects, in the sense of types and the set of operations defined for each, we pullup either or both objects to abstract objects for which we could define compatible operations across the resulting abstract objects. The analogy to Pullup at the operation level is overloading, except Pullup is a structural paradigm. A trivial example might be the objects defining a Chair with the operations of sitting on or getting up defined, and the object Table with operations having to do with putting things on, or taking things off the Table. We might Pullup the objects Chair and Table to the object Dinning_Table. 5. The Object Coobject Design Paradigm It would be nice to view the problem form the stand point of an example. The example of intelligent languages we could present have Object:= IOOP_BREW OPS:= Serve_Coffee (Type,Table_no) | ...... Serve_Coffee (Spectacular_Brew,n) => Signal an available robot to fetch and serve (Spectacular_Brew,table n) Exp:= Serve_Coffee (Spectacular_Brew,Table_no) |... Serve_coffee(Spectacular_Brew,Table_no) => if out_of_it notify Table_no; offer today's-brew offer alternatives> In the above example OPS denotes operations, EXP denotes exceptions, and the last equation defines the exception action. In this example there is a process(action) that is always checking the supply of a specific coffee implementing the exception function. As another example, while planning for space exploration, an agent might be assigned by the onboard computer system to compute the next docking time and location, with a known orbiting space craft. The objects and message passing by agents are programmed on SLPX [8] and the actual module definitions, for example the Coffee-Shop is defined by the parameterized algebraic specification language Compose. The object-coobject paradigm has been applied by this author to define new computing paradigms for artificial intelligence with multi agents, called Double Vision Computing[10]. 6. The Multi Kernel OOP Technique This is a design technique with multi kernels, formed from | |||||||||||||||||
| Figures at http:\\memebrs.fortunecity.com/Crisfn/Intobjcmp.html and Objcob.html | ||||||||||||||||||
| ||||||||||||||||||
| Also See http://memebrs.fortunecity.com/crisfn/ooprcmdl.html | ||||||||||||||||||
| ||||||||||||||||||
| ||||||||||||||||||
|
This page has been visited
|