Get it on Google Play
New! Download Unionpedia on your Android™ device!
Faster access than browser!

Type system

Index Type system

In programming languages, a type system is a set of rules that assigns a property called type to the various constructs of a computer program, such as variables, expressions, functions or modules. [1]

141 relations: Abstract data type, Abstraction (computer science), ACM Computing Surveys, Alex Martelli, Algebraic data type, Array data structure, Assignment (computer science), Association for Computing Machinery, Associative array, Bit, Bounds checking, Brian Kernighan, C (programming language), C Sharp (programming language), C++, Character (computing), Class (computer programming), Clean (programming language), Clojure, Code coverage, Common Lisp, Comparison of programming languages by type system, Compile time, Compiler, Computer, Computer memory, Computer program, Correctness (computer science), Coupling (computer programming), Covariance and contravariance (computer science), Cython, Data type, Decidability (logic), Dependent ML, Dependent type, Disjoint union, Division by zero, Documentation, Downcasting, Duck test, Duck typing, Dynamic dispatch, Dynamic programming language, Effect system, Empirical evidence, Epigram (programming language), Eval, Existential quantification, Expression (computer science), Extended static checking, ..., F Sharp (programming language), Floating-point arithmetic, Formal language, Formal methods, Formal verification, Generalized algebraic data type, Generic programming, Gilad Bracha, Gordon Plotkin, Gradual typing, Halting problem, Haskell (programming language), IEEE 754 revision, Immutable object, Infinite loop, Instruction set architecture, Integer, Interface (computing), Interpreter (computing), James Whitcomb Riley, Java (programming language), JavaScript, John C. Mitchell, Kind (type theory), Late binding, Linear logic, Lint (software), Liskov substitution principle, Logic error, Memory address, Memory safety, Metaclass, Metaprogramming, Method (computer programming), Microsoft, Microsoft Developer Network, ML (programming language), Mock object, Modular programming, Multiple dispatch, Nominal type system, Object (computer science), OCaml, Opcode, Perl, Perl 6, PHP, Polymorphism (computer science), Presburger arithmetic, Program analysis, Programming language, PurifyPlus, Python (programming language), Racket (programming language), Record (computer science), Recursive set, Referential transparency, Refinement (computing), Reflection (computer programming), Ruby (programming language), Run time (program lifecycle phase), Scala (programming language), Singularity (operating system), Software bug, Software testing, Static program analysis, String (computer science), Structural type system, Subroutine, Substructural type system, Subtyping, System F, Template (C++), Trade-off, Type inference, Type introspection, Type rule, Type safety, Type signature, Type system, Type theory, Typed lambda calculus, Undecidable problem, Union type, Uniqueness type, University of Chicago, Usenet newsgroup, Variable (computer science), Variant type, Visual Basic, Visual Basic .NET. Expand index (91 more) »

Abstract data type

In computer science, an abstract data type (ADT) is a mathematical model for data types, where a data type is defined by its behavior (semantics) from the point of view of a user of the data, specifically in terms of possible values, possible operations on data of this type, and the behavior of these operations.

New!!: Type system and Abstract data type · See more »

Abstraction (computer science)

In software engineering and computer science, abstraction is.

New!!: Type system and Abstraction (computer science) · See more »

ACM Computing Surveys

ACM Computing Surveys (CSUR) is a peer reviewed scientific journal published by the Association for Computing Machinery.

New!!: Type system and ACM Computing Surveys · See more »

Alex Martelli

Alex Martelli (born October 5, 1955) is an Italian computer engineer and Fellow of the Python Software Foundation.

New!!: Type system and Alex Martelli · See more »

Algebraic data type

In computer programming, especially functional programming and type theory, an algebraic data type is a kind of composite type, i.e., a type formed by combining other types.

New!!: Type system and Algebraic data type · See more »

Array data structure

In computer science, an array data structure, or simply an array, is a data structure consisting of a collection of elements (values or variables), each identified by at least one array index or key.

New!!: Type system and Array data structure · See more »

Assignment (computer science)

In computer programming, an assignment statement sets and/or re-sets the value stored in the storage location(s) denoted by a variable name; in other words, it copies a value into the variable.

New!!: Type system and Assignment (computer science) · See more »

Association for Computing Machinery

