The Design of a Parallel Programming Language for Artificial Intelligence Applications
We examine the problems of designing a parallel programming language for artificial intelligence (AI) applications. The problems arise from the conflicting sets of requirements imposed by AI applications and parallel processing. AI applications require flexible access to data as well as flexible control over program flow. Such flexibility is difficult to provide in a parallel processing environment, where data access and program flow must be strictly controlled. We start with the design of a parallel base language, TOMO, to which AI features (such as associative retrieval and data contexts) are later added. TOMO draws heavily, both in concept and in philosophy, from recent research done on system implementation languages, notably Concurrent-PASCAL. Strong emphasis is placed on language enforcement of controls on concurrency. The original monitor concept developed by Hoare and Brinch Hansen is generalized to allow more flexible, yet secure, sharing of data. TOMO programs consist of "modules", which encapsulate procedures with data and serve as restricted referencing environments for processes. A process can only access data of the module it is executing in. A process may transfer from one module to another through remote procedure calls. Such transfers, however, are regulated by module guards, which can suspend processes on queues and are responsible for maintaining cooperation among processes. TOMO modules are used to provide AI features found in TELOS, a recent A1 language based on PASCAL. We show how the module guard can act as a control abstraction mechanism providing complex inter-process control structures, including demons and pattern directed invocation of processes. Guards can also be used to implement complex forms of message passing, including addressing messages by pattern. The data context mechanism and associative data base facility are provided as predefined modules. In order to avoid problems caused by concurrency, the associative data base facility consists of many independent and local (to a module) data bases rather than a global, monolithic one. Although the primary motivation behind the design effort is AI applications,, the innovations made in TOMO should be applicable to other applications where multiprocessing is involved, such as operating systems and database management system.
Download this report (PDF)
Return to tech report index