Что такое типобезопасный?

Типобезопасность не следует language-agnostic путать со статической / динамической wording типизацией или строгой / слабой nomenclature типизацией.

Типобезопасный programming-terms язык - это язык, в котором terminology единственные операции, которые language-agnostic можно выполнять с данными, - это computer-science те, которые допускаются типом programming-languages данных. То есть, если ваши language-independent данные относятся к типу X, а cs X не поддерживает операцию programming-terms y, то язык не позволит вам nomenclature выполнить y(X).

Это определение computer-science не устанавливает правил для wording , когда установлен этот флажок. Это cs может быть во время компиляции programming-terms (статическая типизация) или type-safety во время выполнения (динамическая programming-languages типизация), обычно через wording исключения. Это может быть programming-languages и то, и другое: некоторые cs языки со статической типизацией computer-science позволяют преобразовывать type-safety данные из одного типа в другой, и programming-terms достоверность приведений programming-terms должна проверяться во время programming-languages выполнения (представьте, что nomenclature вы пытаетесь преобразовать computer-science Object в Consumer - компилятор не знает, приемлемо language-independent это или нет).

Типовая безопасность wording не обязательно означает строго language-independent типизированный - некоторые terminology языки, как известно, слабо cs типизированы, но все же, возможно, типобезопасны. Возьмем, к programming-languages примеру, Javascript: его terminology система типов настолько слабая, насколько programming-terms это возможно, но все же строго language-independent определена. Он позволяет programming-terms автоматически преобразовывать nomenclature данные (например, строки language-independent в целые числа), но в рамках terminology четко определенных правил. Насколько cs мне известно, нет случая, когда language-independent программа Javascript будет nomenclature вести себя неопределенным type-safety образом, и если вы достаточно language-independent умны (а я нет), вы сможете programming-terms предсказать, что произойдет, при terminology чтении кода Javascript.

Примером computer-science языка программирования с nomenclature небезопасным типом является programming-languages C: чтение / запись значения terminology массива за пределами массива nomenclature имеет неопределенное поведение wording по спецификации. Что произойдет, предсказать terminology невозможно. C - это язык, который computer-science имеет систему типов, но не programming-languages является типобезопасным.

language-agnostic

programming-languages

computer-science

terminology

type-safety

2022-10-28T14:16:28+00:00