The Association for Computing Machinery (ACM) is an international learned society for computing.

New!!: Type system and Association for Computing Machinery · See more »

Associative array

In computer science, an associative array, map, symbol table, or dictionary is an abstract data type composed of a collection of (key, value) pairs, such that each possible key appears at most once in the collection.

New!!: Type system and Associative array · See more »


The bit (a portmanteau of binary digit) is a basic unit of information used in computing and digital communications.

New!!: Type system and Bit · See more »

Bounds checking

In computer programming, bounds checking is any method of detecting whether a variable is within some bounds before it is used.

New!!: Type system and Bounds checking · See more »

Brian Kernighan

Brian Wilson Kernighan (born January 1, 1942) is a Canadian computer scientist who worked at Bell Labs alongside Unix creators Ken Thompson and Dennis Ritchie and contributed to the development of Unix.

New!!: Type system and Brian Kernighan · See more »

C (programming language)

C (as in the letter ''c'') is a general-purpose, imperative computer programming language, supporting structured programming, lexical variable scope and recursion, while a static type system prevents many unintended operations.

New!!: Type system and C (programming language) · See more »

C Sharp (programming language)

C# (/si: ʃɑːrp/) is a multi-paradigm programming language encompassing strong typing, imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines.

New!!: Type system and C Sharp (programming language) · See more »


C++ ("see plus plus") is a general-purpose programming language.

New!!: Type system and C++ · See more »

Character (computing)

In computer and machine-based telecommunications terminology, a character is a unit of information that roughly corresponds to a grapheme, grapheme-like unit, or symbol, such as in an alphabet or syllabary in the written form of a natural language.

New!!: Type system and Character (computing) · See more »

Class (computer programming)

In object-oriented programming, a class is an extensible program-code-template for creating objects, providing initial values for state (member variables) and implementations of behavior (member functions or methods).

New!!: Type system and Class (computer programming) · See more »

Clean (programming language)

Clean is a general-purpose purely functional computer programming language.

New!!: Type system and Clean (programming language) · See more »


Clojure (like "closure") is a dialect of the Lisp programming language.

New!!: Type system and Clojure · See more »

Code coverage

In computer science, test coverage is a measure used to describe the degree to which the source code of a program is executed when a particular test suite runs.

New!!: Type system and Code coverage · See more »

Common Lisp

Common Lisp (CL) is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 (R2004) (formerly X3.226-1994 (R1999)).

New!!: Type system and Common Lisp · See more »

Comparison of programming languages by type system

This comparison of programming languages (type system) compares the features of type systems or their type checking for multiple programming languages.

New!!: Type system and Comparison of programming languages by type system · See more »

Compile time

In computer science, compile time refers to either the operations performed by a compiler (the "compile-time operations"), programming language requirements that must be met by source code for it to be successfully compiled (the "compile-time requirements"), or properties of the program that can be reasoned about during compilation.

New!!: Type system and Compile time · See more »


A compiler is computer software that transforms computer code written in one programming language (the source language) into another programming language (the target language).

New!!: Type system and Compiler · See more »


A computer is a device that can be instructed to carry out sequences of arithmetic or logical operations automatically via computer programming.

New!!: Type system and Computer · See more »

Computer memory

In computing, memory refers to the computer hardware integrated circuits that store information for immediate use in a computer; it is synonymous with the term "primary storage".

New!!: Type system and Computer memory · See more »

Computer program

A computer program is a collection of instructions for performing a specific task that is designed to solve a specific class of problems.

New!!: Type system and Computer program · See more »

Correctness (computer science)

In theoretical computer science, correctness of an algorithm is asserted when it is said that the algorithm is correct with respect to a specification.

New!!: Type system and Correctness (computer science) · See more »

Coupling (computer programming)

In software engineering, coupling is the degree of interdependence between software modules; a measure of how closely connected two routines or modules are;ISO/IEC/IEEE 24765:2010 Systems and software engineering — Vocabulary the strength of the relationships between modules.

New!!: Type system and Coupling (computer programming) · See more »

Covariance and contravariance (computer science)

Many programming language type systems support subtyping.

New!!: Type system and Covariance and contravariance (computer science) · See more »


Cython is a superset of the Python programming language, designed to give C-like performance with code that is written mostly in Python.

New!!: Type system and Cython · See more »

