create 20.05 branch

git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@2240 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
jfiat
2020-05-22 15:25:48 +00:00
parent 352128f476
commit 0ef958966d
2943 changed files with 62390 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
[[Property:modification_date|Wed, 18 Sep 2019 13:17:05 GMT]]
[[Property:publication_date|Thu, 12 Sep 2019 15:07:05 GMT]]
[[Property:uuid|BF3D5A25-A6C0-4645-956A-82807C41F073]]
[[Property:weight|10]]
[[Property:title|EiffelStudio: A Guided Tour - Eiffel Software Technical Report]]
[[Property:link_title|EiffelStudio Guided Tour]]
==Eiffel Software Technical Report TR-EI-68/GT ==
First published 1993 as ''First Steps with EiffelBench'' (TR-EI-38/EB) and revised as a chapter of ''Eiffel: The Environment'' also available as [[#An_Object-Oriented_Environment|An Object-Oriented Environment]] (below).
Version 3.3.8, 1995.
Version 4.1, 1997
This version: July 2001. Corresponds to release 5.0 of the EiffelStudio environment.
Full reference at [[Manual_identification_and_copyright|Manual identification and copyright]]
==An Object-Oriented Environment ==
:<big>'''Bertrand Meyer'''</big>
:Prentice Hall, 1994
:ISBN 0-13-245-507-2
The principles of object technology change the way we envision, design and use software development environments.
This book explains what it means for an environment to be truly object-oriented, not just by having a modern user interface but by applying to its full extent the concept of data abstraction. It will provide precious material to anyone who is interested in finding out how an environment can support O-O development in its quest for software quality and productivity.
''Content highlights: ''
Introduces five design principles for object-oriented environments; presents a complete set of tools applying these principles, based on development object types rather than functional units; describes a novel approach to compilation: the Melting Ice Technology, which combines the fast development turnaround of interpreters with the safety of compiled approaches, and generates high-performance final code; discusses how to use C as a target language for efficiency and portable cross-development, without impairing the benefits of the O-O method; takes the reader through a detailed demonstration of the environment's object-oriented tools, showing their application to compiling, browsing and symbolic debugging; explains the principles and application of GUI (Graphical User Interface) Application Building, going from mere 'interface builders' to the interactive construction of entire applications - interface and semantics; and introduces the Context-Events-Command-State model of GUI application building and applies it to the interactive development of a complete mini-application.
==The Guided Tour==
{{Note|[[EiffelStudio_tutorials|The Guided Tour to EiffelStudio starts here]]}}

View File

@@ -0,0 +1,33 @@
[[Property:modification_date|Wed, 18 Sep 2019 13:10:45 GMT]]
[[Property:publication_date|Wed, 11 Sep 2019 01:44:42 GMT]]
[[Property:uuid|8A382DA4-C45F-4CBB-A2B6-44447C63EFB0]]
[[Property:weight|5]]
[[Property:title|Reusable Software: The Base Object-Oriented Component Libraries]]
[[Property:link_title|OO Component Libraries]]
:[[Image:/files/uploads/OOComponentLibrariesSmall.jpg|OO Component Libraries]]
:<big>'''Bertrand Meyer'''</big>
:Prentice Hall, 1994
:xx, 514 p.
:Includes bibliographical references and index
:ISBN-10: 013-245-499-8
:ISBN-13: 978-013-245-499-5
First reviews the principles of library construction and the object-oriented techniques that make it possible to build high-quality libraries - e.g., finding the right objects and classes, choosing the proper names, using inheritance properly, determining the ideal class size, etc.
Then provides detailed usage descriptions of hundreds of reusable components, offering thousands of directly usable operations. The components, written in Eiffel, cover such areas as lists, chains, queues, stacks, trees of various kinds, sorted structures, lexical analysis, parsing, and many other fundamental data structures and algorithms.
For both the users of reusable software libraries and for developers who are interested in building their own libraries of reusable software.
''Content:''
1. Introduction to the Base libraries -- 2. Building libraries: techniques -- 3. Principles of library design -- 4. Abstract container structures: the taxonomy -- 5. Mathematical properties -- 6. Linear structures: sequences, chains, lists, circular chains -- 7. Dispenser structures: stacks, queues, priority lists -- 8. Trees -- 9. Sets and hash tables -- 10. Iteration -- 11. Lexical analysis: the Lex library -- 12. Parsing: The Parse Library -- 13. The Kernel Library -- 14. Classes for abstract container structures -- 15. Classes for mathematical properties -- 16. Classes for linear structures -- 17. Dispenser classes -- 18. Tree classes -- 19. Set and hash table classes -- 20. Iteration classes -- 21. Lexical analysis classes -- 22. Parsing classes -- 23. Kernel library classes
{{Caution|The last half of the book is taken up by a reprint of the contract form of the libraries as per printing time.
The most current documentation is found here as
[[ref:libraries/base/reference/index|EiffelBase Class Reference]] }}

View File

@@ -0,0 +1,16 @@
[[Property:title|ECMA Standard 367]]
[[Property:weight|1]]
[[Property:uuid|b49b0949-85fa-31da-555e-003b09f6213e]]
[[Image:ECMA-367 cover small|ECMA-367]]
==ECMA Standard 367 -- Eiffel: Analysis, Design, and Programming Language==
ECMA International
Standard Eiffel syntax, validity, and semantics are described in this document, which is available [http://www.ecma-international.org/publications/standards/Ecma-367.htm online].
ECMA-367 is a specification for the Eiffel programming language. Therefore, it can be useful as a reference, but it is definitely not a tutorial. That said, the document does contain occasional informative text and a general description chapter which can help readers understand the specification.

View File

@@ -0,0 +1,26 @@
[[Property:title|Eiffel: The Language]]
[[Property:weight|2]]
[[Property:uuid|dae5a248-29f5-02b2-d01f-371394aa75e9]]
[[Image:ETL]]
=='''''Eiffel: The Language''''' by Bertrand Meyer.==
Prentice Hall Object-Oriented Series.
594 pp.
Soft cover.
<nowiki>ISBN 0-13-247925-7</nowiki>
''Eiffel: The Language'' is one of the foundation volumes of Eiffel technology. It was originally published in 1992, and reprinted later with updates and corrections.
Because the language specification has changed since the last reprinting to incorporate new quality and productivity constructs, hardcopies of ''Eiffel: The Language'', although still available, will represent the bulk of Eiffel correctly, but will not reflect the latest important changes.
Currently ''Standard Eiffel'', the successor to ''Eiffel: The Language'', is a work-in-progress and is available in its current state online (See ''Standard Eiffel'', on [http://se.ethz.ch/~meyer/publications/#PSTE this page]).
The most current state of Eiffel syntax, validity, and semantics is described in the ISO/ECMA [http://www.ecma-international.org/publications/standards/Ecma-367.htm standard document], also available online.

View File

@@ -0,0 +1,6 @@
[[Property:title|Books about the Eiffel Method and Language]]
[[Property:link_title|Books]]
[[Property:weight|5]]
[[Property:uuid|721967da-6621-33f0-198f-9fc8ee26d37f]]

View File

@@ -0,0 +1,39 @@
[[Property:title|Object-Oriented Software Construction, 2nd Edition]]
[[Property:link_title|OOSC2]]
[[Property:weight|0]]
[[Property:uuid|496983ef-b86e-772e-16b9-39b37ef80e37]]
[[Image:OOSC2 small|OOSC2]]
=='''''Object-Oriented Software Construction, 2nd Edition''''' by Bertrand Meyer.==
Prentice Hall Professional Technical Reference.
1254 + xxviii pp.
Soft cover.
<nowiki>ISBN 0-13-629155-4</nowiki>
Click to [http://www.amazon.com/Object-Oriented-Software-Construction-Book-CD-ROM/dp/0136291554 buy from Amazon].
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 the Eiffel programming 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."
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".

View File

@@ -0,0 +1,38 @@
[[Property:modification_date|Wed, 11 Sep 2019 02:10:22 GMT]]
[[Property:publication_date|Wed, 11 Sep 2019 02:10:22 GMT]]
[[Property:link_title|Touch of Class]]
[[Property:title|Touch of Class: Learning to Program Well with Objects and Contracts]]
[[Property:weight|-1]]
[[Property:uuid|3b4afd2f-6433-c619-f9a4-602c430c6902]]
[[Image:Touch of Class cover small]]
=='''''Touch of Class: Learning to Program Well with Objects and Contracts''''' by Bertrand Meyer==
Springer-Verlag, 2009, 2nd corrected ed. 2013
876 + lxiv pp.
<nowiki>ISBN-13: 978-3540921448 </nowiki>
Full color printing; many color illustrations and photographs
Click to [http://www.amazon.com/Touch-Class-Learning-Program-Contracts/dp/3540921443 buy from Amazon].
Is this really a book about Eiffel? Perhaps in some senses it is not. It is a book about exactly what the subtitle indicates: ''Learning to Program Well with Objects and Contracts.'' (Primary emphasis should fall on the word "''Well''".)
Still, the Eiffel method and language are used in this journey as tools, the best tools known, to help those seeking excellence in software development become prepared to meet the types of challenges a career in software will present. In the rapidly changing software world, this is a tall order. As the preface (for instructors) states:
:'' It is not enough to present immediately applicable technology, for which in our globalized industry a cheaper programmer will always be available somewhere ... [Software professionals] must master software development as a professional endeavor, and by this distinguish themselves from the masses of occasional or amateur programmers.''
''Touch of Class'' imparts its message using techniques which have accumulated through decades of study of technical learning and have been applied for several years in courses at ETH Zurich. These techniques include the extensive study and reuse of libraries of high-quality software components, employment of the Eiffel object-oriented method and Design by Contract, an introduction to formal methods and a ubiquitous awareness for software engineering concerns.
A unique and refreshing aspect of ''Touch of Class'' is seen throughout the volume. Credit is given for ideas which form the foundation of modern software thinking, and in the process, those pioneers upon whose shoulders all software professionals stand, are made human and personal by photographs and historical vignettes.

View File

@@ -0,0 +1,20 @@
[[Property:title|Eiffel as an expression language]]
[[Property:weight|0]]
[[Property:uuid|61e93102-c558-42e7-7784-0b60b9257b5d]]
A functional-programming style, or more generally a style involving more expressions and fewer instructions, is possible in Eiffel. In particular, the agent mechanism embeds a full functional-programming mechanism in the object-oriented framework of the language.
To make the notations simpler, a number of extensions have been proposed. They involve no fundamental new language mechanisms, but provide new, more concise notations for existing mechanisms. Examples are:
*Conditional expressions
*Implicit tuple, a rule allowing the omission of brackets for an actual argument when it is a tuple and the last argument, e.g. f (a, b, c) as an abbreviation for f ([a, b, c]) (an example involving just one argument). Tuples already provided the equivalent of a variable-argument ("varargs") facility, but it is made simpler to use with this convention.
*Parenthesis alias, making it possible to write just f (x, y) when f is an agent (closure, lambda expression, delegate etc. in other terminologies), i.e. treating f as if it were a function; the notation is simply an abbreviation for f.item ([x, y]) (this example also takes advantage of implicit tuples). It has many other applications since a "parenthesis alias" can be defined for a feature of any class.
*Avoiding explicit assignments to '''Result'''.
*Type inference (to avoid explicitly specifying the type when it can be deduced from the context). This is a facility for the programmer, useful in particular for local variables, but does not affect the type system: Eiffel remains strongly typed, it is just that you can be lazy about writing the type when there is no ambiguity.
*In the same vein, omitting the entire list of generic parameters when it can be inferred.
see [[file:expression_language.pdf|document as pdf]].

View File

@@ -0,0 +1,9 @@
[[Property:title|Technical papers about Eiffel]]
[[Property:description|Background, foundation, or supplemental information about uncovered topics]]
[[Property:link_title|Papers]]
[[Property:weight|4]]
[[Property:uuid|d2b880d6-d1dc-9811-32b8-ed718ad4d4be]]
Occasionally papers are produced providing background, foundation, or supplemental information about the topics covered by the Eiffel documentation. Although the material in these papers might be of interest to many Eiffel users, they might not be suitable in their current form for inclusion in the mainstream documentation books.
You will find a collection of these papers in this book.

View File

@@ -0,0 +1,25 @@
[[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|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.
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":
:"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://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare] )
The Eiffel solution relies on a combination of language mechanisms:
*"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.
The White Paper (see the link below) describes the theoretical and practical challenges of ensuring void-safety and presents the Eiffel mechanism.