Results 21 - 30
of
39
Implicit program synthesis by a reversible metainterpreter
- Proc. of LOPSTR’97, volume 1463 of LNCS
, 1998
"... Abstract. Synthesis of logic programs is considered as a special instance of logic programming. We describe experience made within a logical metaprogramming environment whose central component is a reversible metainterpreter, in the sense that it is equally well suited for generating object programs ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
Abstract. Synthesis of logic programs is considered as a special instance of logic programming. We describe experience made within a logical metaprogramming environment whose central component is a reversible metainterpreter, in the sense that it is equally well suited for generating object programs as well as for executing them. Requirements telling that certain goals should be provable in a program sought can be integrated with additional sideconditions expressed by the developer at the metalevel, and the resulting specifications tend to be quite concise and declarative. For problems up to a certain degree of complexity, this provides a mode of working characterized by experimentation and an ability to combine different methods which is uncommon in most other systems for program synthesis. Reversibility in the metainterpreter is obtained using constraint logic techniques. 1
A more direct algorithm for type inference in the rank-2 fragment of the second-order λ-calculus
, 2006
"... We present an algorithm for rank-2 type inference in the second-order λ-calculus. Our algorithm differs from the well-known algorithm of Kfoury and Wells in that it employs only a quadratically fewer type variables and inequalities. Our algorithm consists of a translation from a λ-term to an instanc ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
We present an algorithm for rank-2 type inference in the second-order λ-calculus. Our algorithm differs from the well-known algorithm of Kfoury and Wells in that it employs only a quadratically fewer type variables and inequalities. Our algorithm consists of a translation from a λ-term to an instance of R-ASUP (a decidable superset of ASUP) in which the variables correspond more directly to features in the original term. We claim that our construction, being simpler and more direct, is more amenable to proof and extension. 1.
On Typability for Rank-2 Intersection Types with Polymorphic Recursion ∗
"... We show that typability for a natural form of polymorphic recursive typing for rank-2 intersection types is undecidable. Our proof involves characterizing typability as a context free language (CFL) graph problem, which may be of independent interest, and reduction from the boundedness problem for T ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
We show that typability for a natural form of polymorphic recursive typing for rank-2 intersection types is undecidable. Our proof involves characterizing typability as a context free language (CFL) graph problem, which may be of independent interest, and reduction from the boundedness problem for Turing machines. We also show a property of the type system which, in conjunction with the undecidability result, disproves a misconception about the Milner-Mycroft type system. We also show undecidability of a related program analysis problem. 1
Polymorphic Type Checking by Interpretation of Code
, 1992
"... The type system of most modern functional programming languages is based on Milner's polymorphism. A compiler or interpreter usually checks (or infers) the types of functions and other values by directly inspecting the source code of a program. Here, another approach is taken: The program is firs ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
The type system of most modern functional programming languages is based on Milner's polymorphism. A compiler or interpreter usually checks (or infers) the types of functions and other values by directly inspecting the source code of a program. Here, another approach is taken: The program is first translated into code for a stack machine and then a non-standard interpreter applied to this code checks (or infers) the type of the corresponding values. This can be seen as an abstract interpretation of the object code of the program. 1 Introduction In the early days of Functional Programming in the 1960's, functional programming languages did not have any proper concept of type; they (Lisp, ISWIM [10]) were typeless. Classical, monomorphic type-systems are restrictive in the sense that they only support the solution of concrete problems, but not problem schemes. But it is characteristic for the style of Functional Programming to solve problems in an abstract way, and thus a monomor...
Weak Subsumption Constraints for Type Diagnosis: An Incremental Algorithm (Extended Abstract)
- In Joint COMPULOGNET /ELSNET/EAGLES Workshop on Computational Logic for Natural Language Processing
, 1995
"... ) Martin Muller Joachim Niehren y German Research Center for Artificial Intelligence (DFKI) Stuhlsatzenhausweg 3, 66123 Saarbrucken, Germany fmmueller,niehreng@dfki.uni-sb.de March 15, 1995 Abstract We introduce constraints necessary for type checking a higher-order concurrent constraint lan ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
) Martin Muller Joachim Niehren y German Research Center for Artificial Intelligence (DFKI) Stuhlsatzenhausweg 3, 66123 Saarbrucken, Germany fmmueller,niehreng@dfki.uni-sb.de March 15, 1995 Abstract We introduce constraints necessary for type checking a higher-order concurrent constraint language, and solve them with an incremental algorithm. Our constraint system extends rational unification by constraints x`y saying that "x has at least the structure of y", modelled by a weak instance relation between trees. This notion of instance has been carefully chosen to be weaker than the usual one which renders semi-unification undecidable. Semi-unification has more than once served to link unification problems arising from type inference and those considered in computational linguistics. Just as polymorphic recursion corresponds to subsumption through the semi-unification problem, our type constraint problem corresponds to weak subsumption of feature graphs in linguistics. The decida...
Avoiding Dynamic Type Checking in a Polymorphic Logic Programming Language
"... For obvious efficiency reasons, it is good to avoid dynamic type-checking in a programming language. The Prolog type system proposed by Mycroft and O'keefe has some good properties which avoid such a runtime overhead. One of this property called type preserving or transparency is a restriction of th ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
For obvious efficiency reasons, it is good to avoid dynamic type-checking in a programming language. The Prolog type system proposed by Mycroft and O'keefe has some good properties which avoid such a runtime overhead. One of this property called type preserving or transparency is a restriction of the polymorphism. This restriction is not compatible with some programming techniques, for example with higher-order predicates.
Documentation for polyrec_sml: An Extension SML With Typechecking For Polymorphic Recursion
, 1995
"... this documentation. The fault for remaining errors remains with the author. The implementation described here was created with the support of DFG project `Semiunifikation' Le 788/1-2. ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
this documentation. The fault for remaining errors remains with the author. The implementation described here was created with the support of DFG project `Semiunifikation' Le 788/1-2.
The Architecture of an Implementation of λProlog: Prolog/Mali
, 1992
"... Prolog is a logic programming language accepting a more general clause form than standard Prolog (namely hereditary Harrop formulas instead of Horn formulas) and using simply typed λ-terms as a term domain instead of first order terms. Despite these extensions, it is still amenable to goal-directed ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Prolog is a logic programming language accepting a more general clause form than standard Prolog (namely hereditary Harrop formulas instead of Horn formulas) and using simply typed λ-terms as a term domain instead of first order terms. Despite these extensions, it is still amenable to goal-directed proofs and can still be given procedural semantics. However, the execution of λProlog programs requires several departures from the standard resolution scheme. First, the augmented clause form causes the program (a set of clauses) and the signature (a set of constants) to be changeable, but in a very disciplined way. Second, the new term domain has a semi-decidable and infinitary unification theory, and it introduces the need for a fi-reduction operation at run-time. MALI is an abstract memory that is suitable for storing the search-state of depth-first search processes. Its main feature is its efficient memory management. We have used an original Prolog-to-C translation: predicates are trans...
The R-Acyclic Semiunification Problem
, 2006
"... We recast Kfoury and Wells ’ formulation of the acyclic semiunification problem (ASUP) in graphtheoretic terms and prove equivalence between the two formulations. We then relax and simplify the graph-theoretic formulation; we call the resulting problem the R-acyclic semiunification problem (R-ASUP), ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
We recast Kfoury and Wells ’ formulation of the acyclic semiunification problem (ASUP) in graphtheoretic terms and prove equivalence between the two formulations. We then relax and simplify the graph-theoretic formulation; we call the resulting problem the R-acyclic semiunification problem (R-ASUP), which we show to be a strict superset of ASUP. We prove that the ASUP solution procedure terminates and produces most general solutions for R-ASUP (and hence for ASUP) in the same sense as Robinson’s unification algorithm. We thus extend the class of semiunification instances known to be decidable. 1
A General Theory of Semi-Unification
, 1993
"... Various restrictions on the terms allowed for substitution give rise to different cases of semi-unification. Semi-unification on finite and regular terms has already been considered in the literature. We introduce a general case of semi-unification where substitutions are allowed on non-regular term ..."
Abstract
- Add to MetaCart
Various restrictions on the terms allowed for substitution give rise to different cases of semi-unification. Semi-unification on finite and regular terms has already been considered in the literature. We introduce a general case of semi-unification where substitutions are allowed on non-regular terms, and we prove the equivalence of this general case to a well-known undecidable data base dependency problem , thus establishing the undecidability of general semi-unification. We present a unified way of looking at the various problems of semi-unification. We give some properties that are common to all the cases of semi-unification. We also the principality property and the solution set for those problems. We prove that semi-unification on general terms has the principality property. Finally, we present a recursive inseparability result between semi-unification on regular terms and semi-unification on general terms. Partly supported by NSF grant CCR-9113196. Address: Department of Compu...

