Abstract Dependent Types in Practical Programming* (Extended Abstract)

hongweiQcse.ogi.edu We present an approach to enriching the type system of ML with a restricted form of dependent types, where type index objects are drawn from a constraint domain C, leading to the DML(C) language schema. This allows specification and in-ference of significantly more precise type i...

Full description

Bibliographic Details
Main Authors: Hongwei Xi, Frank Pfenning
Other Authors: The Pennsylvania State University CiteSeerX Archives
Format: Text
Language:English
Subjects:
DML
Online Access:http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.116.4393
http://www.cs.bu.edu/~hwxi/academic/papers/popl99.pdf
id ftciteseerx:oai:CiteSeerX.psu:10.1.1.116.4393
record_format openpolar
spelling ftciteseerx:oai:CiteSeerX.psu:10.1.1.116.4393 2023-05-15T16:01:22+02:00 Abstract Dependent Types in Practical Programming* (Extended Abstract) Hongwei Xi Frank Pfenning The Pennsylvania State University CiteSeerX Archives application/pdf http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.116.4393 http://www.cs.bu.edu/~hwxi/academic/papers/popl99.pdf en eng http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.116.4393 http://www.cs.bu.edu/~hwxi/academic/papers/popl99.pdf Metadata may be used without restrictions as long as the oai identifier remains attached to it. http://www.cs.bu.edu/~hwxi/academic/papers/popl99.pdf text ftciteseerx 2016-01-07T13:54:07Z hongweiQcse.ogi.edu We present an approach to enriching the type system of ML with a restricted form of dependent types, where type index objects are drawn from a constraint domain C, leading to the DML(C) language schema. This allows specification and in-ference of significantly more precise type information, facil-itating program error detection and compiler optimization. A major complication resulting from introducing dependent types is that pure type inference for the enriched system is no longer possible, but we show that type-checking a sufficiently annotated program in DML(C) can be reduced to constraint satisfaction in the constraint domain C. We exhibit the un-obtrusiveness of our approach through practical examples and prove that DML(C) is conservative over ML. The main contribution of the paper lies in our language design, in-cluding the formulation of type-checking rules which makes the approach practical. To our knowledge, no previous type system for a general purpose programming language such as ML has combined dependent types with features includ-ing datatype declarations, higher-order functions, general recursions, let-polymorphism, mutable references, and ex-ceptions. In addition, we have finished a prototype imple-mentation of DML(C) for an integer constraint domain C, where constraints are linear inequalities (Xi and Pfenning 1998). 1 Text DML Unknown
institution Open Polar
collection Unknown
op_collection_id ftciteseerx
language English
description hongweiQcse.ogi.edu We present an approach to enriching the type system of ML with a restricted form of dependent types, where type index objects are drawn from a constraint domain C, leading to the DML(C) language schema. This allows specification and in-ference of significantly more precise type information, facil-itating program error detection and compiler optimization. A major complication resulting from introducing dependent types is that pure type inference for the enriched system is no longer possible, but we show that type-checking a sufficiently annotated program in DML(C) can be reduced to constraint satisfaction in the constraint domain C. We exhibit the un-obtrusiveness of our approach through practical examples and prove that DML(C) is conservative over ML. The main contribution of the paper lies in our language design, in-cluding the formulation of type-checking rules which makes the approach practical. To our knowledge, no previous type system for a general purpose programming language such as ML has combined dependent types with features includ-ing datatype declarations, higher-order functions, general recursions, let-polymorphism, mutable references, and ex-ceptions. In addition, we have finished a prototype imple-mentation of DML(C) for an integer constraint domain C, where constraints are linear inequalities (Xi and Pfenning 1998). 1
author2 The Pennsylvania State University CiteSeerX Archives
format Text
author Hongwei Xi
Frank Pfenning
spellingShingle Hongwei Xi
Frank Pfenning
Abstract Dependent Types in Practical Programming* (Extended Abstract)
author_facet Hongwei Xi
Frank Pfenning
author_sort Hongwei Xi
title Abstract Dependent Types in Practical Programming* (Extended Abstract)
title_short Abstract Dependent Types in Practical Programming* (Extended Abstract)
title_full Abstract Dependent Types in Practical Programming* (Extended Abstract)
title_fullStr Abstract Dependent Types in Practical Programming* (Extended Abstract)
title_full_unstemmed Abstract Dependent Types in Practical Programming* (Extended Abstract)
title_sort abstract dependent types in practical programming* (extended abstract)
url http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.116.4393
http://www.cs.bu.edu/~hwxi/academic/papers/popl99.pdf
genre DML
genre_facet DML
op_source http://www.cs.bu.edu/~hwxi/academic/papers/popl99.pdf
op_relation http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.116.4393
http://www.cs.bu.edu/~hwxi/academic/papers/popl99.pdf
op_rights Metadata may be used without restrictions as long as the oai identifier remains attached to it.
_version_ 1766397263371829248