Skip to content
EntityQ1940914· pop 7

статическая типизация

Sign in to save

Also known as static type system, static typing system, static, statically typed, static type checking

проверка типов перед запуском программы

Wikidata facts

Show 2 more facts
opposite of
dynamic typing
short name
statische
Sources (2)

via Wikidata · CC0

Article · Русский

Стати́ческая типиза́ция — приём, широко используемый в языках программирования, при котором переменная, параметр подпрограммы, возвращаемое значение функции связывается с типом в момент объявления и тип не может быть изменён позже (переменная или параметр будут принимать, а функция — возвращать значения только этого типа). Примеры статически типизированных языков — Ада, C, C++, C#, D, Java, ML, Паскаль, Solidity, Go, Fortran.Противоположный приём — динамическая типизация. Некоторые статически типизированные языки позже получили возможность также использовать динамическую типизацию при помощи специальных подсистем. Например, Variant в Delphi, пакеты в AliceML, Data.Dynamic в Haskell. Статическая типизация даёт самый простой машинный код, поэтому она удобна для языков, дающих исполняемые файлы операционных систем или JIT-компилируемые промежуточные коды. Многие ошибки исключаются уже на стадии компиляции, поэтому статическая типизация хороша для написания сложного, но быстрого кода. В интегрированной среде разработки осуществимо более релевантное автодополнение, особенно если типизация — сильная статическая: множество вариантов можно отбросить как не подходящие по типу. Чем больше и сложнее проект, тем большее преимущество даёт статическая типизация, и наоборот. В то же время, статически типизированные языки с недостаточно проработанной математической базой оказываются довольно многословными: каждый раз надо указывать, какой тип будет иметь переменная. В некоторых языках есть автоматическое выведение типа, однако оно может привести к трудноуловимым ошибкам. Это не верно для языков семейства ML, основанных на так называемой «главной типизации» (англ. principal typing scheme), которая одновременно автоматически выводит наиболее общий тип всякого выражения и строго проверяет согласование типов зависимостей. Это придаёт языку выразительность динамически типизируемых, при этом обеспечивает лучшее быстродействие и типобезопасность.

Abstract from DBpedia / Wikipedia · CC BY-SA

Available in 7 languages

via Wikidata sitelinks · CC0