Skip to main content


eCommons@Cornell >
College of Engineering >
Computer Science >
Computer Science Technical Reports >

Please use this identifier to cite or link to this item:
Title: Abstract Semantics for a Higher order Functional Language with Logic Variables
Authors: Jagadeesan, Radhakrishnan
Pingali, Keshav
Keywords: computer science
technical report
Issue Date: Jul-1991
Publisher: Cornell University
Abstract: The addition of logic variables to functional languages gives the programmer novel and powerful tools such as incremental definition of data structures through constraint intersection. A number of such "hybrid" languages, like FGL + LV [11], Id [17] and Qute [24], have been implemented and are in active use. Pure functional and logic programming languages can be given elegant abstract semantics as functions and relations over values. The definition of such an abstract semantics for a functional language with logic variables has remained an open problem. In an earlier paper, we gave such a semantics for the special case of a first-order functional languages with logic variables by reducing the problem to that of solving simultaneous fixpoint equations involving closure operators over a Scott domain [9]. In fact, we obtained the rather strong result that the denotational semantics was fully abstract with respect to the operational semantics. However, the problem for higher-order languages remain open, in part because higher-order functions can interact with logic variables in complicated ways to give rise to behavior reminiscent of own variables in Algol-60. This problem is solved completely in this paper. We show that in the presence of logic variables, higher-order functions may be modeled extensionally as closure operators on graphs ordered a way reminiscent of the ordering on extensible records in studies of inheritance [1]. We then extend the equation solving semantics of the first-order subset to the full language, and prove the usual soundness and adequacy theorems for this semantics. These results show that a higher-order functional language with logic variables can be viewed as a language of incremental definition of functions.
Appears in Collections:Computer Science Technical Reports

Files in This Item:

File Description SizeFormat
91-1220.pdf4.8 MBAdobe PDFView/Open
91-1220.ps870.92 kBPostscriptView/Open

Refworks Export

Items in eCommons are protected by copyright, with all rights reserved, unless otherwise indicated.


© 2014 Cornell University Library Contact Us