Results 1  10
of
16
Equations and rewrite rules: a survey
 In Formal Language Theory: Perspectives and Open Problems
, 1980
"... bY ..."
Total Correctness by Local Improvement in the Transformation of Functional Programs
 ACM Transactions on Programming Languages and Systems
, 1996
"... ion. A common form of transformation, which is easily justified by appealing to reversibility, is abstraction. The abstraction transformation lifts some instances of subexpressions from the righthand sides of a set of definitions and replaces them with function calls for some new functions. The ab ..."
Abstract

Cited by 61 (6 self)
 Add to MetaCart
ion. A common form of transformation, which is easily justified by appealing to reversibility, is abstraction. The abstraction transformation lifts some instances of subexpressions from the righthand sides of a set of definitions and replaces them with function calls for some new functions. The abstraction process can be used in conjunction with a callbyneed implementation to avoid repeated evaluation of subexpressions. A wellknown example is Hughes' supercombinator abstraction [Hughes 1982]. Another form of abstraction which is common in program transformation is syntactic generalization in which an expression e is replaced by a function call g e 1 : : : e n , where g is a new function defined by g x 1 : : : xn \Delta = e 0 , such that e j e 0 f e 1 : : : e n= x 1 : : : xn g. General statements about abstractions and their correctness are notationally rather complex. In practice we have found it is easier to appeal to a reversibility argument on a casebycase basis than...
Proving the Correctness of RecursionBased Automatic Program Transformations
 Theoretical Computer Science
, 1996
"... This paper shows how the Improvement Theorema semantic condition ..."
Abstract

Cited by 31 (4 self)
 Add to MetaCart
This paper shows how the Improvement Theorema semantic condition
Static Typing for ObjectOriented Programming
 SCIENCE OF COMPUTER PROGRAMMING
, 1994
"... We develop a theory of statically typed objectoriented languages. It represents classes as labeled, regular trees, types as finite sets of classes, and subclassing as a partial order on trees. We show that our subclassing order strictly generalizes inheritance, and that a novel genericity mechan ..."
Abstract

Cited by 19 (6 self)
 Add to MetaCart
We develop a theory of statically typed objectoriented languages. It represents classes as labeled, regular trees, types as finite sets of classes, and subclassing as a partial order on trees. We show that our subclassing order strictly generalizes inheritance, and that a novel genericity mechanism arises as an ordertheoretic complement. This mechanism, called class substitution, is pragmatically useful and can be implemented efficiently.
Optimal Representations of Polymorphic Types with Subtyping (Extended Abstract)
 IN PROCEEDINGS TACS'97 THEORETICAL ASPECTS OF COMPUTER SOFTWARE
, 1997
"... Many type inference and program analysis systems include notions of subtyping and parametric polymorphism. When used together, these two features induce equivalences that allow types to be simplified by eliminating quantified variables. Eliminating variables both improves the readability of types an ..."
Abstract

Cited by 18 (3 self)
 Add to MetaCart
Many type inference and program analysis systems include notions of subtyping and parametric polymorphism. When used together, these two features induce equivalences that allow types to be simplified by eliminating quantified variables. Eliminating variables both improves the readability of types and the performance of algorithms whose complexity depends on the number of type variables. We present an algorithm for simplifying quantified types in the presence of subtyping and prove it is sound and complete for nonrecursive and recursive types.
From SOS Rules to Proof Principles: An Operational Metatheory for Functional Languages
 In Proc. POPL'97, the 24 th ACM SIGPLANSIGACT Symposium on Principles of Programming Languages
, 1997
"... Structural Operational Semantics (SOS) is a widely used formalism for specifying the computational meaning of programs, and is commonly used in specifying the semantics of functional languages. Despite this widespread use there has been relatively little work on the imetatheoryj for such semantics. ..."
Abstract

Cited by 17 (1 self)
 Add to MetaCart
Structural Operational Semantics (SOS) is a widely used formalism for specifying the computational meaning of programs, and is commonly used in specifying the semantics of functional languages. Despite this widespread use there has been relatively little work on the imetatheoryj for such semantics. As a consequence the operational approach to reasoning is considered ad hoc since the same basic proof techniques and reasoning tools are reestablished over and over, once for each operational semantics speciøcation. This paper develops some metatheory for a certain class of SOS language speciøcations for functional languages. We deøne a rule format, Globally Deterministic SOS (gdsos), and establish some proof principles for reasoning about equivalence which are sound for all languages which can be expressed in this format. More speciøcally, if the SOS rules for the operators of a language conform to the syntax of the gdsos format, then ffl a syntactic analogy of continuity holds, which rel...
Type inference with inequalities
 IN PROC. TAPSOFT'91
