Results 1 -
7 of
7
A theory of type polymorphism in programming
- Journal of Computer and System Sciences
, 1978
"... The aim of this work is largely a practical one. A widely employed style of programming, particularly in structure-processing languages which impose no discipline of types, entails defining procedures which work well on objects of a wide variety. We present a formal type discipline for such polymorp ..."
Abstract
-
Cited by 873 (0 self)
- Add to MetaCart
The aim of this work is largely a practical one. A widely employed style of programming, particularly in structure-processing languages which impose no discipline of types, entails defining procedures which work well on objects of a wide variety. We present a formal type discipline for such polymorphic procedures in the context of a simple pro-gramming language, and a compile time type-checking algorithm w which enforces the discipline. A Semantic Soundness Theorem (based on a formal semantics for the language) states that well-type programs cannot “go wrong ” and a Syntactic Soundness Theorem states that if fl accepts a program then it is well typed. We also discuss extending these results to richer languages; a type-checking algorithm based on w is in fact already implemented and working, for the metalanguage ML in the Edinburgh LCF system, 1.
Admissibility of Fixpoint Induction over Partial Types
- Automated deduction --- CADE-15. Lect. Notes in Comp. Sci
, 1998
"... Partial types allow the reasoning about partial functions in type theory. The partial functions of main interest are recursively computed functions, which are commonly assigned types using fixpoint induction. However, fixpoint induction is valid only on admissible types. Previous work has shown many ..."
Abstract
-
Cited by 6 (2 self)
- Add to MetaCart
Partial types allow the reasoning about partial functions in type theory. The partial functions of main interest are recursively computed functions, which are commonly assigned types using fixpoint induction. However, fixpoint induction is valid only on admissible types. Previous work has shown many types to be admissible, but has not shown any dependent products to be admissible. Disallowing recursion on dependent product types substantially reduces the expressiveness of the logic; for example, it prevents much reasoning about modules, objects and algebras. In this paper I present two new tools, predicate-admissibility and monotonicity, for showing types to be admissible. These tools show a wide class of types to be admissible; in particular, they show many dependent products to be admissible. This alleviates difficulties in applying partial types to theorem proving in practice. I also present a general least upper bound theorem for fixed points with regard to a computational approxim...
Hybrid Partial-Total Type Theory
, 1995
"... In this paper a hybrid type theory HTT is defined which combines the programming language notion of partial type with the logical notion of total type into a single theory. A new partial type constructor A is added to the type theory: objects in A may diverge, but if they converge, they must be memb ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
In this paper a hybrid type theory HTT is defined which combines the programming language notion of partial type with the logical notion of total type into a single theory. A new partial type constructor A is added to the type theory: objects in A may diverge, but if they converge, they must be members of A. A fixed point typing rule is given to allow for typing of fixed points. The underlying theory is based on ideas from Feferman's Class Theory and Martin Lof's Intuitionistic Type Theory. The extraction paradigm of constructive type theory is extended to allow direct extraction of arbitrary fixed points. Important features of general programming logics such as LCF are preserved, including the typing of all partial functions, a partial ordering ! ¸ on computations, and a fixed point induction principle. The resulting theory is thus intended as a general-purpose programming logic. Rules are presented and soundness of the theory established. Keywords: Constructive Type Theory, Logics...
Design Issues in Parallel Architecture for Artificial Intelligence
- In Proc. 28th IEEE Computer Society Int. Conf,, San Francisco CA
, 1983
"... Development of highly intelligent computers requires a conceptual foun- dation that will overcome the limitations of the yon Neumann architecture. ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Development of highly intelligent computers requires a conceptual foun- dation that will overcome the limitations of the yon Neumann architecture.
S3L : a Fair Functional Language Implementing Infinite Sets
"... S3L 1 is a functional language, that allows easy manipulation of sets. Sets provide a better expressive power in many problems. Often, sets are modelled by lists, and predicates on sets are defined using implicit order over lists. In contrast, in S3L, sets are native objects. They can be finite or ..."
Abstract
- Add to MetaCart
S3L 1 is a functional language, that allows easy manipulation of sets. Sets provide a better expressive power in many problems. Often, sets are modelled by lists, and predicates on sets are defined using implicit order over lists. In contrast, in S3L, sets are native objects. They can be finite or infinite, and for an efficient implementation multiple occurrences of the same object are allowed. We describe, in this paper, the main features of the language, followed by a discussion on infinite sets. This leads us to deal with fairness, and tools expressing it, using a denotational approach. Keywords : Functional Programming, Sets, Prototyping, Fairness, S3L. 1 Introduction S3L [11] is a functional programming language, developed at Orleans University, that implements in a very efficient way usual set operators. S3L allows a syntax close to the mathematical notation of Naive Set Theory ([9]). Sets are native objects of the language, and usual set operators are implemented : inclusio...
La Deduzione Automatica
"... Scopo di questo articolo e` dare una panoramica introduttiva alla deduzione automatica, mettendo in evidenza obiettivi, differenze e similitudini di alcuni fra i piu` importanti approcci al problema. ..."
Abstract
- Add to MetaCart
Scopo di questo articolo e` dare una panoramica introduttiva alla deduzione automatica, mettendo in evidenza obiettivi, differenze e similitudini di alcuni fra i piu` importanti approcci al problema.
Theoretical Foundations for Practical ‘Totally Functional Programming’
, 2007
"... Interpretation is an implicit part of today’s programming; it has great power but is overused and has
significant costs. For example, interpreters are typically significantly hard to understand and hard
to reason about. The methodology of “Totally Functional Programming” (TFP) is a reasoned
attempt ..."
Abstract
- Add to MetaCart
Interpretation is an implicit part of today’s programming; it has great power but is overused and has
significant costs. For example, interpreters are typically significantly hard to understand and hard
to reason about. The methodology of “Totally Functional Programming” (TFP) is a reasoned
attempt to redress the problem of interpretation. It incorporates an awareness of the undesirability
of interpretation with observations that definitions and a certain style of programming appear to
offer alternatives to it. Application of TFP is expected to lead to a number of significant outcomes,
theoretical as well as practical. Primary among these are novel programming languages to lessen or
eliminate the use of interpretation in programming, leading to better-quality software. However,
TFP contains a number of lacunae in its current formulation, which hinder development of these
outcomes. Among others, formal semantics and type-systems for TFP languages are yet to be
discovered, the means to reduce interpretation in programs is to be determined, and a detailed
explication is needed of interpretation, definition, and the differences between the two. Most
important of all however is the need to develop a complete understanding of the nature of
interpretation. In this work, suitable type-systems for TFP languages are identified, and guidance
given regarding the construction of appropriate formal semantics. Techniques, based around the
‘fold’ operator, are identified and developed for modifying programs so as to reduce the amount of
interpretation they contain. Interpretation as a means of language-extension is also investigated.
v
Finally, the nature of interpretation is considered. Numerous hypotheses relating to it considered in
detail. Combining the results of those analyses with discoveries from elsewhere in this work leads
to the proposal that interpretation is not, in fact, symbol-based computation, but is in fact something
more fundamental: computation that varies with input. We discuss in detail various implications of
this characterisation, including its practical application. An often more-useful property, ‘inherent
interpretiveness’, is also motivated and discussed in depth. Overall, our inquiries act to give
conceptual and theoretical foundations for practical TFP.