Data type

In computer science and computer programming, a data type or simply type is a classification of data which tells the compiler or interpreter how the programmer intends to use the data.

New!!: Type system and Data type · See more »

Decidability (logic)

In logic, the term decidable refers to the decision problem, the question of the existence of an effective method for determining membership in a set of formulas, or, more precisely, an algorithm that can and will return a boolean true or false value that is correct (instead of looping indefinitely, crashing, returning "don't know" or returning a wrong answer).

New!!: Type system and Decidability (logic) · See more »

Dependent ML

Dependent ML is an experimental functional programming language proposed by Hongwei Xi and Frank Pfenning.

New!!: Type system and Dependent ML · See more »

Dependent type

In computer science and logic, a dependent type is a type whose definition depends on a value.

New!!: Type system and Dependent type · See more »

Disjoint union

In set theory, the disjoint union (or discriminated union) of a family of sets is a modified union operation that indexes the elements according to which set they originated in.

New!!: Type system and Disjoint union · See more »

Division by zero

In mathematics, division by zero is division where the divisor (denominator) is zero.

New!!: Type system and Division by zero · See more »


Documentation is a set of documents provided on paper, or online, or on digital or analog media, such as audio tape or CDs.

New!!: Type system and Documentation · See more »


In class-based programming, downcasting or type refinement is the act of casting a reference of a base class to one of its derived classes.

New!!: Type system and Downcasting · See more »

Duck test

The duck test is a form of abductive reasoning.

New!!: Type system and Duck test · See more »

Duck typing

In computer programming, duck typing is an application of the duck test in type safety.

New!!: Type system and Duck typing · See more »

Dynamic dispatch

In computer science, dynamic dispatch is the process of selecting which implementation of a polymorphic operation (method or function) to call at run time.

New!!: Type system and Dynamic dispatch · See more »

Dynamic programming language

Dynamic programming language, in computer science, is a class of high-level programming languages which, at runtime, execute many common programming behaviors that static programming languages perform during compilation.

New!!: Type system and Dynamic programming language · See more »

Effect system

In computing, an effect system is a formal system which describes the computational effects of computer programs, such as side effects.

New!!: Type system and Effect system · See more »

Empirical evidence

Empirical evidence, also known as sensory experience, is the information received by means of the senses, particularly by observation and documentation of patterns and behavior through experimentation.

New!!: Type system and Empirical evidence · See more »

Epigram (programming language)

Epigram is a functional programming language with dependent types.

New!!: Type system and Epigram (programming language) · See more »


In some programming languages, eval is a function which evaluates a string as though it were an expression and returns a result; in others, it executes multiple lines of code as though they had been included instead of the line including the eval.

New!!: Type system and Eval · See more »

Existential quantification

In predicate logic, an existential quantification is a type of quantifier, a logical constant which is interpreted as "there exists", "there is at least one", or "for some".

New!!: Type system and Existential quantification · See more »

Expression (computer science)

An expression in a programming language is a combination of one or more constants, variables, operators, and functions that the programming language interprets (according to its particular rules of precedence and of association) and computes to produce ("to return", in a stateful environment) another value.

New!!: Type system and Expression (computer science) · See more »

Extended static checking

Extended static checking (ESC) is a collective name for a range of techniques for statically checking the correctness of various program constraints.

New!!: Type system and Extended static checking · See more »

F Sharp (programming language)

F# (pronounced F sharp) is a strongly typed, multi-paradigm programming language that encompasses functional, imperative, and object-oriented programming methods.

New!!: Type system and F Sharp (programming language) · See more »

Floating-point arithmetic

In computing, floating-point arithmetic is arithmetic using formulaic representation of real numbers as an approximation so as to support a trade-off between range and precision.

New!!: Type system and Floating-point arithmetic · See more »

Formal language

In mathematics, computer science, and linguistics, a formal language is a set of strings of symbols together with a set of rules that are specific to it.

New!!: Type system and Formal language · See more »

Formal methods

In computer science, specifically software engineering and hardware engineering, formal methods are a particular kind of mathematically based techniques for the specification, development and verification of software and hardware systems.

New!!: Type system and Formal methods · See more »

Formal verification

In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal methods of mathematics.

New!!: Type system and Formal verification · See more »

Generalized algebraic data type

In functional programming, a generalized algebraic data type (GADT, also first-class phantom type, guarded recursive datatype, or equality-qualified type) is a generalization of parametric algebraic data types.

New!!: Type system and Generalized algebraic data type · See more »

Generic programming

Generic programming is a style of computer programming in which algorithms are written in terms of types to-be-specified-later that are then instantiated when needed for specific types provided as parameters.

New!!: Type system and Generic programming · See more »

Gilad Bracha

Gilad Bracha is the creator of the Newspeak programming language, a software engineer at Google and a member of the Dart (programming language) team.

New!!: Type system and Gilad Bracha · See more »

Gordon Plotkin

Gordon David Plotkin, FRS, FRSE (born 9 September 1946) is a theoretical computer scientist in the School of Informatics at the University of Edinburgh.

New!!: Type system and Gordon Plotkin · See more »

Gradual typing

Gradual typing is a type system in which some variables and expressions may be given types and the correctness of the typing is checked at compile-time (which is static typing) and some expressions may be left untyped and eventual type errors are reported at run-time (which is dynamic typing).

New!!: Type system and Gradual typing · See more »

Halting problem

In computability theory, the halting problem is the problem of determining, from a description of an arbitrary computer program and an input, whether the program will finish running (i.e., halt) or continue to run forever.

New!!: Type system and Halting problem · See more »

Haskell (programming language)

Haskell is a standardized, general-purpose compiled purely functional programming language, with non-strict semantics and strong static typing.

New!!: Type system and Haskell (programming language) · See more »

IEEE 754 revision

IEEE 754-2008 (previously known as IEEE 754r) was published in August 2008 and is a significant revision to, and replaces, the IEEE 754-1985 floating point standard.

New!!: Type system and IEEE 754 revision · See more »

Immutable object

In object-oriented and functional programming, an immutable object (unchangeable object) is an object whose state cannot be modified after it is created.

New!!: Type system and Immutable object · See more »

Infinite loop

An infinite loop (or endless loop) is a sequence of instructions in a computer program which loops endlessly, either due to the loop having no terminating condition, having one that can never be met, or one that causes the loop to start over.

New!!: Type system and Infinite loop · See more »

Instruction set architecture

An instruction set architecture (ISA) is an abstract model of a computer.

New!!: Type system and Instruction set architecture · See more »


An integer (from the Latin ''integer'' meaning "whole")Integer 's first literal meaning in Latin is "untouched", from in ("not") plus tangere ("to touch").

New!!: Type system and Integer · See more »

Interface (computing)

In computing, an interface is a shared boundary across which two or more separate components of a computer system exchange information.

New!!: Type system and Interface (computing) · See more »

Interpreter (computing)

In computer science, an interpreter is a computer program that directly executes, i.e. performs, instructions written in a programming or scripting language, without requiring them previously to have been compiled into a machine language program.

New!!: Type system and Interpreter (computing) · See more »

James Whitcomb Riley

James Whitcomb Riley (October 7, 1849 – July 22, 1916) was an American writer, poet, and best-selling author.

New!!: Type system and James Whitcomb Riley · See more »

Java (programming language)

Java is a general-purpose computer-programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible.

New!!: Type system and Java (programming language) · See more »


JavaScript, often abbreviated as JS, is a high-level, interpreted programming language.

New!!: Type system and JavaScript · See more »

John C. Mitchell

John Clifford Mitchell is professor of computer science and (by courtesy) electrical engineer at Stanford University.

New!!: Type system and John C. Mitchell · See more »

Kind (type theory)

In the area of mathematical logic and computer science known as type theory, a kind is the type of a type constructor or, less commonly, the type of a higher-order type operator.

New!!: Type system and Kind (type theory) · See more »

Late binding

Late binding, or dynamic binding, is a computer programming mechanism in which the method being called upon an object or the function being called with arguments is looked up by name at runtime.

New!!: Type system and Late binding · See more »

Linear logic

Linear logic is a substructural logic proposed by Jean-Yves Girard as a refinement of classical and intuitionistic logic, joining the dualities of the former with many of the constructive properties of the latter.

New!!: Type system and Linear logic · See more »

Lint (software)

A linter or lint refers to tools that analyze source code to flag programming errors, bugs, stylistic errors, and suspicious constructs.

New!!: Type system and Lint (software) · See more »

Liskov substitution principle

Substitutability is a principle in object-oriented programming stating that, in a computer program, if S is a subtype of T, then objects of type T may be replaced with objects of type S (i.e. an object of type T may be substituted with any object of a subtype S) without altering any of the desirable properties of the program (correctness, task performed, etc.). More formally, the Liskov substitution principle (LSP) is a particular definition of a subtyping relation, called (strong) behavioral subtyping, that was initially introduced by Barbara Liskov in a 1987 conference keynote address titled Data abstraction and hierarchy.

New!!: Type system and Liskov substitution principle · See more »

Logic error

In computer programming, a logic error is a bug in a program that causes it to operate incorrectly, but not to terminate abnormally (or crash).

New!!: Type system and Logic error · See more »

Memory address

In computing, a memory address is a reference to a specific memory location used at various levels by software and hardware.

New!!: Type system and Memory address · See more »

Memory safety

Memory safety is the state of being protected from various software bugs and security vulnerabilities when dealing with memory access, such as buffer overflows and dangling pointers.

New!!: Type system and Memory safety · See more »


In object-oriented programming, a metaclass is a class whose instances are classes.

New!!: Type system and Metaclass · See more »


Metaprogramming is a programming technique in which computer programs have the ability to treat programs as their data.

New!!: Type system and Metaprogramming · See more »

Method (computer programming)

A method in object-oriented programming (OOP) is a procedure associated with a message and an object.

New!!: Type system and Method (computer programming) · See more »


Microsoft Corporation (abbreviated as MS) is an American multinational technology company with headquarters in Redmond, Washington.

New!!: Type system and Microsoft · See more »

Microsoft Developer Network

Microsoft Developer Network (MSDN) is the portion of Microsoft responsible for managing the firm's relationship with developers and testers, such as hardware developers interested in the operating system (OS), and software developers developing on the various OS platforms or using the API or scripting languages of Microsoft's applications.

New!!: Type system and Microsoft Developer Network · See more »

ML (programming language)

ML (Meta Language) is a general-purpose functional programming language.

New!!: Type system and ML (programming language) · See more »

Mock object

In object-oriented programming, mock objects are simulated objects that mimic the behavior of real objects in controlled ways.

New!!: Type system and Mock object · See more »

Modular programming

Modular programming is a software design technique that emphasizes separating the functionality of a programme into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality.

New!!: Type system and Modular programming · See more »

Multiple dispatch

Multiple dispatch or multimethods is a feature of some programming languages in which a function or method can be dynamically dispatched based on the run-time (dynamic) type or, in the more general case some other attribute, of more than one of its arguments.

New!!: Type system and Multiple dispatch · See more »

Nominal type system

In computer science, a nominal or nominative type system (or name-based type system) is a major class of type system, in which compatibility and equivalence of data types is determined by explicit declarations and/or the name of the types.

New!!: Type system and Nominal type system · See more »

Object (computer science)

In computer science, an object can be a variable, a data structure, a function, or a method, and as such, is a value in memory referenced by an identifier.

New!!: Type system and Object (computer science) · See more »


OCaml, originally named Objective Caml, is the main implementation of the programming language Caml, created by Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy, Ascánder Suárez and others in 1996.

New!!: Type system and OCaml · See more »


In computing, an opcode (abbreviated from operation code, also known as instruction syllable, instruction parcel or opstring) is the portion of a machine language instruction that specifies the operation to be performed.

New!!: Type system and Opcode · See more »


Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages, Perl 5 and Perl 6.

New!!: Type system and Perl · See more »

Perl 6

Perl 6 is a member of the Perl family of programming languages.

New!!: Type system and Perl 6 · See more »


PHP: Hypertext Preprocessor (or simply PHP) is a server-side scripting language designed for Web development, but also used as a general-purpose programming language.

New!!: Type system and PHP · See more »

Polymorphism (computer science)

In programming languages and type theory, polymorphism (from Greek πολύς, polys, "many, much" and μορφή, morphē, "form, shape") is the provision of a single interface to entities of different types.

New!!: Type system and Polymorphism (computer science) · See more »

Presburger arithmetic

Presburger arithmetic is the first-order theory of the natural numbers with addition, named in honor of Mojżesz Presburger, who introduced it in 1929.

