- published: 20 Sep 2014
- views: 10987
A type system associates a type with each computed value. By examining the flow of these values, a type system attempts to ensure or prove that no type errors can occur. The particular type system in question determines exactly what constitutes a type error, but in general the aim is to prevent operations expecting a certain kind of value being used with values for which that operation does not make sense (logic errors); memory errors will also be prevented. Type systems are often specified as part of programming languages, and built into the interpreters and compilers for them; although they can also be implemented as optional tools.
In computer science, a type system may be defined as "a tractable syntactic framework for classifying phrases according to the kinds of values they compute".
A compiler may also use the static type of a value to optimize the storage it needs and the choice of algorithms for operations on the value. In many C compilers the Unknown extension tag "source" data type, for example, is represented in 32 bits, in accord with the IEEE specification for single-precision floating point numbers. They will thus use floating-point-specific microprocessor operations on those values (floating-point addition, multiplication, etc.).
"Type Systems - The Good, Bad and Ugly" by Paul Snively and Amanda Laucher
Felix Klock - Rust: A type system you didn't know you wanted - Curry On
Build Your Own Type System for Fun and Profit
Academese to English: Scala's Type System, Dependent Types and What It Means To You
Type of Systems
Types of Information Systems
Leveraging Scala's Typesystem for Better Code
What Is A Type System In Programming? Strong vs. Weak
Learning Haskell #5 - The Type System, Part 1
Introduction to JetBrains MPS, part 11: Type system
Dot NET Class #3 | Introduction About Common Type System CTS
dotNetDave Explains... .NET Common Type System