Dependent Types in Practical Programming (Extended Abstract)

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 inference of significantly more precise type information, facilitat...

Full description

Bibliographic Details
Main Authors: Hongwei Xi, Frank Pfenning
Other Authors: The Pennsylvania State University CiteSeerX Archives
Format: Text
Language:English
Published: 1998
Subjects:
DML
Online Access:http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.17.1877
http://www-internal.cse.ogi.edu/PacSoft/publications/1998/popl99.pdf
id ftciteseerx:oai:CiteSeerX.psu:10.1.1.17.1877
record_format openpolar
spelling ftciteseerx:oai:CiteSeerX.psu:10.1.1.17.1877 2023-05-15T16:01:20+02:00 Dependent Types in Practical Programming (Extended Abstract) Hongwei Xi Frank Pfenning The Pennsylvania State University CiteSeerX Archives 1998 application/pdf http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.17.1877 http://www-internal.cse.ogi.edu/PacSoft/publications/1998/popl99.pdf en eng http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.17.1877 http://www-internal.cse.ogi.edu/PacSoft/publications/1998/popl99.pdf Metadata may be used without restrictions as long as the oai identifier remains attached to it. http://www-internal.cse.ogi.edu/PacSoft/publications/1998/popl99.pdf text 1998 ftciteseerx 2016-01-07T15:58:24Z 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 inference of significantly more precise type information, facilitating 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 suficiently annotated program in DML(C) can be reduced to constraint satisfaction in the constraint domain . 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, including 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 including datatype declarations, higher-order functions, general recursions, let-polymorphism, mutable references, and exceptions. In addition, we have finished a prototype implementation of DML(C) for an integer constraint domain C, where constraints are linear inequalities (Xi and Pfenning 1998). Text DML Unknown
institution Open Polar
collection Unknown
op_collection_id ftciteseerx
language English
description 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 inference of significantly more precise type information, facilitating 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 suficiently annotated program in DML(C) can be reduced to constraint satisfaction in the constraint domain . 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, including 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 including datatype declarations, higher-order functions, general recursions, let-polymorphism, mutable references, and exceptions. In addition, we have finished a prototype implementation of DML(C) for an integer constraint domain C, where constraints are linear inequalities (Xi and Pfenning 1998).
author2 The Pennsylvania State University CiteSeerX Archives
format Text
author Hongwei Xi
Frank Pfenning
spellingShingle Hongwei Xi
Frank Pfenning
Dependent Types in Practical Programming (Extended Abstract)
author_facet Hongwei Xi
Frank Pfenning
author_sort Hongwei Xi
title Dependent Types in Practical Programming (Extended Abstract)
title_short Dependent Types in Practical Programming (Extended Abstract)
title_full Dependent Types in Practical Programming (Extended Abstract)
title_fullStr Dependent Types in Practical Programming (Extended Abstract)
title_full_unstemmed Dependent Types in Practical Programming (Extended Abstract)
title_sort dependent types in practical programming (extended abstract)
publishDate 1998
url http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.17.1877
http://www-internal.cse.ogi.edu/PacSoft/publications/1998/popl99.pdf
genre DML
genre_facet DML
op_source http://www-internal.cse.ogi.edu/PacSoft/publications/1998/popl99.pdf
op_relation http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.17.1877
http://www-internal.cse.ogi.edu/PacSoft/publications/1998/popl99.pdf
op_rights Metadata may be used without restrictions as long as the oai identifier remains attached to it.
_version_ 1766397238950494208