Results 1 
5 of
5
Dependently Typed Data Structures
, 1999
"... The mechanism for declaring datatypes in functional programming languages such as ML and Haskell is of great use in practice. This mechanism, however, often suffers from its imprecision in capturing the invariants inherent in data structures. We remedy the situation with the introduction of dependen ..."
Abstract

Cited by 14 (3 self)
 Add to MetaCart
The mechanism for declaring datatypes in functional programming languages such as ML and Haskell is of great use in practice. This mechanism, however, often suffers from its imprecision in capturing the invariants inherent in data structures. We remedy the situation with the introduction of dependent datatypes so that we can model data structures with significantly more accuracy. We present a few interesting examples such as implementations of redblack trees and binomial heaps to illustrate the use of dependent datatypes in capturing some sophisticated invariants in data structures. We claim that dependent datatypes can enable the programmer to implement algorithms in a way that is more robust and easier to understand.
by
, 2003
"... The notion of dependent types has been around for more than three decades, but a major complication resulting from introducing such a type discipline is that pure type inference for the enriched system is no longer possible. However, in the late nineties, a restricted form of dependent types was int ..."
Abstract
 Add to MetaCart
The notion of dependent types has been around for more than three decades, but a major complication resulting from introducing such a type discipline is that pure type inference for the enriched system is no longer possible. However, in the late nineties, a restricted form of dependent types was introduced in practical programming to capture more program properties through types and thereby detect more program errors at compiletime than effected by the strong type discipline in Standard ML or Java. Xanadu, a dependently typed imperative programming language, was the result of enriching the type system of imperative programming paradigm with a restricted form of dependent types. For the effective compilation of Xanadu program, it is crucial to successfully solve the linear constraints generated during its typechecking. This study is focussed on solving and verifying the linear integer constraints generated during the typechecking of Xanadu program. We present a twotier constraint solver, based on the wellknown linear programming algorithm, the Simplex method. The first tier uses the twophase Simplex method to find a rational solution for a given set of constraints. If no rational solution exists, then no integer solution could
Imperative Programming with Dependent Types (Extended Abstract)
, 2000
"... In this paper, we enrich imperative programming with a form of dependent types. We start with explaining some motivations for this enrichment and mentioning some major obstacles that need to be overcome. We then present the design of a source level dependently typed imperative programming language X ..."
Abstract
 Add to MetaCart
In this paper, we enrich imperative programming with a form of dependent types. We start with explaining some motivations for this enrichment and mentioning some major obstacles that need to be overcome. We then present the design of a source level dependently typed imperative programming language Xanadu, forming both static and dynamic semantics and then establishing the type soundness theorem. We also present realistic examples, which have all been verified in a prototype implementation, in support of the practicality of Xanadu. We claim that the language design of Xanadu is novel and it serves as an informative example that demonstrates a means to combine imperative programming with dependent types.