- Manifest typing
-
Type systems Type safety
Inferred vs. Manifest
Dynamic vs. Static
Strong vs. Weak
Nominal vs. Structural
Dependent typing
Duck typing
Latent typing
Linear typing
Uniqueness typingIn computer science, manifest typing is when the software programmer explicitly identifies the type of each variable being declared. For example: if variable X is going to store integers then its type must be declared as integer.
In contrast, some programming languages use implicit typing (a.k.a. type inference) where the type is deduced from context or allow for dynamic typing in which the variable is just declared and may be assigned a value of any type at runtime.
Examples
Consider the following example written in the C programming language:
#include <stdio.h> int main(void) { char s[] = "Test String"; float x = 0.0; int y = 0; printf("Hello World\n"); return 0; }
Note that the variables s, x, and y were declared as a character array, floating point number, and an integer, respectively. The type system rejects, at compile-time, such fallacies as trying to add s and x.
In contrast, in Standard ML, the types are not explicitly declared. Instead, the type is determined by the type of the assigned expression.
let val s = "Test String" val x = 0.0 val y = 0 in print "Hello World\n" end
There are no manifest types in this program, but the compiler still infers the types
string
,real
andint
for them, and would reject the expressions+x
as a compile-time error.See also
External links
Categories:- Type systems
- Programming language topic stubs
Wikimedia Foundation. 2010.