Dependent types in practical programming

@inproceedings{Xi1999DependentTI,
  title={Dependent types in practical programming},
  author={H. Xi and F. Pfenning},
  booktitle={POPL '99},
  year={1999}
}
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… Expand
AN APPROACH TO FACILITATING VERIFICATION OF LINEAR CONSTRAINTS
TLDR
This study is focussed on solving and verifying the linear integer constraints generated during the type-checking of Xanadu program, and presents a two-tier constraint solver, based on the well-known linear programming algorithm, the Simplex method. Expand
Dependent ML An approach to practical programming with dependent types
  • H. Xi
  • Computer Science
  • Journal of Functional Programming
  • 2007
TLDR
The language design makes it both natural and straightforward to accommodate dependent types in the presence of effects such as references and exceptions, and allows for specification and inference of significantly more precise type information, facilitating program error detection and compiler optimization. Expand
Programming with binders and indexed data-types
We show how to combine a general purpose type system for an existing language with support for programming with binders and contexts by refining the type system of ML with a restricted form ofExpand
Dependent Types for Class-based Mutable Objects
TLDR
This is the first dependently-typed language with mutable objects that the authors know of to bring classes and index refinements into play, enabling types (classes) to be refined by indices drawn from some constraint domain. Expand
Dependent types for safe systems software
TLDR
Deputy is presented, a dependent type framework that allows programmers to annotate existing C code with more refined types and is shown how it can be instantiated to support the dependent types required by modern systems code. Expand
Practical implementation of a dependently typed functional programming language
TLDR
This thesis considers the practical implementation of a dependently typed programming language using the Epigram notation, and sees that a dependent type theory is an effective base on which to build a feasible programming language. Expand
A multivalued language with a dependent type system
TLDR
A new dependently-typed functional programming language based on two key ideas, which makes no distinction between expressions, types, kinds, and sorts-everything is a term, and is considered a good tradeoff to get an expressive language without the pain of some dependent type systems. Expand
Imperative objects with dependent types
TLDR
This work proposes to incorporate a system of index refinements in a small, class-based, imperative, object-oriented language, and designed and implemented an expressive and decidable type system. Expand
A unified system of type refinements
TLDR
This work presents a system of type refinements that unifies and extends past work on datasort and index refinements, and provides unified mechanisms of definite types, such as intersections, and indefinite types,such as unions. Expand
Applied Type System: An Approach to Practical Programming with Theorem-Proving
  • H. Xi
  • Computer Science
  • ArXiv
  • 2017
TLDR
It is demonstrated that ATS can readily accommodate a paradigm referred to as programming with theorem-proving (PwTP) in which programs and proofs are constructed in a syntactically intertwined manner, yielding a practical approach to internalizing constraint-solving needed during type-checking. Expand
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 156 REFERENCES
Refinement types for ML
TLDR
A type system called refinement types is described, which is an example of a new way to make this tradeoff, as well as a potentially useful system in itself. Expand
Dead Code Elimination through Dependent Types
  • H. Xi
  • Computer Science
  • PADL
  • 1999
TLDR
This work presents a novel approach to eliminating unreachable matching clauses through the use of the dependent type system of DML, a functional programming language that enriches ML with a restricted form of dependent types. Expand
A simple applicative language: mini-ML
TLDR
This work restricts ML to a central part christened Mini-ML, a simple typed ~-calculus with constants, products, conditionals, and recursive function definitions, and gives complementary rules to deal with products and lztre~. Expand
A Theory of Type Polymorphism in Programming
  • R. Milner
  • Computer Science
  • J. Comput. Syst. Sci.
  • 1978
TLDR
This work presents a formal type discipline for polymorphic procedures in the context of a simple programming language, and a compile time type-checking algorithm w which enforces the discipline. Expand
Compiling with Types
TLDR
This thesis provides a general framework, called type-directed compilation, that allows compiler writers to take advantage of types at all stages in compilation, and builds a new compiler for SML called TIL that eliminates most restrictions on the representations of values. Expand
From ML to Ada: Strongly-Typed Language Interoperability via Source Translation
TLDR
A system that supports source-level integration of ML-like functional language code with ANSI C or Ada83 code, and offers simple, efficient, type-safe inter-operation between new functional code components and ‘legacy’ third-generation-language components. Expand
Design and implementation of practical constraint logic programming systems
TLDR
A systematic approach to the design and implementation of practical CLP systems is described, showing how this technology can be extended so that the efficiency of CLP(R) approaches that of imperative programming languages. Expand
From system F to typed assembly language
TLDR
The TAL presented is based on a conventional RISC assembly language, but its static type system provides support for enforcing high-level language abstractions, such as closures, tuples, and objects, as well as user-defined abstract data types. Expand
Elf: a language for logic definition and verified metaprogramming
  • F. Pfenning
  • Mathematics, Computer Science
  • [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science
  • 1989
TLDR
Novel features of Elf include: the Elf search process automatically constructs terms that can represent object-logic proofs, and thus a program need not construct them explicitly; and the partial correctness of metaprograms with respect to a given logic can be expressed and proved in Elf itself. Expand
TIL: a type-directed optimizing compiler for ML
TLDR
TIL introduced and popularized the notion of a certifying compiler, which attaches a checkable certificate of safety to its generated code, inspiring the development of Proof-Carrying Code and Typed Assembly Language as certified object code formats. Expand
...
1
2
3
4
5
...