Results 1  10
of
10
Type systems
 The Computer Science and Engineering Handbook
, 1997
"... This paper presents an overview of the programming language Modula3, and a more detailed description of its type system. 1 ..."
Abstract

Cited by 200 (1 self)
 Add to MetaCart
This paper presents an overview of the programming language Modula3, and a more detailed description of its type system. 1
The Essence of Principal Typings
 In Proc. 29th Int’l Coll. Automata, Languages, and Programming, volume 2380 of LNCS
, 2002
"... Let S be some type system. A typing in S for a typable term M is the collection of all of the information other than M which appears in the final judgement of a proof derivation showing that M is typable. For example, suppose there is a derivation in S ending with the judgement A M : # meanin ..."
Abstract

Cited by 86 (12 self)
 Add to MetaCart
Let S be some type system. A typing in S for a typable term M is the collection of all of the information other than M which appears in the final judgement of a proof derivation showing that M is typable. For example, suppose there is a derivation in S ending with the judgement A M : # meaning that M has result type # when assuming the types of free variables are given by A. Then (A, #) is a typing for M .
Firstclass Polymorphism with Type Inference
"... Languages like ML and Haskell encourage the view of values as firstclass entities that can be passed as arguments or results of functions, or stored as components of data structures. The same languages o#er parametric polymorphism, which allows the use of values that behave uniformly over a range ..."
Abstract

Cited by 47 (0 self)
 Add to MetaCart
Languages like ML and Haskell encourage the view of values as firstclass entities that can be passed as arguments or results of functions, or stored as components of data structures. The same languages o#er parametric polymorphism, which allows the use of values that behave uniformly over a range of di#erent types. But the combination of these features is not supported polymorphic values are not firstclass. This restriction is sometimes attributed to the dependence of such languages on type inference, in contrast to more expressive, explicitly typed languages, like System F, that do support firstclass polymorphism. This paper uses relationships between types and logic to develop a type system, FCP, that supports firstclass polymorphism, type inference, and also firstclass abstract datatypes. The immediate result is a more expressive language, but there are also long term implications for language design. 1
Principality and Type Inference for Intersection Types Using Expansion Variables
, 2003
"... Principality of typings is the property that for each typable term, there is a typing from which all other typings are obtained via some set of operations. Type inference is the problem of finding a typing for a given term, if possible. We define an intersection type system which has principal typ ..."
Abstract

Cited by 26 (12 self)
 Add to MetaCart
Principality of typings is the property that for each typable term, there is a typing from which all other typings are obtained via some set of operations. Type inference is the problem of finding a typing for a given term, if possible. We define an intersection type system which has principal typings and types exactly the strongly normalizable #terms. More interestingly, every finiterank restriction of this system (using Leivant's first notion of rank) has principal typings and also has decidable type inference.
Branching Types
, 2002
"... Although systems with intersection types have many unique capabilities, there has never been a fully satisfactory explicitly typed system with intersection types. We introduce and prove the basic properties of # , a typed #calculus with branching types and types with quantification over type ..."
Abstract

Cited by 11 (5 self)
 Add to MetaCart
Although systems with intersection types have many unique capabilities, there has never been a fully satisfactory explicitly typed system with intersection types. We introduce and prove the basic properties of # , a typed #calculus with branching types and types with quantification over type selection parameters. The new system # an explicitly typed system with the same expressiveness as a system with intersection types. Typing derivations in # use branching types to squash together what would be separate parallel derivations in earlier systems with intersection types.
Lectures on the curryhoward isomorphism
, 1998
"... The CurryHoward isomorphism states an amazing correspondence between systems of formal logic as encountered in proof theory and computational calculi as found in type theory. For instance, minimal propositional logic corresponds to simply typed λcalculus, firstorder logic corresponds to dependent ..."
Abstract

Cited by 7 (0 self)
 Add to MetaCart
The CurryHoward isomorphism states an amazing correspondence between systems of formal logic as encountered in proof theory and computational calculi as found in type theory. For instance, minimal propositional logic corresponds to simply typed λcalculus, firstorder logic corresponds to dependent types, secondorder logic corresponds to polymorphic types, etc. The isomorphism has many aspects, even at the syntactic level: formulas correspond to types, proofs correspond to terms, provability corresponds to inhabitation, proof normalization corresponds to term reduction, etc. But there is much more to the isomorphism than this. For instance, it is an old idea—due to Brouwer, Kolmogorov, and Heyting, and later formalized by Kleene’s realizability interpretation—that a constructive proof of an implication is a procedure that transforms proofs of the antecedent into proofs of the succedent; the CurryHoward isomorphism gives syntactic representations of such procedures. These notes give an introduction to parts of proof theory and related
Undecidability of typechecking in domainfree typed lambdacalculi with existence
 In the 17th EACSL Annual Conference on Computer Science Logic (CSL 2008), LNCS 5213
, 2008
"... Abstract. This paper shows undecidability of typechecking and typeinference problems in domainfree typed lambdacalculi with existential types: a negation and conjunction fragment, and an implicational fragment. These are proved by reducing typechecking and typeinference problems of the domainf ..."
Abstract

Cited by 5 (2 self)
 Add to MetaCart
Abstract. This paper shows undecidability of typechecking and typeinference problems in domainfree typed lambdacalculi with existential types: a negation and conjunction fragment, and an implicational fragment. These are proved by reducing typechecking and typeinference problems of the domainfree polymorphic typed lambdacalculus to those of the lambdacalculi with existential types by continuation passing style translations.
Typed SelfInterpretation by Pattern Matching
"... Selfinterpreters can be roughly divided into two sorts: selfrecognisers that recover the input program from a canonical representation, and selfenactors that execute the input program. Major progress for staticallytyped languages was achieved in 2009 by Rendel, Ostermann, and Hofer who presented ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Selfinterpreters can be roughly divided into two sorts: selfrecognisers that recover the input program from a canonical representation, and selfenactors that execute the input program. Major progress for staticallytyped languages was achieved in 2009 by Rendel, Ostermann, and Hofer who presented the first typed selfrecogniser that allows representations of different terms to have different types. A key feature of their type system is a type:type rule that renders the kind system of their language inconsistent. In this paper we present the first staticallytyped language that not only allows representations of different terms to have different types, and supports a selfrecogniser, but also supports a selfenactor. Our language is a factorisation calculus in the style of Jay and GivenWilson, a combinatory calculus with a factorisation operator that is powerful enough to support the patternmatching functions necessary for a selfinterpreter. This allows us to avoid a type:type rule. Indeed, the types of System F are sufficient. We have implemented our approach and our experiments support the theory.