Results 1 -
7 of
7
Binding-Time Analysis for Mercury
- 16th International Conference on Logic Programming, pages 500 { 514
, 1999
"... . In this paper, we describe a binding-time analysis (BTA) for a statically typed and strongly moded pure logic programming language, in casu Mercury. Binding-time analysis is the key concept in achieving o-line program specialisation: the analysis starts from a description of the program's inpu ..."
Abstract
-
Cited by 8 (4 self)
- Add to MetaCart
. In this paper, we describe a binding-time analysis (BTA) for a statically typed and strongly moded pure logic programming language, in casu Mercury. Binding-time analysis is the key concept in achieving o-line program specialisation: the analysis starts from a description of the program's input available for specialisation, and propagates this information throughout the program, deriving directives for when and how to perform specialisation. 1
Rapid Prototyping using Formal Specifications
- In Proceedings of the 21st Australasian Computer Science Conference
, 1998
"... . There is growing interest in animating formal specifications for the purpose of better understanding the requirements and for validating the specification. Formal specifications in a non-executable language offer challenges for animation systems, for example, dealing effectively with infinite data ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
. There is growing interest in animating formal specifications for the purpose of better understanding the requirements and for validating the specification. Formal specifications in a non-executable language offer challenges for animation systems, for example, dealing effectively with infinite data sets, sensibly animating functions which are not computable and determining a sensible set of inputs and outputs for arbitrary relations. In this paper we examine these issues in the context of animating Z specifications in the logic programming language Mercury. In particular we outline how information for making a non-executable Z specification executable can be derived using static analysis techniques from logic programming. We present analysis algorithms for deriving control (mode) and representation (subtype) information and show how these analyses are used in a tool for deriving Mercury programs from Z specifications. Finally we compare our approach with existing systems for animating...
An object-oriented dynamic logic with updates
, 2004
"... With the goal of this thesis being to create a dynamic logic for objectoriented languages, ODL is developed along with a sound and relatively complete calculus. The dynamic logic contains only the absolute logical essentials of object-orientation, yet still allows a “natural ” representation of all ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
With the goal of this thesis being to create a dynamic logic for objectoriented languages, ODL is developed along with a sound and relatively complete calculus. The dynamic logic contains only the absolute logical essentials of object-orientation, yet still allows a “natural ” representation of all other features of common object-oriented programming languages. ODL is an extension of a dynamic logic for imperative While programs by function modification and dynamic type checks. A generalisation of substitutions, called updates, constitute the central technical device for dealing with object aliasing arising from function modification and for retaining a manageable calculus in practical application scenarios. Further, object enumerators realise object creation in a natural yet powerful way. Finally, completeness is proven relative to first-order arithmetic. Along with the soundness result, this proof constitutes the central part of this thesis and even copes with states containing uncomputable functions.
Precise and Expressive Mode Systems for Typed Logic Programming Languages
, 2003
"... In this thesis we look at mode analysis of logic programs. Being based on the mathematical formalism of predicate logic, logic programs have no a priori notion of data flow --- a single logic program may run in multiple modes where each mode describes, or prescribes, a pattern of data flow. ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
In this thesis we look at mode analysis of logic programs. Being based on the mathematical formalism of predicate logic, logic programs have no a priori notion of data flow --- a single logic program may run in multiple modes where each mode describes, or prescribes, a pattern of data flow.
Boosting the Quality and Maintainability of Prolog Applications by New Static Analysis Techniques
"... An approach is presented which supports the development and maintenance of industrial Prolog applications that go beyond prototyping. It is particularly well suited for applications that are considered critical with respect to either reliability or maintainability. The approach is based on an exp ..."
Abstract
- Add to MetaCart
An approach is presented which supports the development and maintenance of industrial Prolog applications that go beyond prototyping. It is particularly well suited for applications that are considered critical with respect to either reliability or maintainability. The approach is based on an expressive type system combined with a coding standard for Prolog. Properties of predicates like determinism, unfailing, and termination can be specified by the programmer. The notation is completely transparent to the Prolog interpreter and serves as a formalized documentation. Consistency between documentation and code can be checked by automatic static analysis tools integrated in the Prolog Analyzer PAN. Our experience shows that programming productivity and program reliability are improved significantly whereas maintenance costs are reduced by an order of magnitude. 1. Introduction and Experiences In theory, logic programming offers clear advantages over main stream imperative prog...
Analysing Modes and Subtypes in Z Specifications
, 1998
"... Poor requirements are the cause of a large proportion of defects in released software. Requirements can be improved by using mathematical modelling techniques. These have a number of advantages and a single major disadvantage--it is difficult to demonstrate a formal specification to a client or u ..."
Abstract
- Add to MetaCart
Poor requirements are the cause of a large proportion of defects in released software. Requirements can be improved by using mathematical modelling techniques. These have a number of advantages and a single major disadvantage--it is difficult to demonstrate a formal specification to a client or user. One proposed solution to this problem is to automatically derive (executable) prototypes of a system from a formal specification by using analysis. This process is known as animation. In this report we focus on the analyses used in an animation tool for the specification language Z. Specifically, we look at mode and subtype analyses. More extensive motivation and discussion of other aspects of the tool can be found elsewhere. Contents 1 Introduction 2 2 Overview 3 3 Mode Analysis 6 3.1 Specification : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 8 3.2 Problems with the specification : : : : : : : : : : : : : : : : : : : : : : : : 9 3.3 Using topological sorti...
Demonstrating Prolog Usage: Building a Simple Game Program
"... To demonstrate the use of Prolog and how programming in Prolog is easy and efficient, this paper describe an implementation of the game booby-trap, a game similar to Minesweeper found on most personal computers with windows. ..."
Abstract
- Add to MetaCart
To demonstrate the use of Prolog and how programming in Prolog is easy and efficient, this paper describe an implementation of the game booby-trap, a game similar to Minesweeper found on most personal computers with windows.

