В этой статье не процитировать какие - либо источники . ( февраль 2013 г. ) ( Узнайте, как и когда удалить это сообщение-шаблон ) |
Системы типов |
---|
Общие понятия |
Основные категории |
Второстепенные категории |
Смотрите также |
В компьютерной науке, проявляется типирование явно идентификация с помощью программного обеспечения программатора от типа каждого переменным объявляется. Например: если переменная X будет хранить целые числа, то ее тип должен быть объявлен как целочисленный. Термин «манифест типирование» часто используется термин латентной типизации , чтобы описать разницу между статическим , компиляции времени членства типа объекта и его времени выполнения идентичности типа.
Напротив, некоторые языки программирования используют неявную типизацию (также известный как вывод типа ), когда тип выводится из контекста во время компиляции, или допускают динамическую типизацию, в которой переменная просто объявляется и может быть присвоено значение любого типа во время выполнения.
Примеры [ править ]
Рассмотрим следующий пример, написанный на языке программирования C :
#include <stdio.h>int main ( void ) { char s [] = "Тестовая строка" ; float x = 0,0 ; int y = 0 ; printf ( "Привет, мир! \ n " ); возврат 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
как ошибка времени компиляции.