New!!: Type system and Presburger arithmetic · See more »

Program analysis

In computer science, program analysis is the process of automatically analyzing the behavior of computer programs regarding a property such as correctness, robustness, safety and liveness.

New!!: Type system and Program analysis · See more »

Programming language

A programming language is a formal language that specifies a set of instructions that can be used to produce various kinds of output.

New!!: Type system and Programming language · See more »


PurifyPlus is a memory debugger program used by software developers to detect memory access errors in programs, especially those written in C or C++.

New!!: Type system and PurifyPlus · See more »

Python (programming language)

Python is an interpreted high-level programming language for general-purpose programming.

New!!: Type system and Python (programming language) · See more »

Racket (programming language)

Racket (formerly PLT Scheme) is a general-purpose, multi-paradigm programming language in the Lisp-Scheme family.

New!!: Type system and Racket (programming language) · See more »

Record (computer science)

In computer science, a record (also called a structure, struct, or compound data) is a basic data structure.

New!!: Type system and Record (computer science) · See more »

Recursive set

In computability theory, a set of natural numbers is called recursive, computable or decidable if there is an algorithm which takes a number as input, terminates after a finite amount of time (possibly depending on the given number) and correctly decides whether the number belongs to the set.

New!!: Type system and Recursive set · See more »

Referential transparency

Referential transparency and referential opacity are properties of parts of computer programs.

New!!: Type system and Referential transparency · See more »

Refinement (computing)

Refinement is a generic term of computer science that encompasses various approaches for producing correct computer programs and simplifying existing programs to enable their formal verification.

New!!: Type system and Refinement (computing) · See more »

Reflection (computer programming)

In computer science, reflection is the ability of a computer program to examine, introspect, and modify its own structure and behavior at runtime.

New!!: Type system and Reflection (computer programming) · See more »

Ruby (programming language)

Ruby is a dynamic, interpreted, reflective, object-oriented, general-purpose programming language.

New!!: Type system and Ruby (programming language) · See more »

Run time (program lifecycle phase)

In computer science, run time, runtime or execution time is the time during which a program is running (executing), in contrast to other program lifecycle phases such as compile time, link time and load time.

New!!: Type system and Run time (program lifecycle phase) · See more »

Scala (programming language)

Scala is a general-purpose programming language providing support for functional programming and a strong static type system.

New!!: Type system and Scala (programming language) · See more »

Singularity (operating system)

Singularity is an experimental operating system (OS) which was built by Microsoft Research between 2003 and 2010.

New!!: Type system and Singularity (operating system) · See more »

Software bug

A software bug is an error, flaw, failure or fault in a computer program or system that causes it to produce an incorrect or unexpected result, or to behave in unintended ways.

New!!: Type system and Software bug · See more »

Software testing

Software testing is an investigation conducted to provide stakeholders with information about the quality of the software product or service under test.

New!!: Type system and Software testing · See more »

Static program analysis

Static program analysis is the analysis of computer software that is performed without actually executing programs.

New!!: Type system and Static program analysis · See more »

String (computer science)

In computer programming, a string is traditionally a sequence of characters, either as a literal constant or as some kind of variable.

New!!: Type system and String (computer science) · See more »

Structural type system

A structural type system (or property-based type system) is a major class of type system, in which type compatibility and equivalence are determined by the type's actual structure or definition, and not by other characteristics such as its name or place of declaration.

New!!: Type system and Structural type system · See more »


In computer programming, a subroutine is a sequence of program instructions that performs a specific task, packaged as a unit.

New!!: Type system and Subroutine · See more »

Substructural type system

Substructural type systems are a family of type systems analogous to substructural logics where one or more of the structural rules are absent or only allowed under controlled circumstances.

New!!: Type system and Substructural type system · See more »


In programming language theory, subtyping (also subtype polymorphism or inclusion polymorphism) is a form of type polymorphism in which a subtype is a datatype that is related to another datatype (the supertype) by some notion of substitutability, meaning that program elements, typically subroutines or functions, written to operate on elements of the supertype can also operate on elements of the subtype.

New!!: Type system and Subtyping · See more »

System F

System F, also known as the (Girard–Reynolds) polymorphic lambda calculus or the second-order lambda calculus, is a typed lambda calculus that differs from the simply typed lambda calculus by the introduction of a mechanism of universal quantification over types.

