Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Transforming Boolean equalities into constraints
Antoy S., Hanus M. Formal Aspects of Computing29 (3):475-494,2017.Type:Article
Date Reviewed: Sep 13 2017

In declarative programming languages, a variable is a symbol representing a value determined by computational rules rather than a space in memory. The two main forms of declarative languages are functional and logic. In functional languages, variables are linked to expressions, with computation resulting in an expression being simplified to its final form as a value.

Logic languages work on a different principle. Computation involves testing whether an expression is valid. An expression may contain unassigned variables, and the testing may involve giving them values necessary to make the expression valid. Logic languages can be indeterminate, meaning there may be more than one value a variable could be given. If a variable is shared, computation of one expression may backtrack to give a variable an alternative value if that is needed to make the other expression valid.

Curry is a leading example of attempts to combine these two forms in one programming language. As such, it requires two equality operators. These are x==y, the functional form that waits until x and y are fully evaluated, and the logic form x=:=y that can work by assigning either variable the value of the other if it is unassigned.

The subtle distinction between these two forms of equality can be hard to follow and may lead to inefficiency. This paper proposes avoiding that by having a single equality operator, and shows how automated analysis of a program can determine those occasions when it should work like =:= rather than ==.

Reviewer:  M. Huntbach Review #: CR145535 (1711-0737)
Bookmark and Share
 
Applicative (Functional) Programming (D.1.1 )
 
 
Operational Analysis (D.4.8 ... )
 
 
Program Transformation (I.2.2 ... )
 
 
Logic Programming (D.1.6 )
 
Would you recommend this review?
yes
no
Other reviews under "Applicative (Functional) Programming": Date
Functional programming with Hope
Bailey R., Ellis Horwood, Upper Saddle River, NJ, 1990. Type: Book (9780133382372)
May 1 1992
Prospects for functional programming in software engineering
Banâtre J., Jones S., Le Métayer D. (ed), Springer-Verlag New York, Inc., New York, NY, 1991. Type: Book (9780387538525)
Aug 1 1992
An introduction to functional programming
Bird R. (ed), Wadler P., Prentice Hall International (UK) Ltd., Hertfordshire, UK, 1988. Type: Book (9780134841892)
May 1 1992
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy