Описание тега void-safety
Задний план
Void-security представляет собой надежный подход, основанный на статическом анализе, чтобы гарантировать, что доступ к void target (вызывающий исключения с нулевым указателем) никогда не может происходить во время выполнения в объектно-ориентированной программе, которая удовлетворяет условиям void-безопасности. Он основан на
Система типов, которая различает присоединенные и съемные типы. Присоединенные типы применяются к переменным и выражениям, которые всегда известны как присоединенные к существующим объектам во время выполнения. Съемные типы применяются к переменным и выражениям, которые могут быть пустыми.
Правила действия, допускающие только
- безопасное повторное присоединение: выражение съемного типа может быть присоединено только к переменной съемного типа, в то время как выражение присоединенного типа может быть присоединено к переменной типа с произвольным статусом присоединения.
- доступ к инициализированным переменным: до того, как переменная станет доступной, она должна быть инициализирована. Переменная съемного типа может быть инициализирована значением Void (null), но переменная присоединенного типа должна быть установлена на существующий или вновь созданный объект до ее использования.
Сертифицированные шаблоны вложений (CAP): шаблоны кода, которые, например, гарантируют статус вложения выражений.
... -- x may be Void or attached to an object here, we do not know. if attached x then -- x is known to be attached here, so it is safe to make a call on it: x.foo end
Ресурсы
- Википедия: Безопасность пустоты
- Eiffel.org: Безопасность пустоты: предыстория
- YouTube: Введение в Пустоты безопасности часть1, часть2, часть3, part4
Отношение к другим тегам
- notnull - void-safety гарантирует, что выражения, о которых известно, что они принадлежат к присоединенному типу во время компиляции, всегда дают существующий объект во время выполнения
- nullpointerexception, nullreferenceexception - void-безопасность - это гарантия отсутствия этих исключений во время компиляции в любом сценарии выполнения