New!!: Type system and System F · See more »

Template (C++)

Templates are a feature of the C++ programming language that allows functions and classes to operate with generic types.

New!!: Type system and Template (C++) · See more »


A trade-off (or tradeoff) is a situational decision that involves diminishing or losing one quality, quantity or property of a set or design in return for gains in other aspects.

New!!: Type system and Trade-off · See more »

Type inference

Type inference refers to the automatic detection of the data type of an expression in a programming language.

New!!: Type system and Type inference · See more »

Type introspection

In computing, type introspection is the ability of a program to examine the type or properties of an object at runtime.

New!!: Type system and Type introspection · See more »

Type rule

In type theory, a type rule is an inference rule that describes how a type system assigns a type to a syntactic construction.

New!!: Type system and Type rule · See more »

Type safety

In computer science, type safety is the extent to which a programming language discourages or prevents type errors.

New!!: Type system and Type safety · See more »

Type signature

In computer science, a type signature or type annotation defines the inputs and outputs for a function, subroutine or method.

New!!: Type system and Type signature · See more »

Type system

In programming languages, a type system is a set of rules that assigns a property called type to the various constructs of a computer program, such as variables, expressions, functions or modules.

New!!: Type system and Type system · See more »

Type theory

In mathematics, logic, and computer science, a type theory is any of a class of formal systems, some of which can serve as alternatives to set theory as a foundation for all mathematics.

New!!: Type system and Type theory · See more »

Typed lambda calculus

A typed lambda calculus is a typed formalism that uses the lambda-symbol (\lambda) to denote anonymous function abstraction.

New!!: Type system and Typed lambda calculus · See more »

Undecidable problem

In computability theory and computational complexity theory, an undecidable problem is a decision problem for which it is known to be impossible to construct a single algorithm that always leads to a correct yes-or-no answer.

New!!: Type system and Undecidable problem · See more »

Union type

In computer science, a union is a value that may have any of several representations or formats within the same position in memory; or it is a data structure that consists of a variable that may hold such a value.

New!!: Type system and Union type · See more »

Uniqueness type

In computing, a unique type guarantees that an object is used in a single-threaded way, with at most a single reference to it.

New!!: Type system and Uniqueness type · See more »

University of Chicago

The University of Chicago (UChicago, U of C, or Chicago) is a private, non-profit research university in Chicago, Illinois.

New!!: Type system and University of Chicago · See more »

Usenet newsgroup

A Usenet newsgroup is a repository usually within the Usenet system, for messages posted from many users in different locations using Internet.

New!!: Type system and Usenet newsgroup · See more »

Variable (computer science)

In computer programming, a variable or scalar is a storage location (identified by a memory address) paired with an associated symbolic name (an identifier), which contains some known or unknown quantity of information referred to as a value.

New!!: Type system and Variable (computer science) · See more »

Variant type

Variant is a data type in certain programming languages, particularly Visual Basic, OCaml, Delphi and C++ when using the Component Object Model.

New!!: Type system and Variant type · See more »

Visual Basic

Visual Basic is a third-generation event-driven programming language and integrated development environment (IDE) from Microsoft for its Component Object Model (COM) programming model first released in 1991 and declared legacy during 2008.

New!!: Type system and Visual Basic · See more »

Visual Basic .NET

Visual Basic.NET (VB.NET) is a multi-paradigm, object-oriented programming language, implemented on the.NET Framework.

New!!: Type system and Visual Basic .NET · See more »

Redirects here:

Compile-time type checking, Dynamic data typing, Dynamic type, Dynamic typing, Dynamically typed, Dynamically typed language, Dynamically-typed language, Dynamicly typed, Existential type, Existential types, Optional typing, Static type, Static type checking, Static type system, Static type-checking, Static types, Static typing, Static-typing (programming languages), Statically typed, Statically typed language, Statically typed programming language, Statically-typed, Statically-typed programming language, Type checker, Type checking, Type equivalence, Type error, Type systems, Type-checker, Type-checking, Typechecker, Typechecking, Typed (programming languages), Typed language, Typing discipline.


[1] https://en.wikipedia.org/wiki/Type_system

Hey! We are on Facebook now! »