, 1991
"... Type inference can be phrased as constraintsolving over types. We consider an implicitly typed language equipped with recursive types, multiple inheritance, 1st order parametric polymorphism, and assignments. Type correctness is expressed as satisfiability of a possibly infinite collection of (mono ..."
Abstract

Cited by 15 (8 self)
 Add to MetaCart
Type inference can be phrased as constraintsolving over types. We consider an implicitly typed language equipped with recursive types, multiple inheritance, 1st order parametric polymorphism, and assignments. Type correctness is expressed as satisfiability of a possibly infinite collection of (monotonic) inequalities on the types of variables and expressions. A general result about systems of inequalities over semilattices yields a solvable form. We distinguish between deciding typability (the existence of solutions) and type inference (the computation of a minimal solution). In our case, both can be solved by means of nondeterministic finite automata; unusually, the two problems have different complexities: polynomial vs. exponential time.
Improvement Theory and its Applications
 HIGHER ORDER OPERATIONAL TECHNIQUES IN SEMANTICS, PUBLICATIONS OF THE NEWTON INSTITUTE
, 1997
"... An improvement theory is a variant of the standard theories of observational approximation (or equivalence) in which the basic observations made of a functional program's execution include some intensionalinformation about, for example, the program's computational cost. One program is an improvement ..."
Abstract

Cited by 10 (4 self)
 Add to MetaCart
An improvement theory is a variant of the standard theories of observational approximation (or equivalence) in which the basic observations made of a functional program's execution include some intensionalinformation about, for example, the program's computational cost. One program is an improvement of another if its execution is more efficient in any program context. In this article we give an overview of our work on the theory and applications of improvement. Applications include reasoning about time properties of functional programs, and proving the correctness of program transformation methods. We also introduce a new application, in the form of some bisimulationlike proof techniques for equivalence, with something of the flavour of Sangiorgi's "bisimulation upto expansion and context".
Representation and induction of infinite concepts and recursive action sequences
 In Proceedings of the 8th IJCAI
, 1983
"... A general method for the inference of recursive functions (programs) from examples of computations is described. It is based on the so called algebraic semantics of recursive program schemes and in this paper mainly applied to the representation and induction of infinite concepts and recursive actio ..."
Abstract

Cited by 9 (6 self)
 Add to MetaCart
A general method for the inference of recursive functions (programs) from examples of computations is described. It is based on the so called algebraic semantics of recursive program schemes and in this paper mainly applied to the representation and induction of infinite concepts and recursive action sequences (which are of importance for problem solving and hierarchical planning). Additionally, the use of recursive program schemes leads to a new principle of generalization in the sense that families of structures or classes of programs could be treated simultaneously and that already existing solutions of old problems could be transferred to new problems which have to be solved. 1.
Rewrite, Rewrite, Rewrite, Rewrite, Rewrite, ...
, 1989
"... .We study properties of rewrite systems that are not necessarily terminating, but allow instead for trans#nite derivations that have a limit. In particular, we give conditions for the existence of a limit and for its uniqueness and relate the operational and algebraic semantics of in#nitary theories ..."
Abstract

Cited by 8 (1 self)
 Add to MetaCart
.We study properties of rewrite systems that are not necessarily terminating, but allow instead for trans#nite derivations that have a limit. In particular, we give conditions for the existence of a limit and for its uniqueness and relate the operational and algebraic semantics of in#nitary theories. We also consider su#cient completeness of hierarchical systems. Is there no limit? Job 16:3 1. Introduction Rewrite systems are sets of directed equations used to compute by repeatedly replacing equal terms in a given formula, as long as possible. For one approach to their use in computing, see #23#. The theory of rewriting is an outgrowth of the study of the lambda calculus and combinatory logic, and # Preliminary versions #6, 7# of ideas in this paper were presented at the Sixteenth ACM Symposium on Principles of Programming Languages, Austin, TX #January 1989# and at the Sixteenth EATCS International Colloquium on Automata, Languages and Programming, Stresa, Italy #July 1989#. ...