Dependent ML is an experimental
functional programming language
In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that ...
proposed by Hongwei Xi and
Frank Pfenning
Frank Pfenning is a German-American professor of computer science, adjunct professor in the department of philosophy, and head of the Computer Science Department at Carnegie Mellon University.
Education and career
Pfenning grew up in Rüssels ...
. Dependent ML extends
ML by a restricted notion of
dependent types
In computer science and logic, a dependent type is a type whose definition depends on a value. It is an overlapping feature of type theory and type systems. In intuitionistic type theory, dependent types are used to encode logic's quantifiers lik ...
: types may be dependent on static indices of type Nat (
natural number
In mathematics, the natural numbers are those numbers used for counting (as in "there are ''six'' coins on the table") and ordering (as in "this is the ''third'' largest city in the country").
Numbers used for counting are called ''cardinal ...
s). Dependent ML employs a constraint theorem prover to decide a strong equational theory over the index expressions.
DML's types are not dependent on runtime values - there is still a
phase distinction between compilation and execution of the program.
[Aspinall & Hofmann 2005. p. 75.] By restricting the generality of full dependent types
type checking
In computer programming, a type system is a logical system comprising a set of rules that assigns a property called a type to every "term" (a word, phrase, or other set of symbols). Usually the terms are various constructs of a computer progr ...
remains
decidable, but
type inference
Type inference refers to the automatic detection of the type of an expression in a formal language. These include programming languages and mathematical type systems, but also natural languages in some branches of computer science and linguistic ...
becomes undecidable.
Dependent ML has been superseded by
ATS and is no longer under active development.
References
Further reading
*
*
David Aspinall and
Martin Hofmann (2005). "Dependent Types". In
Pierce, Benjamin C. (ed.) ''Advanced Topics in Types and Programming Languages''. MIT Press.
External links
*Th
home page of DML
ML programming language family
Declarative programming languages
Functional languages
Dependently typed languages
Programming languages created in the 1990s
Discontinued programming languages
{{compu-lang-stub