mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2025-12-07 15:22:31 +01:00
Added void-safe-eiffel.pdf and updated related wiki page.
git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@1422 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
[[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.
|
||||
This white paper (see [[file:void-safe-eiffel.pdf|document as pdf]]) 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.
|
||||
|
||||
@@ -9,21 +9,17 @@ While extensive testing can decrease the likelihood of a void call, it cannot
|
||||
<!--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>
|
||||
:"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."
|
||||
|
||||
(Citation at: http://qconlondon.com/london-2009/presentation/Null+References:+The+Billion+Dollar+Mistake .)
|
||||
(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.
|
||||
*"Certified Attachment Patterns" are code schemes that the EiffelStudio compiler guarantees to be void-safe.
|
||||
*"Attached types" are types that are guaranteed to have non-void values.
|
||||
*The "Object Test" instruction lets programmers treat void values in a special way.
|
||||
|
||||
<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.-
|
||||
The White Paper (see the link below) describes the theoretical and practical challenges of ensuring void-safety and presents the Eiffel mechanism.
|
||||
|
||||
|
||||
BIN
documentation/current/eiffel/_files/void-safe-eiffel.pdf
Normal file
BIN
documentation/current/eiffel/_files/void-safe-eiffel.pdf
Normal file
Binary file not shown.
Reference in New Issue
Block a user