~ Office Supplies ~~ Buy Posters ~~ A-Z Products ~~ Website Advertising


Type theory - Wikipedia

<<Up     Contents

Type theory

This article should be merged with datatype

At the broadest level, type theory is the branch of mathematics and logic that concerns itself with classifying entities into sets called types. In this sense, it is related to the metaphysical notion of 'type'. Modern type theory was invented partly in response to Russell's paradox, and features prominently in Russell and Whitehead's Principia Mathematica.

With the rise of powerful programmable computers, and the development of programming languages for same, type theory has found practical application in the development of programming language type systems. Definitions of "type system" in the context of programming languages vary, but the following definition due to Benjamin C. Pierce[?] roughly corresponds to the current consensus in the type theory community:

[A type system is a] tractable syntactic method for proving the absence of certain program behaviors by classifying phrases according to the kinds of values they compute.
(Types and Programming Languages, MIT Press, 2002)

In other words, a type system divides program values into sets called types (this is called a "type assignment"), and makes certain program behaviors illegal on the basis of the types that are thus assigned. For example, a type system may classify the value "hello" as a string and the value 5 as a number, and prohibit the programmer from adding "hello" to 5 based on that type assignment. In this type system, the program

 "hello" + 5

would be illegal. Hence, any program permitted by the type system would be provably free from the erroneous behavior of adding strings and numbers.

The design and implementation of type systems is a topic nearly as broad as the topic of programming languages itself. In fact, type theory proponents commonly proclaim that the design of type systems is the very essence of programming language design: "Design the type system correctly, and the language will design itself."

Table of contents showTocToggle("show","hide")
1 Major historical developments
2 Practical impact of type theory
3 Connections to constructive logic
4 Other topics we may want to add here
5 External links:

Note: Static type systems vs. dynamic types

Note that type theory, as described herein, refers to static typing disciplines. Programming systems and languages that employ dynamic typing do not prove the absence of any program behavior; they merely raise an error at runtime, when the program attempts to execute this behavior. Some claim that "dynamic typing" is a misnomer for this reason. In any case, the two should not be confused.

Major historical developments

Practical impact of type theory

Connections to constructive logic

Other topics we may want to add here

External links:

wikipedia.org dumped 2003-03-17 with terodump




 
 
213 carat Blue LAPIS LAZULI gold Pyrite gem stone Cab Cabbing cabochon wirewrap rough gemstone 42 gr
 213 carat Blue LAPIS LAZULI gold Pyrite Cab Cabbing cabochon wirewrap 42 gr 
 
66 carat huge OPTICAL QUARTZ gem jewel Faceted 24 mm round portuguese cut loose collector gemstone
 66 carat huge OPTICAL QUARTZ jewel ed 24 mm round portuguese cut loose collector  
 
173 carats gray AGATE gem Polished slab rectangle block Cabbing cab cabochon rough gemstone 34 grams
 173 carats gray AGATE Polished slab rectangle block Cabbing cab cabochon 34 grams 
 
Red green AMMOLITE gem stone Freeform cabochon cabbing jewelry rough Ammonite opal 10 carats 2 grams
 Red green AMMOLITE Freeform cabochon cabbing jewelry Ammonite opal 10 carats 2 grams 
 
100 ct Fluorescent pink white MANGANOCALCITE gem stone Hand polished jewelry rough gemstones 20 gram
 100 ct Fluorescent pink white MANGANOCALCITE Hand polished jewelry 20 gram