mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2025-12-07 07:12:25 +01:00
Author:halw
Date:2009-08-10T19:50:49.000000Z git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@283 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
@@ -4,18 +4,22 @@
|
||||
[[Image:OOSC2 small|OOSC2]]
|
||||
|
||||
|
||||
'''''Object-Oriented Software Construction, 2nd Edition''''' by Bertrand Meyer.
|
||||
=='''''Object-Oriented Software Construction, 2nd Edition''''' by Bertrand Meyer.==
|
||||
|
||||
Prentice Hall Professional Technical Reference.
|
||||
|
||||
1254 + xxviii pp.
|
||||
|
||||
Soft cover.
|
||||
ISBN 0-13-629155-4
|
||||
|
||||
<nowiki>ISBN 0-13-629155-4</nowiki>
|
||||
|
||||
|
||||
This Jolt Award winner takes the reader through the clear, logical, and comprehensive formation of a method for object-oriented software development. During this journey, Meyer also evolves a notation capable of expressing the products of each phase of development. This notation is Eiffel the language.
|
||||
This Jolt Award winner takes the reader through the clear, logical, and comprehensive formation of a method for object-oriented software development ... the Eiffel method. During this journey, the author evolves a notation capable of expressing the products of each phase of development, from analysis through implementation. This notation is Eiffel the language.
|
||||
|
||||
|
||||
==Praise for '''''Object-Oriented Software Construction, 2nd Edition'''''==
|
||||
|
||||
Roger Smith, on the Dr. Dobbs Journal website, writes:
|
||||
|
||||
:"In my unbiased opinion [...] it is destined to become the comprehensive and definitive reference for most methodological and technical questions raised by object technology. Its width and breadth of scope is impressive, from object-oriented techniques like Design by Contract and inheritance, to methodology issues like patterns and class design, to advanced issues like concurrency and persistence."
|
||||
@@ -27,3 +31,5 @@ In ''Unix Review'', Stan Kelly-Bootle calls this book "The ultimate O-O guide."
|
||||
Ian Graham, in ''Journal of Object-Oriented Programming'' calls it "Epoch-making".
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -156,7 +156,7 @@ Here attribute declarations for <code>my_nvp</code> and <code>my_nvp_list</code>
|
||||
In a second case, there is also an Initialization rule violation (VEVI), this time on <code>Result</code>, in this routine:
|
||||
|
||||
<code>
|
||||
at_first (nm: STRING): NVP is
|
||||
at_first (nm: STRING): NVP
|
||||
-- The first found NVP with name matching nm.
|
||||
-- Or Void if not found
|
||||
require
|
||||
@@ -181,7 +181,7 @@ Here we cannot just ensure that <code>Result</code> is always attached, because,
|
||||
So the least impact to this routine will be to declare its type as <code>detachable</code>:
|
||||
|
||||
<code>
|
||||
at_first (nm: STRING): detachable NVP is
|
||||
at_first (nm: STRING): detachable NVP
|
||||
-- The first found NVP with name matching nm.
|
||||
-- Or Void if not found
|
||||
</code>
|
||||
@@ -205,7 +205,7 @@ The change to <code>at_first</code> satisfies the VEVI issue in <code>at_first</
|
||||
<code>value_at_first</code> looks like this:
|
||||
|
||||
<code>
|
||||
value_at_first (nm: STRING): detachable STRING is
|
||||
value_at_first (nm: STRING): detachable STRING
|
||||
-- Value from first found NVP with name matching nm
|
||||
-- Or Void of not found
|
||||
require
|
||||
@@ -228,7 +228,7 @@ The problem is that the local variable <code>tn</code> is declared as <code>atta
|
||||
Here the '''attached syntax''' can fix the problem and streamline the routine:
|
||||
|
||||
<code>
|
||||
value_at_first (nm: STRING): detachable STRING is
|
||||
value_at_first (nm: STRING): detachable STRING
|
||||
-- Value from first found NVP with name matching nm
|
||||
-- Or Void of not found
|
||||
require
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
[[Property:link_title|Void-safety: how Eiffel removes null-pointer dereferencing]]
|
||||
[[Property:weight|0]]
|
||||
[[Property:uuid|d9380464-4312-b76e-9bfd-e57df0f59b4a]]
|
||||
This white paper (see "Attachment" link below) presents the Eiffel void safety mechanism, fully implemented in EiffelStudio 6.4.
|
||||
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.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user