MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Dependent Types in Practical Programming (Extended Abstract) (1999)

by Hongwei Xi ,  Frank Pfenning
IN SYMPOSIUM ON THE PRINCIPLES OF PROGRAMMING LANGUAGES ’99
Add To MetaCart

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, 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 sufficiently annotated program in DML(C) can be reduced to constraint satisfaction in the constraint domain C. We exhibit the unobtrusiveness of our approach through practical examples and prove that DML(C) is conservative over ML. The main ...

Citations

1415 The Definition of Standard ML – Milner, Tofte, et al. - 1990
869 Proof-carrying code – Necula - 1997
544 A framework for defining logics – Harper, Honsell, et al. - 1993
345 Computational lambda-calculus and monads – Moggi - 1989
221 The design and implementation of a certifying compiler – Necula - 1998
221 Dependent types in practical programming – Xi, Pfenning - 1999
211 Report on the programming language Haskell: A non-strict, purely functional language – Hudak, Jones, et al. - 1992
179 PVS: Combining specification, proof checking, and model checking – Owre, Rajan, et al. - 1997
168 Cayenne – a language with dependent types – Augustsson - 1998
149 Eliminating array bound checking through dependent types – Xi, Pfenning - 1998
144 Reasoning about programs in continuation-passing style – Sabry, Felleisen - 1993
120 Refinement types for ML – Freeman, Pfenning - 1991
115 Local Type Inference – Pierce, Turner - 1998
90 Proving the correctness of reactive systems using sized types – Hughes, Pareto, et al. - 1996
50 Toward formal development of ML programs: foundations and methodology – Sannella, Tarlecki - 1989
43 The Coq proof assistant user’s guide. Rapport Techniques 154 – Dowek, Felty, et al. - 1993
38 Type inference with constrained types – Sulzmann, Odersky, et al. - 1997
33 PX - A computational logic – Hayashi, Nakano - 1988
27 Functional unparsing – Danvy - 1998
27 Indexed types – Zenger - 1997
23 Indizierte Typen – Zenger - 1999
22 A proof environment for the development of group communication systems – KREITZ, HAYDEN, et al. - 1998
20 Dead code elimination through dependent types – Xi - 1999
18 Synthesizing proofs from programs in the Calculus of Inductive Constructions – Parent - 1995
17 Shape checking of array programs – Jay, Sekanina - 1996
6 Some examples of DML programming. Available at http://www.cs.cmu.edu/~hwxi/DML/examples – Xi - 1997
5 Le langage Caml – Weis, Leroy - 1993