Typing in general means that the choice of possible data structures manipulated by a program can be conceptually divided into groups of objects with some homogeneity (e.g. integers, floating-point numbers, lists, arrays, hash-tables, etc.); the term for these groups is called a type.

A variable's type is the upper bound of the range of values that a variable can assume during the execution of a program.

Depending on the type of an object, different interfaces will be available to interact with it (numbers are subject to arithmetic operations; lists can be deconstructed into head and tail; functions can be applied; etc.), and different algorithms will be used to implement common interfaces (adding two integers is not same as adding two floating-point numbers).

This page is linked from: Axiom   Benjamin C. Pierce   Clean   Component Object Model   Coq   Dependent Types   Foreign Function Interface   Lava   Lego   Logic   Self   TAL   Type System