Контроль типов и системы типизации
Процесс проверки и
накладывания ограничений типов —
контроля типов, может выполняться во
время компилирования (статическая
проверка) или во время выполнения
(динамическая проверка).
- Статическая
типизация — контроль типов
осуществляется при компиляции.
- Динамическая
типизация — контроль типов
осуществляется во время выполнения.
Контроль типов также
может быть строгим и слабым.
- Строгая
типизация — совместимость типов
автоматически контролируется транслятором:
- Номинативная
типизация (англ. nominative
type system) — совместимость должна
быть явно указана (наследована)
при определении типа.
- Структурная
типизация (англ. structural
type system) — совместимость определяется
структурой самого типа (типами элементов,
из которых построен составной тип).
- Слабая
типизация — совместимость типов
никак транслятором не контролируется.
В языках со слабой типизацией обычно
используется подход под названием
«утиная
типизация» — когда соместимость
определяется и реализуется общим
интерфейсом доступа к данным типа.