Системы типов |
---|
Общие понятия |
Основные категории |
|
Второстепенные категории |
В компьютерной науке, проявляется типирование явно идентификация с помощью программного обеспечения программатора от типа каждого переменным объявляется. Например: если переменная X будет хранить целые числа, то ее тип должен быть объявлен как целочисленный. Термин «манифест типирование» часто используется термин латентной типизации, чтобы описать разницу между статическим, компиляции времени членства типа объекта и его времени выполнения идентичности типа.
Напротив, некоторые языки программирования используют неявную типизацию (также известный как вывод типа ), когда тип выводится из контекста во время компиляции, или допускают динамическую типизацию, в которой переменная просто объявляется и может быть присвоено значение любого типа во время выполнения.
Рассмотрим следующий пример, написанный на языке программирования C :
#include lt;stdio.hgt; int main(void) { char s[] = "Test String"; float x = 0.0; int y = 0; printf("Hello, World!\n"); return 0; }
Обратите внимание, что переменные s, x и y были объявлены как массив символов, число с плавающей запятой и целое число соответственно. Во время компиляции система типов отвергает такие заблуждения, как попытки сложить s и x.
В отличие от этого, в Standard ML, то типы не должны быть явно объявлены. Вместо этого тип определяется типом присвоенного выражения.
let val s = "Test String" val x = 0.0 val y = 0 in print "Hello, World!\n" end
Там нет манифеста типов в этой программе, но компилятор все равно выводят типы string
, real
и int
для них, и будет отвергать выражение s+x
как ошибка времени компиляции.