BNR Prolog(ID:1866/bnr002)for Bell Northern Research Prolog Constraint logic. Related languages
References: arithmetic and forms part of BNR Prolog /v.4. This is a much more powerful system than previous versions and allows a much wider class of problems to be handled, including discrete domain problems and boolean equations. It is also integrated more closely into Prolog, thus providing for smoother and more flexible interaction between Prolog and the constraint system. This paper describes the programming interface and gives some simple programming examples. Extract: Introduction The problems of providing a logical form of arithmetic for use in Prolog are well-known. The difficulties of doing correct computations with floating point are also well-known. One mechanism for overcoming both of these problems --- applying a Prolog-like narrowing mechanism to intervals --- was first suggested by Cleary [Cleary 1987]. These ideas were first fully implemented at Bell-Northern Research (BNR) in BNR Prolog in 1987 [BNR Prolog 1988] and have been successfully applied to problems far more complex than those described in [Cleary 1987]. Although similar in intent, Cleary's mechanism differs substantially from other constraint logic programming languages such as CLP(R) [Jaffar and Michaylov 1987] and Prolog-III [Colmerauer 1990] in that it is not based on term-rewriting or symbolic equation solving techniques. In many respects the interval constraint system of BNR Prolog most closely resembles CHIP [Dinebas, Simonis and Van Henteryck 1990] in that it is based primarily on local propogation techniques, and the system described by Hyoven in [Hyoven 1989] which also handles continuous quantities. A Brief History of BNR Prolog ? XMS-Prolog interpreter 1985-1987 ? Constraint Interval Arithmetic talk by John Cleary 1987 ? BNR-Prolog interpreter for Macintosh 1988 ? Panels UI toolkit 1989 ? Dassault Electronique develop InterLog 1990 ? BNR-Prolog compiler for Sun Workstations 1991 ? Constraints on Integers and Boolean-1992 ? Ports to DEC, HP 300-400, HP 700-1993 |