Conjunctive polymorphic type checking with explicit types

An expressive type language and the ability to do compile-time type inference are desirable goals in language design, but the attainment of the former may preclude the possibility of the latter. Specifically, the type conjunction operator (type intersection) induces a rich type language at the expen...

Full description

Bibliographic Details
Main Author: Flannery, Kevin E.
Other Authors: Computer Science and Applications
Format: Others
Language:en_US
Published: Virginia Polytechnic Institute and State University 2015
Subjects:
Online Access:http://hdl.handle.net/10919/54527
id ndltd-VTETD-oai-vtechworks.lib.vt.edu-10919-54527
record_format oai_dc
spelling ndltd-VTETD-oai-vtechworks.lib.vt.edu-10919-545272020-12-23T05:32:28Z Conjunctive polymorphic type checking with explicit types Flannery, Kevin E. Computer Science and Applications LD5655.V856 1989.F637 Programming languages (Electronic computers) An expressive type language and the ability to do compile-time type inference are desirable goals in language design, but the attainment of the former may preclude the possibility of the latter. Specifically, the type conjunction operator (type intersection) induces a rich type language at the expense of decidability of the typeable expressions. Two extreme alternatives to this dilemma are to abandon type inference (and force the programmer to, essentially, supply a derivation for his type claims) or to abandon (or restrict) type conjunction. This work presents a third alternative in which the programmer, at times, may be required to supply explicit types in order for type inference to succeed. In this way, the power of conjunctive types is preserved, yet compile-time type inference can be done for a large class of polymorphic functions, including those typeable with parametric types. To this end, we introduce a simple combinator based language with typing rules based on type conjunction and a subtype relation, of sorts, called "weaker." The validity of the type rules with respect to the usual interpretation of "type" is shown, along with the undecidability of the type relation. It is shown how the computational portion of the language can be modified to accommodate explicit type information which may direct an automatic type derivation. This new language has the principal type property with respect to a decidable relation, although deciding this relation is shown to be an NP-Complete problem. The language is extended to accommodate type fixed points, and extended further to allow all expressions with parametric types to be typed automatically, and to accommodate integers, pairs, sums, and abstract types in the form of type generators. Ph. D. 2015-07-10T20:00:22Z 2015-07-10T20:00:22Z 1989 Dissertation Text http://hdl.handle.net/10919/54527 en_US OCLC# 20316235 In Copyright http://rightsstatements.org/vocab/InC/1.0/ vi, 209 leaves application/pdf application/pdf Virginia Polytechnic Institute and State University
collection NDLTD
language en_US
format Others
sources NDLTD
topic LD5655.V856 1989.F637
Programming languages (Electronic computers)
spellingShingle LD5655.V856 1989.F637
Programming languages (Electronic computers)
Flannery, Kevin E.
Conjunctive polymorphic type checking with explicit types
description An expressive type language and the ability to do compile-time type inference are desirable goals in language design, but the attainment of the former may preclude the possibility of the latter. Specifically, the type conjunction operator (type intersection) induces a rich type language at the expense of decidability of the typeable expressions. Two extreme alternatives to this dilemma are to abandon type inference (and force the programmer to, essentially, supply a derivation for his type claims) or to abandon (or restrict) type conjunction. This work presents a third alternative in which the programmer, at times, may be required to supply explicit types in order for type inference to succeed. In this way, the power of conjunctive types is preserved, yet compile-time type inference can be done for a large class of polymorphic functions, including those typeable with parametric types. To this end, we introduce a simple combinator based language with typing rules based on type conjunction and a subtype relation, of sorts, called "weaker." The validity of the type rules with respect to the usual interpretation of "type" is shown, along with the undecidability of the type relation. It is shown how the computational portion of the language can be modified to accommodate explicit type information which may direct an automatic type derivation. This new language has the principal type property with respect to a decidable relation, although deciding this relation is shown to be an NP-Complete problem. The language is extended to accommodate type fixed points, and extended further to allow all expressions with parametric types to be typed automatically, and to accommodate integers, pairs, sums, and abstract types in the form of type generators. === Ph. D.
author2 Computer Science and Applications
author_facet Computer Science and Applications
Flannery, Kevin E.
author Flannery, Kevin E.
author_sort Flannery, Kevin E.
title Conjunctive polymorphic type checking with explicit types
title_short Conjunctive polymorphic type checking with explicit types
title_full Conjunctive polymorphic type checking with explicit types
title_fullStr Conjunctive polymorphic type checking with explicit types
title_full_unstemmed Conjunctive polymorphic type checking with explicit types
title_sort conjunctive polymorphic type checking with explicit types
publisher Virginia Polytechnic Institute and State University
publishDate 2015
url http://hdl.handle.net/10919/54527
work_keys_str_mv AT flannerykevine conjunctivepolymorphictypecheckingwithexplicittypes
_version_ 1719371379919290368