Denotational Versus Declarative Semantics for Functional Programming
نویسندگان
چکیده
Denotational semantics is the usual mathematical semantics for functional programming languages. It is higher order (H.O.) in the sense that the semantic domain D includes D ! D] as a subdomain. On the other hand, the usual declarative semantics for logic programs is rst order (F.O.) and given by the least Herbrand model. In this paper, we take a restricted kind of H.O. conditional rewriting systems as computational paradigm for functional programming. For these systems, we deene both H.O. denotational and F.O. declarative semantics as two particular instances of algebraic semantics over continuous applicative algebras. For the declarative semantics, we prove soundness and completeness of rewriting, as well as an initiality result. We show that both soundness and completeness fail w.r.t. the denotational semantics and we present a natural restriction of rewriting that avoids unsoundness. We conjecture that this restricted rewriting is complete for computing denotationally valid F.O. results.
منابع مشابه
Denotational Semantics for Teaching Lazy Functional Programming
If you believe this document infringes copyright then please contact the KAR admin team with the take-down information provided at http://kar.kent.ac.uk/contact.html Citation for published version Chitil, Olaf (1999) Denotational Semantics for Teaching Lazy Functional Programming. In: Proceedings of the Workshop on Functional and Declarative Programming in Education, 29 September 1999, Paris, F...
متن کاملDeclarative Semantics in Object-Oriented Software Development - A Taxonomy and Survey
One of the modern paradigms to develop an application is object oriented analysis and design. In this paradigm, there are several objects and each object plays some specific roles in applications. In an application, we must distinguish between procedural semantics and declarative semantics for their implementation in a specific programming language. For the procedural semantics, we can write a ...
متن کاملInterpreter prototypes from formal language definitions
Denotational semantics is now used widely for the formal definition of programming languages but there is a lack of appropriate tools to support language development. General purpose language implementation systems are oriented to syntax with poor support for semantics. Specialised denotational semantics based systems correspond closely to the formalism but are rendered inflexible for language ...
متن کاملComparative Semantics of Generalized Horn Clauses1
The purpose of this paper is to present and analyze semantically a new extension of concurrent logic programming languages aiming at handling synchronicity. It essentially rests on an extension of Horn clauses, called generalized Horn clauses, and on a new parallel operator between goals. Five semantics are presented and compared. They range in the operational, declarative and denotational type...
متن کاملRevisiting Elementary Denotational Semantics
We present a semantics for an applied call-by-value λ-calculus that is compositional, extensional, and elementary. We present four dierent views of the semantics: 1) as a relational (big-step) semantics that is not operational but instead declarative, 2) as a denotational semantics that does not use domain theory, 3) as a non-deterministic interpreter, and 4) as a variant of the intersection t...
متن کامل