Типобезопасность

В информатике типобезопасность (англ. type safety) языка программирования означает безопасность (или надёжность) его системы типов.

Система типов называется безопасной (англ. safe) или надежной (англ. sound), если в программах, прошедших проверку согласования типов, (англ. well-typed programs или well-formed programs) исключена возможность возникновения ошибок согласования типов во время выполнения.

Ошибка согласования типов или ошибка типизации (англ. type error) представляет собой несогласованность типов компонентов выражений в программе, например попытку использовать целое число в роли функции. Пропущенные ошибки согласования типов на этапе выполнения могут приводить к багам и даже крахам программ. Безопасность языка не является синонимом полного отсутствия багов, но, по меньшей мере, они становятся исследуемы в рамках семантики языка (формальной или неформальной).

Надёжные системы типов также называют сильными (англ. strong), но трактовка этого термина часто смягчается, кроме того, его часто применяют к языкам, осуществляющим динамическую проверку согласования типов (см. сильная и слабая типизация).

Иногда безопасность рассматривается как свойство конкретной программы, а не языка, на котором она написана — по той причине, что некоторые типобезопасные языки разрешают обойти или нарушить систему типов, если программист практикует скудную типобезопасность. Распространено мнение, что такие возможности на практике оказываются необходимостью, но это вымысел. Понятие о «безопасности программы» важно в том смысле, что реализация безопасного языка сама может быть небезопасной. Раскрутка компилятора решает эту проблему, обеспечивая языку безопасность не только в теории, но и на практике.

Источник: Википедия

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я