Система типизации переменных в современных языках программирования работает следующим образом: она назначает тип каждому вычисленному значению и затем, отслеживая последовательность этих вычислений, проверяет или доказывает отсутствие ошибок согласования типов. 1
Есть два вида типизации: 2
- Статическая. 2 Язык проверяет код перед запуском и присваивает переменным тип, который впоследствии не может быть изменён. 2 Все выражения, в которых есть эта переменная, должны содержать операции, ориентированные именно на этот тип данных. 2 Если в коде тип переменной не соответствует выполняемой операции, программа не запустится. 3
- Динамическая. 2 Язык проверяет переменные и определяет их типы в момент совершения над ними операции. 2 При этом одной и той же переменной в разных частях кода могут быть присвоены разные типы данных. 2
Также есть явная и неявная типизация: 4
- При явной типизации разработчик сам указывает, какой тип данных примет та или иная переменная. 4 Обычно тип указывается в момент создания. 4
- Для неявно типизированных переменных язык программирования определяет тип сам. 4 Разработчик просто пишет название переменной и записывает туда значение, а компилятор или интерпретатор подбирает нужный тип. 4