Results 1 - 10
of
10
A Survey and Classification of some Program Transformation Approaches and Techniques
- In TC2 IFIP Working Conference on Program Specification and Transformation
, 1987
"... Program transformation is a means to formally develop efficient programs from lucid specifications. A representative sample of the diverse range of program transformation research is classified into several different approaches based upon the motivations for and styles of constructing such formal de ..."
Abstract
-
Cited by 40 (0 self)
- Add to MetaCart
Program transformation is a means to formally develop efficient programs from lucid specifications. A representative sample of the diverse range of program transformation research is classified into several different approaches based upon the motivations for and styles of constructing such formal developments. Individual techniques for supporting construction of developments are also surveyed, and are related to the various approaches.
Algebra of logic programming
- International Conference on Logic Programming
, 1999
"... At present, the field of declarative programming is split into two main areas based on different formalisms; namely, functional programming, which is based on lambda calculus, and logic programming, which is based on firstorder logic. There are currently several language proposals for integrating th ..."
Abstract
-
Cited by 20 (3 self)
- Add to MetaCart
At present, the field of declarative programming is split into two main areas based on different formalisms; namely, functional programming, which is based on lambda calculus, and logic programming, which is based on firstorder logic. There are currently several language proposals for integrating the expressiveness of these two models of computation. In this thesis we work towards an integration of the methodology from the two research areas. To this end, we propose an algebraic approach to reasoning about logic programs, corresponding to the approach taken in functional programming. In the first half of the thesis we develop and discuss a framework which forms the basis for our algebraic analysis and transformation methods. The framework is based on an embedding of definite logic programs into lazy functional programs in Haskell, such that both the declarative and the operational semantics of the logic programs are preserved. In spite of its conciseness and apparent simplicity, the embedding proves to have many interesting properties and it gives rise to an algebraic semantics of logic programming. It also allows us to reason about logic programs in a simple calculational style, using rewriting and the algebraic laws of combinators. In the embedding, the meaning of a logic program arises compositionally from the meaning of its constituent subprograms and the combinators that connect them. In the second half of the thesis we explore applications of the embedding to the algebraic transformation of logic programs. A series of examples covers simple program derivations, where our techniques simplify some of the current techniques. Another set of examples explores applications of the more advanced program development techniques from the Algebra of Programming by Bird and de Moor [18], where we expand the techniques currently available for logic program derivation and optimisation. To my parents, Sandor and Erzsebet. And the end of all our exploring Will be to arrive where we started And know the place for the first time.
A Note on Synthesis and Classification of Sorting Algorithms
- Acta Informatica
, 1989
"... this paper, and the referees for their very helpful comments and constructive suggestions which greatly improved an earlier version of this paper. References ..."
Abstract
-
Cited by 7 (4 self)
- Add to MetaCart
this paper, and the referees for their very helpful comments and constructive suggestions which greatly improved an earlier version of this paper. References
Synthesis of programs in computational logic
- PROGRAM DEVELOPMENT IN COMPUTATIONAL LOGIC
, 2004
"... Since the early days of programming and automated reasoning, researchers have developed methods for systematically constructing programs from their specifications. Especially the last decade has seen a flurry of activities including the advent of specialized conferences, such as LOPSTR, covering the ..."
Abstract
-
Cited by 6 (0 self)
- Add to MetaCart
Since the early days of programming and automated reasoning, researchers have developed methods for systematically constructing programs from their specifications. Especially the last decade has seen a flurry of activities including the advent of specialized conferences, such as LOPSTR, covering the synthesis of programs in computational logic. In this paper we analyze and compare three state-of-the-art methods for synthesizing recursive programs in computational logic. The three approaches are constructive/deductive synthesis, schema-guided synthesis, and inductive synthesis. Our comparison is carried out in a systematic way where, for each approach, we describe the key ideas and synthesize a common running example. In doing so, we explore the synergies between the approaches, which we believe are necessary in order to achieve progress over the next decade in this field.
Top-down Synthesis of Sorting Algorithms
, 1992
"... Traditionally sorting algorithms are classified according to their main operational characteristic, rather than their underlying logic. More recent work in program synthesis has exposed the logic of and hence the logical relationships between some sorting algorithms. Following the program synthesis ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
Traditionally sorting algorithms are classified according to their main operational characteristic, rather than their underlying logic. More recent work in program synthesis has exposed the logic of and hence the logical relationships between some sorting algorithms. Following the program synthesis approach, and by using a logic programming system for deriving recursive logic procedures from their specifications, we have synthesised a large family of sorting algorithms in a strictly top-down manner. Such an approach not only produces algorithms which are guaranteed to be partially correct, it also provides a family tree showing clearly the relationships between its members. This paper contains c.4500 words, 15 pages, and 1 diagram. 1 Introduction Traditionally, algorithms are "discovered" first, and then proved correct. Sorting algorithms are no exception. More recently, work in program synthesis has been applied to the derivation of algorithms from their specifications. The main adva...
TAS - A Generic Window Inference System
"... This paper presents work on technology for transformational proof and program development, as used by window inference calculi and transformation systems. The calculi are characterised by a certain class of theorems in the underlying logic. Our transformation system TAS compiles these rules to concr ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
This paper presents work on technology for transformational proof and program development, as used by window inference calculi and transformation systems. The calculi are characterised by a certain class of theorems in the underlying logic. Our transformation system TAS compiles these rules to concrete deduction support, complete with a graphical user interface with command-language-free user interaction by gestures like drag&drop and proof-by-pointing, and a development management for transformational proofs. It is generic in the sense that it is completely independent of the particular window inference or transformational calculus, and can be instantiated to many different ones; three such instantiations are presented in the paper.
The Greedy Algorithms Class: Formalization, Synthesis and Generalization
, 1995
"... On the first hand, this report studies the class of Greedy Algorithms in order to find an as systematic as possible strategy that could be applied to the specification of some problems to lead to a correct program solving that problem. On the other hand, the standard formalisms underlying the G ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
On the first hand, this report studies the class of Greedy Algorithms in order to find an as systematic as possible strategy that could be applied to the specification of some problems to lead to a correct program solving that problem. On the other hand, the standard formalisms underlying the Greedy Algorithms (matroid, greedoid and matroid embedding) which are dependent on the particular type set are generalized to a formalism independent of any data type based on an algebraic specification setting.
Another Iteration on Darlington's "A Synthesis of Several Sorting Algorithms"
, 1994
"... this paper was presented at California State University, Northridge. This work was partially supported by a grant from the Office of Naval Research. References ..."
Abstract
- Add to MetaCart
this paper was presented at California State University, Northridge. This work was partially supported by a grant from the Office of Naval Research. References
Transformational Development of LEX
"... In this paper we present a transformational development of an efficient implementation of a lexical scanner, corresponding to the well-known LEX in the UNIX system. Based on a formal requirement specification of LEX written in the algebraic specification language SPECTRUM, the development is guided ..."
Abstract
- Add to MetaCart
In this paper we present a transformational development of an efficient implementation of a lexical scanner, corresponding to the well-known LEX in the UNIX system. Based on a formal requirement specification of LEX written in the algebraic specification language SPECTRUM, the development is guided by global plans and realised by applications of correctness-preserving transformations (partly developed in the PROSPECTRA project [HK 93]). Optimization is obtained naturally as the end product of the formal development. Our transformational approach is partly an alternative to common "invent and verify" techniques. The development is formally presented and embedded in the terminology of the KORSO Framework. I Introduction KORSO 2 (a cooperative project by 13 universities and one company, founded by the German Ministry of Research and Technology) aims at the development of correct software through formal methods. Its goal is to capture all phases of the life cycle of a software product an...
Semi-automatic Synthesis of Some Sorting Programs in Theorema
"... Abstract. In the context of constructive synthesis we present a general method for synthesis of seven versions of sorting algorithms and the synthesis of some necessary auxiliary functions. We synthesize also new algorithms like: Special Merge-Sort and Special Quick-Sort. The method that we implemen ..."
Abstract
- Add to MetaCart
Abstract. In the context of constructive synthesis we present a general method for synthesis of seven versions of sorting algorithms and the synthesis of some necessary auxiliary functions. We synthesize also new algorithms like: Special Merge-Sort and Special Quick-Sort. The method that we implemented in the Theorema system and the case studies presented in this paper complement the work from [8]. The synthesis process is paralleled with the exploration of the appropriate theory of lists. 1

