mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2025-12-07 23:32:42 +01:00
Date:2014-03-03T19:11:30.000000Z git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@1274 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
30 lines
1.8 KiB
Plaintext
30 lines
1.8 KiB
Plaintext
[[Property:title|Void-safety: how Eiffel removes null-pointer dereferencing]]
|
|
[[Property:weight|0]]
|
|
[[Property:uuid|d9380464-4312-b76e-9bfd-e57df0f59b4a]]
|
|
This white paper (see [[file:void-safe-eiffel.pdf|"Attachment" link ]] below) presents the Eiffel void-safety mechanism, fully implemented in EiffelStudio 6.4.
|
|
|
|
In almost every program running today there is a ticking time bomb: the risk of a "void call". A void call is possible in programs written in almost any programming language; its effect is usually to crash the program. Many unexplained program failures and other abnormal behaviors result from void calls.
|
|
|
|
While extensive testing can decrease the likelihood of a void call, it cannot remove the possibility. The solution has to come from the programming language.
|
|
<!--break-->
|
|
Professor C.A.R. Hoare from Microsoft Research, winner of the Turing Award and the Kyoto Prize, calls the presence of void calls in modern programming languages the "billion-dollar mistake":
|
|
|
|
<ul>"The invention of the null reference in 1965" [the source of void calls] "has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years."
|
|
</ul>
|
|
|
|
(Citation at: http://qconlondon.com/london-2009/presentation/Null+References:+The+Billion+Dollar+Mistake .)
|
|
|
|
|
|
The Eiffel solution relies on a combination of language mechanisms:
|
|
|
|
<ul><li>
|
|
"Certified Attachment Patterns" are code schemes that the EiffelStudio compiler guarantees to be void-safe.
|
|
|
|
<li>"Attached types" are types that are guaranteed to have non-void values.
|
|
|
|
<li>The "Object Test" instruction lets programmers treat void values in a special way.
|
|
</ul>
|
|
|
|
The White Paper (see the link below) describes the theoretical and practical challenges of ensuring void-safety and presents the Eiffel mechanism.-
|
|
|