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...
Main Authors: | , |
---|---|
Other Authors: | |
Format: | Text |
Language: | English |
Subjects: | |
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 |