This article is about type systems in computer programming. For the formal study of type systems, see Type theory.
This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations.(October 2010) (Learn how and when to remove this template message)
This article is written like a personal reflection, personal essay, or argumentative essay that states a Wikipedia editor's personal feelings or presents an original argument about a topic. Please help improve it by rewriting it in an encyclopedic style.(July 2016) (Learn how and when to remove this template message)
Type systems
General concepts
Type safety
Strong vs. weak typing
Major categories
Static vs. dynamic
Manifest vs. inferred
Nominal vs. structural
Duck typing
Minor categories
Abstract
Dependent
Flow-sensitive
Gradual
Intersection
Latent
Refinement
Substructural
Unique
Session
v
t
e
In computer programming, a type system is a logical system comprising a set of rules that assigns a property called a type (for example, integer, floating point, string) to every term (a word, phrase, or other set of symbols). Usually the terms are various language constructs of a computer program, such as variables, expressions, functions, or modules.[1] A type system dictates the operations that can be performed on a term. For variables, the type system determines the allowed values of that term. Type systems formalize and enforce the otherwise implicit categories the programmer uses for algebraic data types, data structures, or other components (e.g. "string", "array of float", "function returning boolean").
Type systems are often specified as part of programming languages and built into interpreters and compilers, although the type system of a language can be extended by optional tools that perform added checks using the language's original type syntax and grammar. The main purpose of a type system in a programming language is to reduce possibilities for bugs in computer programs due to type errors.[2] The given type system in question determines what constitutes a type error, but in general, the aim is to prevent operations expecting a certain kind of value from being used with values of which that operation does not make sense (validity errors). Type systems allow defining interfaces between different parts of a computer program, and then checking that the parts have been connected in a consistent way. This checking can happen statically (at compile time), dynamically (at run time), or as a combination of both. Type systems have other purposes as well, such as expressing business rules, enabling certain compiler optimizations, allowing for multiple dispatch, and providing a form of documentation.
^Pierce 2002, p. 1: "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."
^Cardelli 2004, p. 1: "The fundamental purpose of a type system is to prevent the occurrence of execution errors during the running of a program."
In computer programming, a typesystem is a logical system comprising a set of rules that assigns a property called a type (for example, integer, floating...
computer science, a typesystem is nominal (also called nominative or name-based) if compatibility and equivalence of data types is determined by explicit...
Substructural typesystems are a family of typesystems analogous to substructural logics where one or more of the structural rules are absent or only...
NET Framework, the Common TypeSystem (CTS) is a standard that specifies how type definitions and specific values of types are represented in computer...
prevents type errors. Typesystem, defines a programming language's response to data types. Type (model theory) Type theory, basis for the study of type systems...
of the features of the typesystems and type checking of multiple programming languages. Brief definitions A nominal typesystem means that the language...
The Saffron TypeSystem is a system for rendering high-quality scalable type on digital displays. It was developed by Mitsubishi Electric Research Laboratories...
as proof theory and type theory, a pure typesystem (PTS), previously known as a generalized typesystem (GTS), is a form of typed lambda calculus that...
science, a type theory is the formal presentation of a specific typesystem. Type theory is the academic study of typesystems. Some type theories serve...
The bacterial type IV secretion system, also known as the type IV secretion system or the T4SS, is a secretion protein complex found in gram negative bacteria...
advanced typesystems such as substructural typesystems, such definitions provide no intuitive meaning of the types. Representation A type is defined...
Movable type (US English; moveable type in British English) is the system and technology of printing and typography that uses movable components to reproduce...
The Typesystem is a classification system used by the British Royal Navy to classify surface escorts by function. The system evolved in the early 1950s...
The type 2 secretion system (often referred to as the type II secretion system or by the initials T2SS) is a type of protein secretion machinery found...
The Andre Walker Hair TypingSystem, also known as The Hair Chart, is a classification system for hair types created in the 1990s by Oprah Winfrey's stylist...
The type III secretion system (T3SS or TTSS) is one of the bacterial secretion systems used by bacteria to secrete their effector proteins into the host's...
colloquially classified is whether the language's typesystem makes it strongly typed or weakly typed (loosely typed). However, there is no precise technical definition...
transfusions, it is the most important of the 44 different blood type (or group) classification systems currently recognized by the International Society of Blood...
under static enforcement. In the context of static (compile-time) typesystems, type safety usually involves (among other things) a guarantee that the...
dependent type is a type whose definition depends on a value. It is an overlapping feature of type theory and typesystems. In intuitionistic type theory...
computer science, a typesystem can be described as a syntactic framework which contains a set of rules that are used to assign a type property (int, boolean...
defined by a formal language. Languages usually provide features such as a typesystem, variables and mechanisms for error handling. An implementation of a...
component system. This is consistent with a traditional use of system term in general systems engineering with Common Lisp Object System and typesystem as examples...
System F (also polymorphic lambda calculus or second-order lambda calculus) is a typed lambda calculus that introduces, to simply typed lambda calculus...
computer science, type conversion, type casting, type coercion, and type juggling are different ways of changing an expression from one data type to another...