HOME

TheInfoList



OR:

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