Compiling Knowledge-Based Systems to Ada: The PrkAda ProTalk Compiler

This paper describes the implementation of the ProTalk compiler for PrkAda. An important component of the ProKappa system is its multi-paradigm, mixed-rule/imperative language, ProTalk. ProTalk combines elements of backtracking AI languages such as Prolog with imperative constructs such as conditionals, iteration, assignment, and subprogram invocation. Our implementation illustrates the use of generators to achieve a Prolog-like semantics, and the possibility (and difficulties) of employing such mechanisms in Ada.