About cookies on this site Our websites require some cookies to function properly (required). In addition, other cookies may be used with your consent to analyze site usage, improve the user experience and for advertising. For more information, please review your options. By visiting our website, you agree to our processing of information as described in IBM’sprivacy statement. To provide a smooth navigation, your cookie preferences will be shared across the IBM web domains listed here.
Publication
IEA/AIE 1988
Conference paper
Adding rule-based techniques to procedural languages
Abstract
The world of software for applications in industry is dominated by compiled, algebraic (Algol derivative) programming languages such as C, Pascal, and PL/1. One approach to popularizing expert systems techniques in the industrial environment is to integrate software techniques appropriate for expert systems development into algebraic programming languages. While programmers in industry seek more powerful software tools, generally they do not want to give up existing capabilities in order to gain access to new techniques. Thus the question becomes how to integrate expert system techniques into a procedural language so that important characteristics of the procedural language are preserved. YES/LI (Yorktown Expert System j Language One) is an experimental tool for developing expert systems that is an integration of PL/1 with data-driven rules. This paper reviews a number of technical issues encountered in the development of YES/LI. The achieved resolution of these issues establishes that rule-based techniques intended for use in large, industrial expert systems can be integrated into the standard features of an existing, algebraic programming language without reducing the functionality of the underlying, procedural language. Features of YES/LI include: condition-action rules with support for both highly expressive conditions and complex actions, PL/I as a subset, block structuring including recursively invoked blocks of rules, support for large blocks of rules written in several source code files, the same access to data bases and routines written in other languages as found in PL/I excellent performance, portability across several operating systems and computer architectures, the ability for YES/LI routines to be linked, loaded, started, and called just as PL/I routines.