25,434 research outputs found

    Logical Foundations of Object-Oriented and Frame-Based Languages

    Get PDF
    We propose a novel logic, called Frame Logic (abbr., F-logic), that accounts in a clean, declarative fashion for most of the structural aspects of object-oriented and frame-based languages. These features include object identity, complex objects, inheritance, polymorphic types, methods, encapsulation, and others. In a sense, F-logic stands in the same relationship to the object-oriented paradigm as classical predicate calculus stands to relational programming. The syntax of F-logic is higher-order, which, among other things, allows the user to explore data and schema using the same declarative language. F-logic has a model-theoretic semantics and a sound and complete resolution-based proof procedure. This paper also discusses various aspects of programming in declarative object-oriented languages based on F-logic

    Equivalence of two Fixed-Point Semantics for Definitional Higher-Order Logic Programs

    Full text link
    Two distinct research approaches have been proposed for assigning a purely extensional semantics to higher-order logic programming. The former approach uses classical domain theoretic tools while the latter builds on a fixed-point construction defined on a syntactic instantiation of the source program. The relationships between these two approaches had not been investigated until now. In this paper we demonstrate that for a very broad class of programs, namely the class of definitional programs introduced by W. W. Wadge, the two approaches coincide (with respect to ground atoms that involve symbols of the program). On the other hand, we argue that if existential higher-order variables are allowed to appear in the bodies of program rules, the two approaches are in general different. The results of the paper contribute to a better understanding of the semantics of higher-order logic programming.Comment: In Proceedings FICS 2015, arXiv:1509.0282

    Abstract

    Get PDF
    AbstractThe formal semantics of a programming language consists of assigning to every program of the language an element of a mathematical structure. In this monograph we study the relationship between two different approaches to define the semantics of a program, namely the denotational and the axiomatic one.The denotational semantics characterizes programs as elements of some mathematical domain in a compositional way: the semantics of a language construct is defined in terms of its components. Due to the possibility of self-application given by some programming languages, the semantic domain must sometimes be defined in a recursive way.The axiomatic semantics characterizes programs in a logical framework intended for reasoning about programs properties: computations are expressed by relating programs to assertions about their behaviour.We study different transformations which ensure the correctness of one semantics in terms of the other. These transformations form dualities rather than equivalences. This is due to the fact that denotationally programs are identified with functions which transform states on the input space to (sets of) states of the output space, whereas axiomatically programs can be expressed as functions which transform predicates on the output space to predicates on the input space.The dualities between the denotational and the axiomatic views of a program are topological because they are set in a topological framework: topological spaces are data-types and continuous functions between topological spaces are computations. These interpretations form the basis for a systematic development of a propositional program logic from a denotational semantics.We begin with considering predicates as subsets of an abstract set of states, and we study several semantic model of sequential languages. In particular we consider the weakest precondition and the weakest liberal precondition semantics. We relate them to three denotational models based on state transformation. The relationships between these axiomatic and denotational models generalize the duality of Plotkin between Dijkstra's predicate transformers and the Smyth powerdomain.Then we extend sequential languages with specification constructs. We use the language of Back's refinement calculus which supports two kinds of unbounded non-determinism- Traditionally, the semantics of the refinement calculus is based on monotonic predicate transformers. Beside it, we give a denotational semantics based on state transformations, and an operational semantics based on a hyper transition system. We relate the three models as follows: the operational semantics coincides with the denotational semantics which, in turn, is dual to the predicate transformer semantics.In order to study the semantics of concurrent languages, we refine the notion of predicates by considering affirmative predicates. They are open subsets of an abstract set of states equipped with a topology. This permits us to define dualities between the upper, lower and Vietoris powerspace constructions, and topological predicate transformers.One of the above dualities is applied to prove the correctness of a new compositional predicate transformer semantics for a concurrent language. The semantics domain is a metric space which is shown to be isometric to the resumption domain of De Bakker and Zucker. Partial and total correctness, and also temporal properties are studied for this metric predicate transformer semantics.Finally, we make an abstraction step by regarding predicates as elements of an abstract algebra. We consider a topological space as a function from the abstract set of affirmative predicates (with algebraic operations representing arbitrary unions and finite intersections) to the abstract set of specifications (with algebraic operations representing arbitrary unions and arbitrary intersections). We call this function an observation frame. We first show that topological spaces can be reconstructed from observation frames, and then we prove that observation frames are algebraic structures in a precise categorical sense.The above theory is applied to extend the finitary domain logic of Abramsky to an infinitary one preserving completeness. As an example we extend Abramsky's finitary domain logic for transition systems to an infinitary logic with arbitrary conjunctions and arbitrary disjunctions. Our extension is conservative in the sense that the domain represented in logical form by the infinitary logic coincides with the domain represented in logical form by Abramsky's finitary logic

    An assertion language for constraint logic programs

    Full text link
    In an advanced program development environment, such as that discussed in the introduction of this book, several tools may coexist which handle both the program and information on the program in different ways. Also, these tools may interact among themselves and with the user. Thus, the different tools and the user need some way to communicate. It is our design principie that such communication be performed in terms of assertions. Assertions are syntactic objects which allow expressing properties of programs. Several assertion languages have been used in the past in different contexts, mainly related to program debugging. In this chapter we propose a general language of assertions which is used in different tools for validation and debugging of constraint logic programs in the context of the DiSCiPl project. The assertion language proposed is parametric w.r.t. the particular constraint domain and properties of interest being used in each different tool. The language proposed is quite general in that it poses few restrictions on the kind of properties which may be expressed. We believe the assertion language we propose is of practical relevance and appropriate for the different uses required in the tools considered
    • …
    corecore