Results 1 - 10
of
16
On understanding types, data abstraction, and polymorphism
- ACM COMPUTING SURVEYS
, 1985
"... Our objective is to understand the notion of type in programming languages, present a model of typed, polymorphic programming languages that reflects recent research in type theory, and examine the relevance of recent research to the design of practical programming languages. Object-oriented languag ..."
Abstract
-
Cited by 727 (14 self)
- Add to MetaCart
Our objective is to understand the notion of type in programming languages, present a model of typed, polymorphic programming languages that reflects recent research in type theory, and examine the relevance of recent research to the design of practical programming languages. Object-oriented languages provide both a framework and a motivation for exploring the interaction among the concepts of type, data abstraction, and polymorphism, since they extend the notion of type to data abstraction and since type inheritance is an important form of polymorphism. We develop a λ-calculus-based model for type systems that allows us to explore these interactions in a simple setting, unencumbered by complexities of production programming languages. The evolution of languages from untyped universes to monomorphic and then polymorphic type systems is reviewed. Mechanisms for polymorphism such as overloading, coercion, subtyping, and parameterization are examined. A unifying framework for polymorphic type systems is developed in terms of the typed λ-calculus augmented to include binding of types by quantification as well as binding of values by abstraction. The typed λ-calculus is augmented by universal quantification to model generic functions with type parameters, existential quantification and packaging (information hiding) to model abstract data types, and
Propositions as [Types]
, 2001
"... Image factorizations in regular categories are stable under pullbacks, so they model a natural modal operator in dependent type theory. This unary type constructor [A] has turned up previously in a syntactic form as a way of erasing computational content, and formalizing a notion of proof irrelevanc ..."
Abstract
-
Cited by 16 (0 self)
- Add to MetaCart
Image factorizations in regular categories are stable under pullbacks, so they model a natural modal operator in dependent type theory. This unary type constructor [A] has turned up previously in a syntactic form as a way of erasing computational content, and formalizing a notion of proof irrelevance. Indeed, semantically, the notion of a support is sometimes used as surrogate proposition asserting inhabitation of an indexed family. We give rules for bracket types in dependent type theory and provide complete semantics using regular categories. We show that dependent type theory with the unit type, strong extensional equality types, strong dependent sums, and bracket types is the internal type theory of regular categories, in the same way that the usual dependent type theory with dependent sums and products is the internal type theory of locally cartesian closed categories. We also show how to interpret rst-order logic in type theory with brackets, and we make use of the translation to compare type theory with logic. Specically, we show that the propositions-as-types interpretation is complete with respect to a certain fragment of intuitionistic rst-order logic. As a consequence, a modied double-negation translation into type theory (without bracket types) is complete for all of classical rst-order logic.
Realization of natural language interfaces using lazy functional programming
- ACM Comp. Surv. 38(4) Article
, 2006
"... The construction of natural language interfaces to computers continues to be a major challenge. The need for such interfaces is growing now that speech recognition technology is becoming more readily available, and people cannot speak those computer-oriented formal languages that are frequently used ..."
Abstract
-
Cited by 7 (1 self)
- Add to MetaCart
The construction of natural language interfaces to computers continues to be a major challenge. The need for such interfaces is growing now that speech recognition technology is becoming more readily available, and people cannot speak those computer-oriented formal languages that are frequently used to interact with computer applications. Much of the research related to the design and implementation of natural language interfaces has involved the use of high-level declarative programming languages. This is to be expected as the task is extremely difficult, involving syntactic and semantic analysis of potentially ambiguous input. The use of LISP and Prolog in this area is well documented. However, research involving the relatively new lazy functional programming paradigm is less well known. This paper provides a comprehensive survey of that research.
The Quest Language and System
- Digital Equipment Corporation, Systems Research
, 1994
"... 2. System tutorial 3. The big picture 3.1. Kinds, types, and values 3.2. Signatures and bindings ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
2. System tutorial 3. The big picture 3.1. Kinds, types, and values 3.2. Signatures and bindings
Type Theory with First-Order Data Types and Size-Change Termination
, 2004
"... We prove normalization for a dependently typed lambda-calculus extended with first-order data types and computation schemata for first-order size-change terminating recursive functions. Size-change termination, introduced by C.S. Lee, N.D. Jones and A.M. Ben-Amram, can be seen as a generalized form ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
We prove normalization for a dependently typed lambda-calculus extended with first-order data types and computation schemata for first-order size-change terminating recursive functions. Size-change termination, introduced by C.S. Lee, N.D. Jones and A.M. Ben-Amram, can be seen as a generalized form of structural induction, which allows inductive computations and proofs to be defined in a straight-forward manner. The language can be used as a proof system—an extension of Martin-Löf’s Logical Framework.
Naïve computational type theory
- Proof and System-Reliability, Proceedings of International Summer School Marktoberdorf, July 24 to August 5, 2001, volume 62 of NATO Science Series III
, 2002
"... The basic concepts of type theory are fundamental to computer science, logic and mathematics. Indeed, the language of type theory connects these regions of science. It plays a role in computing and information science akin to that of set theory in pure mathematics. There are many excellent accounts ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
The basic concepts of type theory are fundamental to computer science, logic and mathematics. Indeed, the language of type theory connects these regions of science. It plays a role in computing and information science akin to that of set theory in pure mathematics. There are many excellent accounts of the basic ideas of type theory, especially at the interface of computer science and logic — specifically, in the literature of programming languages, semantics, formal methods and automated reasoning. Most of these are very technical, dense with formulas, inference rules, and computation rules. Here we follow the example of the mathematician Paul Halmos, who in 1960 wrote a 104-page book called Naïve Set Theory intended to make the subject accessible to practicing mathematicians. His book served many generations well. This article follows the spirit of Halmos ’ book and introduces type theory without recourse to precise axioms and inference rules, and with a minimum of formalism. I start by paraphrasing the preface to Halmos ’ book. The sections of this article follow his chapters closely. Every computer scientist agrees that every computer scientist must know some type theory; the disagreement begins in trying to decide how much is some. This article contains my partial answer to that question. The purpose of the article is to tell the beginning student of advanced computer science the basic type theoretic facts of life, and to do so with a minimum of philosophical discourse and logical formalism. The point throughout is that of a prospective computer scientist eager to study programming languages, or database systems, or computational complexity theory, or distributed systems or information discovery. In type theory, “naïve ” and “formal ” are contrasting words. The present treatment might best be described as informal type theory from a naïve point of view. The concepts are very general and very abstract; therefore they may
Intuitionistic Formal Spaces
, 1989
"... This paper is exactly the same as Intuitionistic formal spaces - a first communication, in: Mathematical Logic and its Applications, D. Skordev ed., Plenum 1987, pp. 187-204 by the same author, except for: (i.) the conditions on the positivity predicate (part 3. of definition 1.1 and end of section ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
This paper is exactly the same as Intuitionistic formal spaces - a first communication, in: Mathematical Logic and its Applications, D. Skordev ed., Plenum 1987, pp. 187-204 by the same author, except for: (i.) the conditions on the positivity predicate (part 3. of definition 1.1 and end of section 1) and the treatment of Scott domains (section 8), which have been modified as explained in the addendum Intuitionistic formal spaces vs. Scott domains, in: Atti del Congresso Temi e prospettive della logica e della filosofia della scienza contemporanee, vol. 1, CLUEB, Bologna 1988, pp. 159-163; (ii.) the correction of some of the misprints; (iii.) one change in notation (now \Delta is used for covering relations, rather than ) and one in terminology (now `weak transitivity' replaces `weakening'). For an update on the development of formal topology, see the survey Formal topology - twelve years of development, in preparation, by the same author.
Jeff Conklin jeff@cognexus.org CogNexus Institute http://cognexus.org Designing Organizational Memory Page 34 of 35
- in Proceedings of the 29th Hawaii International Conference on System Sciences (HICSS-29
, 1997
"... The theme of this paper is the relation between formal topology and the theory of domains. On one hand, domain theory can be seen as a branch of formal topology. On the other hand, the influence of domain theory on formal topology is twofold. Historically, the presence of the subset Con in Scott’s i ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
The theme of this paper is the relation between formal topology and the theory of domains. On one hand, domain theory can be seen as a branch of formal topology. On the other hand, the influence of domain theory on formal topology is twofold. Historically, the presence of the subset Con in Scott’s information systems has been the starting point for the introduction of the positivity predicate Pos in formal topology; also, the notion of approximable mapping has influenced the definition of continuous relations between formal topologies. Conceptually, since domain theory can be seen as a particular case, any notion and result in domain theory becomes a challenge for formal topology: how much of domain theory can be generalized to formal topology? My impression is that some open problems in one of the two fields could already have a solution in the other, and that is why an intensification of contact should be rewarding. 1 1. Formal topology What is formal topology? A good approximation to the correct answer is: formal topology is topology as developed in (Martin-Löf’s) type theory [3]. This means that it is intuitionistic and predicative. Actually, it is fully formalizable in an implementation of type theory, via what we have called the toolbox for subsets (cf. [7]); as a result, notation is quite standard, except for the use of ɛ, which is different from ∈, for elements of a subset U (which is a propositional function, and hence not a set: when S is a set and U ⊆ S, a ɛ U means that a ∈ S and U(a) is true). The adjective “formal ” is due to the stress on the pointfree approach to topology, to which one is naturally lead adopting type theory. The original main definition (cf. [4]) was: Definition 1.1 (1984-1987) A structure A = (S, ·, 1, ✁, Pos) is a formal topology when: 1 I am very grateful to the organizers of the workshop Domains IV, in particular to Dieter Spreen, for inviting me. 1 S is a set and (S, ·, 1) is a semilattice (or commutative monoid), called the base; a ✁ U prop (a ∈ S, U ⊆ S) is a cover, that is it satisfies reflexivity transitivity

