diff --git a/documentation/current/method/books-about-eiffel-method-and-language/object-oriented-software-construction-2nd-edition.wiki b/documentation/current/method/books-about-eiffel-method-and-language/object-oriented-software-construction-2nd-edition.wiki
index 9e4ddcad..1773f6e1 100644
--- a/documentation/current/method/books-about-eiffel-method-and-language/object-oriented-software-construction-2nd-edition.wiki
+++ b/documentation/current/method/books-about-eiffel-method-and-language/object-oriented-software-construction-2nd-edition.wiki
@@ -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
+
+ISBN 0-13-629155-4
-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".
+
+
diff --git a/documentation/current/method/void-safe-programming-eiffel/converting-existing-software-void-safety/index.wiki b/documentation/current/method/void-safe-programming-eiffel/converting-existing-software-void-safety/index.wiki
index 0e1fc12e..0352448e 100644
--- a/documentation/current/method/void-safe-programming-eiffel/converting-existing-software-void-safety/index.wiki
+++ b/documentation/current/method/void-safe-programming-eiffel/converting-existing-software-void-safety/index.wiki
@@ -156,7 +156,7 @@ Here attribute declarations for my_nvp and my_nvp_list
In a second case, there is also an Initialization rule violation (VEVI), this time on Result, in this routine:
- 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 Result is always attached, because,
So the least impact to this routine will be to declare its type as detachable:
- 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
@@ -205,7 +205,7 @@ The change to at_first satisfies the VEVI issue in at_first
value_at_first looks like this:
- 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 tn is declared as atta
Here the '''attached syntax''' can fix the problem and streamline the routine:
- 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
diff --git a/documentation/current/papers/void-safety-how-eiffel-removes-null-pointer-dereferencing.wiki b/documentation/current/papers/void-safety-how-eiffel-removes-null-pointer-dereferencing.wiki
index 02c379f2..2ea5ce86 100644
--- a/documentation/current/papers/void-safety-how-eiffel-removes-null-pointer-dereferencing.wiki
+++ b/documentation/current/papers/void-safety-how-eiffel-removes-null-pointer-dereferencing.wiki
@@ -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.