Specifications and Rationale for Telos, A Pascal-Based Artificial Intelligence Programming Language - Leblanc, Richard J., Jr. (University of Wisconsin-Madison Department of Computer Sciences, 1977)
A new programming language called TELOS is introduced through a complete specification of its syntax and an informal description of its semantics. The design of TELOS is discussed in view of a set of language design goals and the needs of artificial intelligence (AI) programming. TELOS is an attempt to provide powerful abstraction mechanisms and other structuring facilities within a language that provides the special capabilities needed for A1 research. Like most other A1 languages, TELOS includes facilities needed for experimentation with large stores of general knowledge, tentatively modifiable and associatively referencable, and with various planning and reasoning strategies. However, in contrast to other A1 languages whose design has focused on building in certain powerful high-level constructs, the design of TELOS has focused on building in powerful abstraction mechanisms with which these particular high-level constructs, as well as numerous others, can be defined and implemented with reasonable ease. Recently, programming languages have begun to appear with features specifically designed to facilitate abstraction of the several different kinds needed in the programming process, in particular, data abstraction and control abstraction as well as procedural abstraction. TELOS implements a set of data, control, and procedural abstraction mechanisms specifically tailored to AI requirements. By emphasizing abstraction mechanisms rather than high-level constructs, it has been possible to minimize theoretical bias in the language, making TELOS potentially usable for investigation of competing theories. The data abstraction capabilities provided in TELOS add to the already powerful data type extension capabilities of PASCAL. A programmer may define a problem-specific data type by including details of representation and implementation within a definitional scoping called a "capsule". The procedures and functions which realize possible primitive operations on objects of the type being defined are an integral part of the definition, and the objects are characterized and used in terms of these defining operations. The control abstraction capabilities provided in TELOS enable convenient programmer definition of the novel kinds of control regimes which are investigated in AI research, that is, those which realize alternative problem-solving strategies. Just as TELOS capsules localize data representation details, TELOS "overseers" localize interprocess control-transfer and communication details needed to realize desired control regimes. Besides its abstraction mechanisms, TELOS contains other facilities which can contribute to the building of well-structured programs, starting with the rich set of program structuring facilities already available in PASCAL. If used correctly, these facilities can result in modularized, hierarchical programs with reasonably comprehensible control and data flows. The design of TELOS is based on many of the same goals as the design of PASCAL, though TELOS reflects a different, relative emphasis among the goals. There are conflicts between the need to include certain language capabilities seen as necessary to support effective AI programming and the goals of simplicity and minimality. The TELOS design attempts to m ediate the conflicts with compromises intended to provide support for programming effectiveness, ease of debugging, program comprehensibility and evolutionary program development. Several benefits should accrue for AI research from such a language design: (1)AI programs are highly complex. TELOS provides many aids to managing and containing program complexity. (2)Much of AI programming involves putting preliminary ideas and hypotheses into programs and then changing the programs as suggested by experience with them. The improved program comprehensibility possible with TELOS can make this kind of evolutionary programming easier and more efficient. (3)Improved AI programmer productivity, as is possible with the features TELOS provides, will mean improved AI research productivity.