Adding meta rules to OPS5 a proposed extension

Don Rosenthal · ACM SIGPLAN Notices · 1985

OPS5 is a rule-based, non-procedural programming language rapidly gaining popularity. It is a pure "object level" programming language, as it provides the programmer with no control constructs. The approach taken when using OPS5 is to generate a rule base such that, during program execution the most appropriate rule will "select itself" and be applied at the appropriate time. Because production memory (the rule base) in OPS5 is strictly segregated from working memory (data) and the conflict set (currently applicable rules), an OPS5 program cannot direct the conflict resolution strategy of the interpreter. This can lead to situations where the OPS5 programmer may feel forced to write rules which "trick" the interpreter into boosting a rule's priority. Such artificial constructs are clearly harmful. An extension to OPS5 is proposed which allows the user to affect conflict resolution through the mechanism of meta-rules. A further refinement proposes implementing meta-rules via a programmable conflict resolution strategy. It is felt that these extensions represent a considerable enhancement of the expressiveness of the present language, with little modification to existing implementations. They are felt to be in keeping with the OPS5 programming style, and, in addition, would preserve compatibilty with existing OPS5 code.

Read the paper · More papers on PaperTik