mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2025-12-06 14:52:03 +01:00
merged from 19.05
git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@2228 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
[[Property:modification_date|Wed, 11 Sep 2019 23:28:26 GMT]]
|
||||
[[Property:publication_date|Wed, 11 Sep 2019 23:28:26 GMT]]
|
||||
[[Property:uuid|C652AC71-8BAD-4387-A46C-21C9F5C3A68F]]
|
||||
[[Property:weight|0]]
|
||||
[[Property:title|Conditional expression]]
|
||||
[[Property:link_title|Conditional]]
|
||||
|
||||
[[Eiffel%20Programming%20Language%20Syntax#Conditionals|Conditional expressions]] compute a value using different expressions depending on one or more conditions. If all expressions have the same type, the conditional expression as a whole has this type as well:
|
||||
[[Eiffel_programming_language_syntax#Conditionals|Conditional expressions]] compute a value using different expressions depending on one or more conditions. If all expressions have the same type, the conditional expression as a whole has this type as well:
|
||||
|
||||
<e>
|
||||
if time < noon then
|
||||
@@ -17,7 +19,7 @@
|
||||
|
||||
has type `STRING`.
|
||||
|
||||
If the types of the expressions are different, the [[Types#Common ancestor types|common ancestor type]] is used as a type of the whole expression.
|
||||
If the types of the expressions are different, the [[Types#Common_ancestor_types|common ancestor type]] is used as a type of the whole expression.
|
||||
|
||||
<e>
|
||||
if time < noon then
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
[[Property:modification_date|Wed, 11 Sep 2019 18:53:32 GMT]]
|
||||
[[Property:publication_date|Wed, 11 Sep 2019 14:10:27 GMT]]
|
||||
[[Property:title|Eiffel programming language reserved words]]
|
||||
[[Property:link_title|Reserved words]]
|
||||
[[Property:weight|1]]
|
||||
@@ -152,12 +154,16 @@ Introduces a sequence of instructions as a routine body, as shown in the [[ET: H
|
||||
|
||||
===else===
|
||||
|
||||
Used in [[ET: Other Mechanisms#Conditional|conditional]] and [[ET: Other Mechanisms#Multi-branch|multi-branch]] instructions to introduce a sequence of instructions to be executed in the case that no specified conditions are met.
|
||||
Used in [[ET-_Instructions#Conditional|conditional]] and [[ET-_Instructions#Multi-branch|multi-branch]] instructions to introduce a sequence of instructions to be executed in the case that no specified conditions are met.
|
||||
|
||||
:[[Eiffel programming language syntax#Conditionals|Conditional syntax.]]
|
||||
|
||||
:[[Eiffel programming language syntax#Multi-branch instructions|Multi-branch syntax.]]
|
||||
|
||||
Used in a [[Conditional_expression|conditional expression]] to compute a value in the case that no specified conditions are met.
|
||||
|
||||
:[[Eiffel programming language syntax#Conditionals|Conditional expression syntax.]]
|
||||
|
||||
Used as part of the double reserved word <code>or else</code>, the semi-strict disjunction operator.
|
||||
|
||||
:[[Eiffel programming language syntax#Operators|Syntax.]]
|
||||
@@ -169,10 +175,14 @@ Used after the reserved word [[#require|<code>require</code>]] as a precondition
|
||||
|
||||
===elseif===
|
||||
|
||||
Used in [[ET: Other Mechanisms#Conditional|conditional]] instructions to effect a "multi-branch" choice instruction.
|
||||
Used in [[ET-_Instructions#Conditional|conditional]] instructions to effect a "multi-branch" choice instruction.
|
||||
|
||||
:[[Eiffel programming language syntax#Conditionals|Syntax.]]
|
||||
|
||||
Used in a [[Conditional_expression|conditional expression]] to effect a "multi-branch" choice to compute of a value.
|
||||
|
||||
:[[Eiffel programming language syntax#Conditionals|Conditional expression syntax.]]
|
||||
|
||||
|
||||
===end===
|
||||
|
||||
@@ -186,6 +196,7 @@ Serves to terminate several Eiffel programming language constructs.
|
||||
::[[Eiffel programming language syntax#Generic constraints|Generic constraints: renaming and constraint creators]]
|
||||
::[[Eiffel programming language syntax#Conditionals|Conditional instructions]]
|
||||
::[[Eiffel programming language syntax#Multi-branch instructions|Multi-branch instructions]]
|
||||
::[[Eiffel programming language syntax#Conditionals|Conditional expressions]]
|
||||
::[[Eiffel programming language syntax#Loops|Loops]]
|
||||
::[[Eiffel programming language syntax#Debug instructions|Debug instructions]]
|
||||
|
||||
@@ -258,9 +269,13 @@ Used with a formal generic parameter to indicate that conformance of generic der
|
||||
|
||||
===if===
|
||||
|
||||
Introduces a [[ET: Other Mechanisms#Conditional|conditional]].
|
||||
Used to introduce a [[ET-_Instructions#Conditional|conditional]].
|
||||
|
||||
:[[Eiffel programming language syntax#Conditionals|Syntax.]]
|
||||
:[[Eiffel programming language syntax#Conditionals|Conditional syntax.]]
|
||||
|
||||
Used to introduce a [[Conditional_expression|Conditional expression]].
|
||||
|
||||
:[[Eiffel programming language syntax#Conditionals|Conditional expression syntax.]]
|
||||
|
||||
|
||||
===implies===
|
||||
@@ -277,7 +292,7 @@ Used in an [[ET: Inheritance|inherit]] clause.
|
||||
|
||||
===inspect===
|
||||
|
||||
Introduces a [[ET: Other Mechanisms#Multi-branch|multi-branch]] instruction.
|
||||
Introduces a [[ET-_Instructions#Multi-branch|multi-branch]] instruction.
|
||||
|
||||
:[[Eiffel programming language syntax#Multi-branch instructions|Syntax.]]
|
||||
|
||||
@@ -437,12 +452,16 @@ Reserved for future use.
|
||||
|
||||
===then===
|
||||
|
||||
Used in [[ET: Other Mechanisms#Conditional|conditional]] and [[ET: Other Mechanisms#Multi-branch|multi-branch]] instructions to introduce a sequence of instructions to be executed in the case that a condition is met.
|
||||
Used in [[ET-_Instructions#Conditional|conditional]] and [[ET-_Instructions#Multi-branch|multi-branch]] instructions to introduce a sequence of instructions to be executed in the case that a condition is met.
|
||||
|
||||
:[[Eiffel programming language syntax#Conditionals|Conditional syntax.]]
|
||||
|
||||
:[[Eiffel programming language syntax#Multi-branch instructions|Multi-branch syntax.]]
|
||||
|
||||
Used in a [[Conditional_expression|conditional expression]] to compute of a value in the case that a condition is met.
|
||||
|
||||
:[[Eiffel programming language syntax#Conditionals|Conditional expression syntax.]]
|
||||
|
||||
Used as part of the double reserved word <code>and then</code>, the semi-strict conjunction operator.
|
||||
|
||||
:[[Eiffel programming language syntax#Operators|Syntax.]]
|
||||
@@ -494,7 +513,7 @@ A predefined entity name representing a [[ET: The Dynamic Structure: Execution M
|
||||
|
||||
===when===
|
||||
|
||||
Used in a [[ET: Other Mechanisms#Multi-branch|multi-branch instruction]] to introduce cases.
|
||||
Used in a [[ET-_Instructions#Multi-branch|multi-branch instruction]] to introduce cases.
|
||||
|
||||
:[[Eiffel programming language syntax#Multi-branch instructions|Syntax.]]
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[[Property:modification_date|Tue, 30 Apr 2019 07:27:55 GMT]]
|
||||
[[Property:modification_date|Mon, 29 Jul 2019 16:52:51 GMT]]
|
||||
[[Property:publication_date|Mon, 29 Apr 2019 14:08:51 GMT]]
|
||||
[[Property:title|Eiffel programming language syntax]]
|
||||
[[Property:link_title|Syntax]]
|
||||
@@ -118,6 +118,9 @@ A sequence of characters consisting of the following, in order:
|
||||
|
||||
Line wrapping parts are used as separators between one [[#Simple strings|Simple_string]] and the next in a [[#Manifest strings|Basic_manifest_string]] so that the string can be split across lines.
|
||||
|
||||
===New line===
|
||||
|
||||
A specimen of New_line is a New Line.
|
||||
|
||||
|
||||
==Eiffel BNF-E Syntax==
|
||||
@@ -334,12 +337,14 @@ Assertion ::= {Assertion_clause ";" ...}*
|
||||
|
||||
Assertion_clause ::= <nowiki>[</nowiki>Tag_mark<nowiki>]</nowiki> Unlabeled_assertion_clause
|
||||
|
||||
Unlabeled_assertion_clause ::= [[#Expressions|Boolean_expression]] | [[#Comments|Comment]]
|
||||
Unlabeled_assertion_clause ::= [[#Expressions|Boolean_expression]] | [[#Comments|Comment]] | `class`
|
||||
|
||||
Tag_mark ::= Tag ":"
|
||||
|
||||
Tag ::= [[#Identfiers|Identifier]]
|
||||
|
||||
{{Note|Unlabeled_assertion_clause of the form `class` can be used only in a postcondition. It marks a feature that does not depend on object state and can be called without a target object using non-object call of the form `{CLASS_NAME}.feature_name (arguments)`.}}
|
||||
|
||||
|
||||
==="Old" postcondition expressions ===
|
||||
Old ::= <code>old</code> [[#Expressions|Expression]]
|
||||
@@ -702,16 +707,11 @@ Verbatim_string_closer ::= Close_bracket <nowiki>[</nowiki>[[#Simple strings|Sim
|
||||
|
||||
Open_bracket ::= <nowiki>"[" | "{"</nowiki>
|
||||
|
||||
Close_bracket ::= "]" | "}"Verbatim_string ::= Verbatim_string_opener Line_sequence Verbatim_string_closer
|
||||
Close_bracket ::= "]" | "}"
|
||||
|
||||
Verbatim_string_opener ::= ' " ' <nowiki>[</nowiki>[[#Simple strings|Simple_string]]<nowiki>]</nowiki> Open_bracket
|
||||
|
||||
Verbatim_string_closer ::= Close_bracket <nowiki>[</nowiki>[[#Simple strings|Simple_string]]<nowiki>]</nowiki> ' " '
|
||||
|
||||
Open_bracket ::= <nowiki>"[" | "{" </nowiki>
|
||||
|
||||
Close_bracket ::= <nowiki>"]" | "}" </nowiki>
|
||||
Line_sequence ::= {[[#Simple strings|Simple_string]] [[#New line|New_line]] ...}+
|
||||
|
||||
{{Note|Exactly the same [[#Simple strings|Simple_string]] (including embedded white space, if any) should be used in ''Verbatim_string_opener'' and ''Verbatim_string_closer'' of the same verbatim string.}}
|
||||
|
||||
===External routines ===
|
||||
External ::= <code>external</code> External_language <nowiki>[External_name]</nowiki>
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
[[Property:modification_date|Tue, 09 Jul 2019 09:42:22 GMT]]
|
||||
[[Property:publication_date|Tue, 09 Jul 2019 09:42:22 GMT]]
|
||||
[[Property:title|Common myths and misconceptions about Eiffel]]
|
||||
[[Property:link_title|]]
|
||||
[[Property:weight|4]]
|
||||
@@ -37,7 +39,7 @@ The answer to this one depends a bit upon your frame of reference. Some time ago
|
||||
|
||||
If this is true, then relatively speaking, we have to admit that Eiffel’s market share ''is'' considerably smaller than that of Visual Basic.
|
||||
|
||||
Despite that, it’s not correct to say that not many people use Eiffel. Eiffel licenses world wide number in the tens of thousands. If you use Eiffel, you are not alone. These license-holders have formed a lasting worldwide quorum. Many world-class organizations are committed now, and will continue to be committed to the Eiffel framework. There is support through your maintenance contract with Eiffel Software. Help and information are available online in the form of the [https://www.eiffel.com/company/customers/ Eiffel Software users’ list] and websites like [http://community.eiffel.com/room/ EiffelRoom].
|
||||
Despite that, it’s not correct to say that not many people use Eiffel. Eiffel licenses world wide number in the tens of thousands. If you use Eiffel, you are not alone. These license-holders have formed a lasting worldwide quorum. Many world-class organizations are committed now, and will continue to be committed to the Eiffel framework. There is support through your maintenance contract with Eiffel Software. Help and information are available online in the form of the [https://www.eiffel.com/company/customers/ Eiffel Software users’ list] and websites like [https://www.eiffel.org/ Eiffel.org].
|
||||
|
||||
Eiffel Software's dual licensing model gives developers the opportunity to learn Eiffel without a great initial financial commitment.
|
||||
|
||||
@@ -65,7 +67,7 @@ And of course, it’s not true.
|
||||
|
||||
Eiffel is more complete and functionally superior in most ways to every other commercially viable software development technology … and there are enough people around who recognize this (that quorum of users I mentioned earlier) to ensure that Eiffel will be around for a long time to come.
|
||||
|
||||
It’s possible that twenty-five years from now, there will be a significantly better software engineering idea … but certainly there hasn’t been anything that’s come close since Eiffel’s original design in 1985. In most areas, other technologies are playing “catch-up” to Eiffel.
|
||||
It’s possible that twenty-five years from now, there will be a significantly better software engineering idea … but certainly, there hasn’t been anything that’s come close since Eiffel’s original design in 1985. In most areas, other technologies are playing “catch-up” to Eiffel.
|
||||
|
||||
Besides, Eiffel constantly implements refinements and new capabilities with minimal impact on existing software. [[Void-safe programming in Eiffel|Void-safe programming]] is an excellent example of this.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[[Property:modification_date|Fri, 22 Mar 2019 14:53:52 GMT]]
|
||||
[[Property:modification_date|Thu, 19 Sep 2019 23:24:40 GMT]]
|
||||
[[Property:publication_date|Fri, 22 Mar 2019 14:53:52 GMT]]
|
||||
[[Property:title|Learning Eiffel]]
|
||||
[[Property:weight|3]]
|
||||
@@ -12,7 +12,7 @@ Your first stop in getting acquainted with Eiffel might be the collection of [ht
|
||||
|
||||
=Online documentation set=
|
||||
|
||||
The [http://docs.eiffel.com docs.eiffel.com] site contains the online documentation for the Eiffel method, tools, and language. Within the documentation set are tutorials to help you learn about the Eiffel programming language and tools.
|
||||
The [http://eiffel.org/documentation|eiffel.org/documentation] section contains the online documentation for the Eiffel method, tools, and language. Within the documentation set are tutorials to help you learn about the Eiffel programming language and tools.
|
||||
|
||||
==The Eiffel Tutorial==
|
||||
|
||||
@@ -52,6 +52,7 @@ The documentation site includes a summary of the [[Quick reference to the Eiffel
|
||||
|
||||
However, usually you will find that there are differences in the syntax supported by EiffelStudio's compiler and that defined in the current standard. The differences between the standard and the EiffelStudio implementation are summarized in the [[EiffelStudio release notes]] and in a [[Differences between standard ECMA-367 and Eiffel Software implementation|documentation page]] that is specific to that purpose.
|
||||
|
||||
Another [[Differences_between_ETL_2nd_printing_and__Eiffel_Software__implementation|a documentation page]] summarizes changes to the pre-ECMA definition of Eiffel as described in [[Eiffel-_The_Language|ETL-2 "Eiffel: The Language"]].
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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]]}}
|
||||
@@ -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]] }}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
[[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]]
|
||||
@@ -8,7 +10,7 @@
|
||||
|
||||
=='''''Touch of Class: Learning to Program Well with Objects and Contracts''''' by Bertrand Meyer==
|
||||
|
||||
Springer-Verlag, 2009
|
||||
Springer-Verlag, 2009, 2nd corrected ed. 2013
|
||||
|
||||
876 + lxiv pp.
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
[[Property:modification_date|Tue, 10 Sep 2019 21:54:55 GMT]]
|
||||
[[Property:publication_date|Tue, 10 Sep 2019 21:54:55 GMT]]
|
||||
[[Property:title|ET: Instructions]]
|
||||
[[Property:weight|-6]]
|
||||
[[Property:uuid|628bf3db-728f-0b3c-bdbb-fe52deaae5b7]]
|
||||
@@ -104,11 +106,7 @@ Here's one example:
|
||||
and the other:
|
||||
|
||||
<code>
|
||||
across
|
||||
my_list as ic
|
||||
loop
|
||||
print (ic.item)
|
||||
end
|
||||
across my_list as ic loop print (ic.item) end
|
||||
</code>
|
||||
''Loop example 2.''
|
||||
|
||||
@@ -117,14 +115,8 @@ At first observation, it may not appear that both of these examples are using th
|
||||
|
||||
Incidentally, there is no requirement that ''Loop example 1'' occupy multiple lines, and ''Loop example 2'' occupy only one line. ''Loop example 1'' could have been written like this:
|
||||
<code>
|
||||
from
|
||||
my_list.start
|
||||
until
|
||||
my_list.off
|
||||
loop
|
||||
print (my_list.item)
|
||||
my_list.forth
|
||||
end
|
||||
from my_list.start until my_list.off
|
||||
loop print (my_list.item) my_list.forth end
|
||||
</code>
|
||||
just as ''Loop example 2'' could have been written to take multiple lines. It comes down to a matter of balance among traditional style, conciseness, and readability.
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
[[Property:modification_date|Tue, 10 Sep 2019 23:07:44 GMT]]
|
||||
[[Property:publication_date|Tue, 10 Sep 2019 23:07:44 GMT]]
|
||||
[[Property:title|ET: Other Mechanisms]]
|
||||
[[Property:weight|-4]]
|
||||
[[Property:uuid|c0a01664-194c-4e84-0517-8e7c1ca61dec]]
|
||||
@@ -14,7 +16,7 @@ Sometimes we want to provide in software text a self-denoting value of a particu
|
||||
|
||||
In this case we used a manifest constant, <code>1</code>, to provide an initial value for <code>my_index</code>. In particular, this is a manifest integer.
|
||||
|
||||
Eiffel also supports [[Eiffel Programming Language Syntax#Manifest constants|manifest constants]] for real (and double) numbers (ex: <code>3.1415</code>), boolean values (ex: <code>True</code>, <code>False</code>), and characters (ex: <code>'A'</code>, with [[Eiffel programming language syntax#Special characters|special characters]] expressed using a percent sign as in <code>'%N'</code> for new line, <code>'%B'</code> for backspace, <code>'%"'</code> for double quote, and <code>'%U'</code> for null).
|
||||
Eiffel also supports [[Eiffel_programming_language_syntax#Manifest_constants|manifest constants]] for real (and double) numbers (ex: <code>3.1415</code>), boolean values (ex: <code>True</code>, <code>False</code>), and characters (ex: <code>'A'</code>, with [[Eiffel programming language syntax#Special characters|special characters]] expressed using a percent sign as in <code>'%N'</code> for new line, <code>'%B'</code> for backspace, <code>'%"'</code> for double quote, and <code>'%U'</code> for null).
|
||||
|
||||
Manifest constants are also available for strings, using double quotes as in: <code>"Hello world!"</code>. As with character constants, special characters are denoted using the <code>%</code> codes.
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
[[Property:modification_date|Wed, 18 Sep 2019 08:06:58 GMT]]
|
||||
[[Property:publication_date|Wed, 18 Sep 2019 08:06:58 GMT]]
|
||||
[[Property:title|Manual identification and copyright]]
|
||||
[[Property:weight|7]]
|
||||
[[Property:uuid|c581a81b-fc9b-99bd-e73a-f290f6051a45]]
|
||||
@@ -5,7 +7,7 @@ Title: ''EiffelStudio: A Guided Tour'', Eiffel Software Technical Report TR-EI-6
|
||||
|
||||
===Publication history===
|
||||
|
||||
First published 1993 as ''First Steps with EiffelBench'' (TR-EI-38/EB) and revised as a chapter of ''Eiffel: The Environment'' [http://www.eiffel.com/doc/ (TR-EI-39/IE), also available as] <span>An Object-Oriented Environment</span> (Prentice Hall, 1994, ISBN 0-13-245-507-2.
|
||||
First published 1993 as ''First Steps with EiffelBench'' (TR-EI-38/EB) and revised as a chapter of ''Eiffel: The Environment'' (TR-EI-39/IE), also available as <span>An Object-Oriented Environment</span> (Prentice Hall, 1994, ISBN 0-13-245-507-2.
|
||||
|
||||
Version 3.3.8, 1995.
|
||||
|
||||
@@ -35,39 +37,5 @@ Any third-party products mentioned in this document are hereby acknowledged as t
|
||||
|
||||
===Special duplication permission for educational institutions===
|
||||
|
||||
Degree-granting educational institutions using EiffelStudio teaching purposes as part of the <span> [http://www.eiffel.com/educators/resources.html Eiffel University Partnership Program] </span> may be permitted under certain conditions to copy specific parts of this book. Contact Eiffel Software for details.
|
||||
{|
|
||||
|-
|
||||
| <center>'''About Eiffel Software ''' </center>
|
||||
|-
|
||||
|
|
||||
Eiffel Software (Interactive Software Engineering) helps you produce software better, faster and cheaper.
|
||||
|
||||
Eiffel Software provides a wide range of products and services based on object technology, including EiffelStudio, a complete development environment for the full system lifecycle. Eiffel Software's training courses, available worldwide, cover key management and technical topics. Eiffel Software's consultants are available to address your project needs at all levels.
|
||||
|
||||
Eiffel Software's TOOLS (Technology of Object-Oriented Languages and Systems) conferences, [http://www.tools-conferences.com http://www.tools-conferences.com] , are the meeting point for anyone interested in the software technologies of the future.
|
||||
|
||||
Eiffel Software originated one of the earliest .NET products and offers a full range of .NET services and training at [http://www.dotnetexperts.com http://www.dotnetexperts.com] .
|
||||
|
||||
For more information <br/>
|
||||
<br/>
|
||||
Interactive Software Engineering Inc.<br/>
|
||||
Eiffel Software Building, 360 Storke Road<br/>
|
||||
Goleta, CA 93117 USA<br/>
|
||||
Telephone 805-685-1006, Fax 805-685-6869 <br/>
|
||||
<br/>
|
||||
Internet and e-mail
|
||||
|
||||
Eiffel Software maintains a rich source of information at [http://www.eiffel.com http://www.eiffel.com] , with more than 1200 Web pages including online documentation, downloadable files, product descriptions, links to Eiffel Software partners, University Partnership program, mailing list archives, announcements, press coverage, Frequently Asked Questions, Support pages, and much more.
|
||||
|
||||
Visit [http://www.eiffel.com/general/contact_details.html http://www.eiffel.com/general/contact_details.html] to request information about products and services. To subscribe to the Eiffel Software user list, go to[http://groups.eiffel.com/join http://groups.eiffel.com/join] .
|
||||
|
||||
Support programs
|
||||
|
||||
Eiffel Software offers a variety of support options tailored to the diverse needs of its customers. See [http://support.eiffel.com http://support.eiffel.com] for details.
|
||||
|
||||
|}
|
||||
|
||||
|
||||
|
||||
Degree-granting educational institutions using EiffelStudio teaching purposes as part of the <span> Eiffel University Partnership Program </span> may be permitted under certain conditions to copy specific parts of this book. Contact [https://www.eiffel.com Eiffel Software] for details.
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
[[Property:modification_date|Wed, 11 Sep 2019 02:15:25 GMT]]
|
||||
[[Property:publication_date|Wed, 11 Sep 2019 02:15:25 GMT]]
|
||||
[[Property:title|Starting To Browse]]
|
||||
[[Property:weight|-10]]
|
||||
[[Property:uuid|cb6c2e52-d238-9b55-0b78-ab3af9568550]]
|
||||
@@ -64,7 +66,7 @@ The most extensive subcluster of the EiffelBase library is <code>structures</cod
|
||||
|
||||
{{note|If you initially don't see as many details as shown on this figure, you may get them by resizing the window, moving the vertical pane boundary, and/or scrolling.}}
|
||||
|
||||
The EiffelBase Data Structure library and its subclusters are described in the book [http://www.eiffel.com/services/training/books.html Reusable Software]. Let's go to one of the most frequently used subclusters, <code>list</code>, containing implementations of list structures. Expand the subcluster <code>list</code>. This time, since list is a terminal cluster, it's not subclusters you'll see, but '''classes''', identified by small ellipses ([[Image:class-normal-icon]]):
|
||||
The EiffelBase Data Structure library and its subclusters are described in the book [[Reusable_Software-_The_Base_Object-Oriented_Component_Libraries|"Reusable Software: The Base Object-Oriented Component Libraries" ]] . Let's go to one of the most frequently used subclusters, <code>list</code>, containing implementations of list structures. Expand the subcluster <code>list</code>. This time, since list is a terminal cluster, it's not subclusters you'll see, but '''classes''', identified by small ellipses ([[Image:class-normal-icon]]):
|
||||
|
||||
[[Image:es gt groups tool 03]]
|
||||
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
[[Property:modification_date|Tue, 12 Nov 2019 13:31:36 GMT]]
|
||||
[[Property:publication_date|Tue, 12 Nov 2019 13:20:00 GMT]]
|
||||
[[Property:title|Compiler History]]
|
||||
[[Property:weight|-8]]
|
||||
[[Property:uuid|359395e7-4933-bb74-4397-353c8b6955cd]]
|
||||
==Compiler version history==
|
||||
|
||||
|
||||
{{Warning|This page as not been maintained}}
|
||||
|
||||
{{Note|Please check the -> [[EiffelStudio_release_notes|EiffelStudio Release Notes]]}}
|
||||
@@ -1,3 +1,5 @@
|
||||
[[Property:modification_date|Mon, 29 Jul 2019 05:54:09 GMT]]
|
||||
[[Property:publication_date|Tue, 09 Jul 2019 08:25:22 GMT]]
|
||||
[[Property:title|Differences between ETL 2nd printing and Eiffel Software implementation]]
|
||||
[[Property:link_title|ETL 2nd printing vs implementation]]
|
||||
[[Property:weight|-9]]
|
||||
@@ -7,68 +9,46 @@
|
||||
"ETL 2nd printing" refers to the book "Eiffel: The Language" (2nd printing), published by Prentice Hall.
|
||||
|
||||
==Added classes==
|
||||
* New basic classes have been added: <eiffel>INTEGER_8</eiffel>, <eiffel>INTEGER_16</eiffel>, <eiffel>INTEGER_64</eiffel> and <eiffel>WIDE_CHARACTER</eiffel>.{{seealso|[[Differences between standard ECMA-367 and Eiffel Software implementation|Differences between standard ECMA-367 and Eiffel Software implementation]] }}
|
||||
|
||||
==Added classes==
|
||||
* New basic classes have been added: <eiffel>INTEGER_8</eiffel>, <eiffel>INTEGER_16</eiffel>, <eiffel>INTEGER_64</eiffel> and <eiffel>WIDE_CHARACTER</eiffel>. <eiffel>INTEGER</eiffel> is now specified as having a 32 bits representation
|
||||
* New <eiffel>TUPLE</eiffel>, <eiffel>ROUTINE</eiffel>, <eiffel>PROCEDURE</eiffel> and <eiffel>FUNCTION</eiffel> classes required by the agent mechanism.
|
||||
* New basic classes have been added: <eiffel>INTEGER_8</eiffel>, <eiffel>INTEGER_16</eiffel>, <eiffel>INTEGER_64</eiffel>, <eiffel>CHARACTER_32</eiffel>. <eiffel>INTEGER</eiffel>, <eiffel>CHARACTER</eiffel>, <eiffel>REAL</eiffel>, <eiffel>DOUBLE</eiffel> are aliases to <eiffel>INTEGER_32</eiffel>, <eiffel>CHARACTER_8</eiffel>, <eiffel>REAL_32</eiffel>, <eiffel>REAL_64</eiffel>. {{seealso|[[Differences between standard ECMA-367 and Eiffel Software implementation|Differences between standard ECMA-367 and Eiffel Software implementation]]}}
|
||||
* New <eiffel>TUPLE</eiffel>, <eiffel>ROUTINE</eiffel>, <eiffel>PROCEDURE</eiffel>, <eiffel>FUNCTION</eiffel>, <eiffel>PREDICATE</eiffel> classes required by the agent mechanism.
|
||||
|
||||
==Added keywords==
|
||||
* <code>Precursor</code>
|
||||
* <code>reference</code>: new keyword to specify that a type is used as a reference type.
|
||||
* <code> agent</code>: new keyword used by the agent mechanism.
|
||||
* <code>create</code>: Instead of using the famous exclamation mark to create an instance of a class, you can use the keyword <code>create</code>. Below you will find a correspondence table between the old and the new syntaxes. The old syntax is still valid, but at some points Eiffel Software will remove it from its implementation:
|
||||
{|
|
||||
|-
|
||||
| Old syntax
|
||||
| New syntax
|
||||
|-
|
||||
| !! a
|
||||
| <code>create</code> a
|
||||
|-
|
||||
| !! a.make
|
||||
| <code>create</code> a.make
|
||||
|-
|
||||
| !<eiffel>B</eiffel>! a
|
||||
| <code>create</code> {<eiffel>B</eiffel>} a
|
||||
|-
|
||||
| !<eiffel>B</eiffel>! a.make
|
||||
| <code>create</code> {<eiffel>B</eiffel>} a.make
|
||||
|}
|
||||
* <code>note</code>: replacement for the keyword <code>indexing</code>.
|
||||
* <code>attribute</code>: new keyword to declare attribute body.
|
||||
* <code>attached</code>: new keyword to specify attached types and object tests.
|
||||
* <code>detachable</code>: new keyword to specify detachable types.
|
||||
* <eiffel>Precursor</eiffel>
|
||||
* <eiffel>reference</eiffel> (now obsolete): a keyword to specify that a type is used as a reference type.
|
||||
* <eiffel>agent</eiffel>: a keyword used by the agent mechanism.
|
||||
* <eiffel>create</eiffel>: Instead of using the famous exclamation mark to create an instance of a class, you can use the keyword <eiffel>create</eiffel>. Below you will find a correspondence table between the old and the new syntaxes. The old syntax is still valid, but at some points Eiffel Software will remove it from its implementation:
|
||||
|
||||
** Old syntax `!! a` => new syntax `create a`
|
||||
** Old syntax `!! a.make` => new syntax `create a.make`
|
||||
** Old syntax `!B! a` => new syntax `create {B} a`
|
||||
** Old syntax `!B! a.make` => new syntax `create {B} a.make`
|
||||
|
||||
* <eiffel>note</eiffel>: replacement for the keyword <code>indexing</code>.
|
||||
* <eiffel>attribute</eiffel>: a keyword to declare attribute body.
|
||||
* <eiffel>attached</eiffel>: a keyword to specify attached types and object tests.
|
||||
* <eiffel>detachable</eiffel>: a keyword to specify detachable types.
|
||||
|
||||
==Added semantics==
|
||||
* [[ET: Genericity and Arrays|Generic creation]]
|
||||
* Expression creation: you can now create an object within an expression. For example, you want to create an object and pass it as an argument to a function. Whereas you had to create a local variable, create the object and pass it to the function, you now simply need to pass to the function the creation expression. Here is a small example:
|
||||
{|
|
||||
|-
|
||||
| Old method
|
||||
| New method
|
||||
|-
|
||||
|
|
||||
** Old method:
|
||||
<code>
|
||||
local
|
||||
a: STRING
|
||||
do
|
||||
!! a.make (10)
|
||||
‼ a.make (10)
|
||||
f (a)
|
||||
end
|
||||
</code>
|
||||
|
||||
|
|
||||
** 'New method:
|
||||
<code>
|
||||
do
|
||||
f (create {STRING}.make (10))
|
||||
end
|
||||
</code>
|
||||
|
||||
|}
|
||||
This is also very useful since it can improve the power of assertions.
|
||||
* Mutually recursive constraints: one can now write class A [H, G->H] or class B [H -> C, G -> ARRAY [H]]. As a result, the declaration A [D, E] is valid only if E is a descendant of D. Similarly, the declaration B [E, ARRAY [D]] is not valid, if E is a descendant of D.
|
||||
* Mutually recursive constraints: one can now write class `A [H, G->H]` or class `B [H -> C, G -> ARRAY [H]]`. As a result, the declaration `A [D, E]` is valid only if `E` is a descendant of `D`. Similarly, the declaration `B [E, ARRAY [D]]` is not valid, if `E` is a descendant of `D`.
|
||||
* [[ET: Other Mechanisms|Tuples]]
|
||||
* [[ET: Agents|Agents]]
|
||||
* Feature access: <br/>
|
||||
@@ -85,11 +65,9 @@ The previous call is valid, if and only if:
|
||||
** <eiffel>value</eiffel> is a C/C++/DLL external feature
|
||||
** <eiffel>value</eiffel> is an IL static external feature
|
||||
|
||||
==Obsolete constructs==
|
||||
* Explicit values should be used to specify constant attributes instead of keyword `unique`.
|
||||
|
||||
==Added external support==
|
||||
|
||||
Look at the page for [[C externals|C]] and [[C++ Externals|C++]] with the introduction of `struct` and C++ external features encapsulation.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
[[Property:modification_date|Tue, 09 Jul 2019 09:52:07 GMT]]
|
||||
[[Property:publication_date|Tue, 09 Jul 2019 09:46:53 GMT]]
|
||||
[[Property:title|Differences between standard ECMA-367 and Eiffel Software implementation]]
|
||||
[[Property:link_title|ECMA-367 vs implementation]]
|
||||
[[Property:weight|-10]]
|
||||
@@ -116,10 +118,10 @@ for free operator names
|
||||
| Yes
|
||||
|-
|
||||
| Bang-bang syntax
|
||||
| <code>!! a</code><br/>
|
||||
<code>!! a.make</code><br/>
|
||||
<code>!B! a</code><br/>
|
||||
<code>!B! a.make</code>
|
||||
| !! a<br/>
|
||||
!! a.make<br/>
|
||||
!B! a<br/>
|
||||
!B! a.make
|
||||
| Yes
|
||||
| No
|
||||
| Yes, marked as obsolete
|
||||
@@ -196,13 +198,13 @@ reattachment
|
||||
| Yes
|
||||
|-
|
||||
| Assigner call
|
||||
| <code>x</code> <code>[</code><code>i</code><code>]</code> <code>:=</code> <code>x</code> <code>[</code><code>i</code><code>]</code> <code>+</code> <code>1</code>
|
||||
| <eiffel>x [i] := x [i] + 1</eiffel>
|
||||
| No
|
||||
| Yes
|
||||
| Yes
|
||||
|-
|
||||
| Bracket expression as call target
|
||||
| <code>x</code> <code>[</code><code>i</code><code>]</code><code>.</code><eiffel>update</eiffel>
|
||||
| <eiffel>x [i].update</eiffel>
|
||||
| No
|
||||
| No
|
||||
| Yes
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
[[Property:modification_date|Mon, 11 Nov 2019 19:13:26 GMT]]
|
||||
[[Property:publication_date|Mon, 11 Nov 2019 19:13:26 GMT]]
|
||||
[[Property:title|Supported C compilers]]
|
||||
[[Property:weight|-14]]
|
||||
[[Property:uuid|4d4a70fa-b6da-cecb-83e0-dcc18d6ed54a]]
|
||||
@@ -52,7 +54,22 @@ Alternatively, you can set the environment variable <code lang="text">ISE_C_COMP
|
||||
| Microsoft Visual Studio C++ 2015 (v14.0)
|
||||
| `msc_vc140`
|
||||
|-
|
||||
| Microsoft Visual Studio C++ 2017 (v15.0)
|
||||
| Microsoft Visual Studio C++ 2017 (v14.1)
|
||||
| `msc_vc140`
|
||||
|-
|
||||
| Microsoft Visual Studio C++ 2019 (v14.2)
|
||||
| `msc_vc140`
|
||||
|-
|
||||
|}
|
||||
|
||||
===Availability of free compilers===
|
||||
|
||||
'' Microsoft ''
|
||||
|
||||
Download the free [https://visualstudio.microsoft.com/vs/community/|Visual Studio Community Edition]
|
||||
|
||||
If required download [https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads|Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019].
|
||||
|
||||
'' MinGW ''
|
||||
|
||||
Copy included with the Eiffel Software distribution.
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
[[Property:modification_date|Mon, 02 Sep 2019 08:02:24 GMT]]
|
||||
[[Property:publication_date|Mon, 02 Sep 2019 08:02:24 GMT]]
|
||||
[[Property:uuid|7CCF602E-0B79-49C2-93FE-39C90CBE4E35]]
|
||||
[[Property:link_title|Code Templates]]
|
||||
[[Property:title|Code Templates]]
|
||||
@@ -98,7 +100,7 @@ It is very easy to define a template. It is all done in Eiffel, of course. You s
|
||||
To offer templates as part of code completion, EiffelStudio looks in two locations:
|
||||
* Standard templates, found in:
|
||||
** Linux: <code>$ISE_EIFFEL/studio/templates/code</code>
|
||||
** Eiffel: <code>%ISE_EIFFEL%/studio/templates/code</code>
|
||||
** Windows: <code>%ISE_EIFFEL%/studio/templates/code</code>
|
||||
* User-defined templates, which you can add at:
|
||||
** Linux: <code> ~/.es/eiffel_user_files/16.11/templates/code</code>
|
||||
** Windows: <code>C:/Users/your_user_name/Documents/Eiffel User Files/16.11/templates/code</code>
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
[[Property:modification_date|Tue, 02 Jul 2019 11:08:53 GMT]]
|
||||
[[Property:publication_date|Tue, 02 Jul 2019 10:53:22 GMT]]
|
||||
[[Property:title|Windows]]
|
||||
[[Property:weight|9]]
|
||||
[[Property:uuid|d177e0bc-63e6-63b3-7fdb-5e7136945e21]]
|
||||
@@ -49,6 +51,29 @@ You may receive the following dialog when launching EiffelStudio:
|
||||
|
||||
This probably means that EiffelStudio was not properly installed using the '''setup.exe''' program. Uninstall EiffelStudio and rerun the installation procedure by making sure to launch '''setup.exe''' and enter your '''Username''' and '''CD Key'''.
|
||||
|
||||
== Installing EiffelStudio from the .7z archive ==
|
||||
Installing the GPL version using the 7z archive is an alternative, even if the recommended solution remains using the MSI installer.
|
||||
The procedure is quite similar to Linux, see [[Linux#Setting_up_EiffelStudio]]:
|
||||
* Extract the .7z archive in a folder
|
||||
* set the `ISE_EIFFEL` variable to the location of the extracted Eiffel_X.Y folder
|
||||
* set the `ISE_PLATFORM` variable to `win64` or `windows`
|
||||
* set the `ISE_C_COMPILER` variable to `msc_vc140` , or `msc` if you use VisualStudio 2012 or before
|
||||
* And add to your PATH variable the values:
|
||||
** `%ISE_EIFFEL%\studio\spec\%ISE_PLATFORM%\bin`
|
||||
** `%ISE_EIFFEL%\tools\spec\%ISE_PLATFORM%\bin`
|
||||
** `%ISE_EIFFEL%\library\gobo\spec\%ISE_PLATFORM%\bin`
|
||||
```text
|
||||
set PATH=%ISE_EIFFEL%\studio\spec\%ISE_PLATFORM%\bin;%ISE_EIFFEL%\tools\spec\%ISE_PLATFORM%\bin;%ISE_EIFFEL%\library\gobo\spec\%ISE_PLATFORM%\bin;%PATH%
|
||||
```
|
||||
|
||||
The environment variables can be set for your system, or for each DOS console, a simple way is to create a file "setup.bat", within the Eiffel_X.Y folder, with the following content:
|
||||
```text
|
||||
set ISE_EIFFEL=%~dp0
|
||||
set ISE_PLATFORM=win64
|
||||
set ISE_C_COMPILER=msc_vc140
|
||||
set PATH=%ISE_EIFFEL%\studio\spec\%ISE_PLATFORM%\bin;%ISE_EIFFEL%\tools\spec\%ISE_PLATFORM%\bin;%ISE_EIFFEL%\library\gobo\spec\%ISE_PLATFORM%\bin;%PATH%
|
||||
```
|
||||
|
||||
==.NET Support==
|
||||
|
||||
To enable .NET support in EiffelStudio, it is necessary to install the Microsoft .NET Framework prior to starting the installation of EiffelStudio. EiffelStudio currently supports all the versions of the .NET Framework up to 4.0.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[[Property:modification_date|Sat, 19 Jan 2019 15:46:52 GMT]]
|
||||
[[Property:modification_date|Fri, 20 Dec 2019 04:46:48 GMT]]
|
||||
[[Property:publication_date|Thu, 06 Sep 2018 15:10:13 GMT]]
|
||||
[[Property:title|Documentation]]
|
||||
[[Property:description|Central repository of information about Eiffel and the products and technologies of Eiffel Software]]
|
||||
@@ -17,7 +17,7 @@ This is the Eiffel documentation site, with a wealth of resources on how to unle
|
||||
** [[Setup and installation]].
|
||||
** [[EiffelStudio tutorials]]
|
||||
** [[Technical papers about EiffelStudio|Technical papers]] on specific concepts and tools
|
||||
* [[Solutions]]. EiffelStudio comes with numerous libraries, packages, and tools. The Solutions book includes:
|
||||
* [/doc/solutions/Solutions_and_Libraries|Solutions]: EiffelStudio comes with numerous libraries, packages, and tools. The Solutions book includes:
|
||||
** Libraries: data structures, graphics, concurrency (SCOOP), networking...
|
||||
** Packages
|
||||
** Tools
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
[[Property:title|IFELL]]
|
||||
[[Property:link_title|Free Eiffel Library License]]
|
||||
[[Property:modification_date|Wed, 18 Sep 2019 08:13:12 GMT]]
|
||||
[[Property:publication_date|Wed, 11 Sep 2019 01:54:10 GMT]]
|
||||
[[Property:title|Eiffel Software Free Eiffel Library License (IFELL)]]
|
||||
[[Property:weight|4]]
|
||||
[[Property:uuid|34079f13-741d-a937-e492-9ccfe235efeb]]
|
||||
This license describes the terms applicable to the open-source EiffelBase libraries. For the EiffelStudio and other libraries license terms, please refer to the Eiffel Software end-user license.
|
||||
@@ -11,7 +14,7 @@ We hope that others will be inspired by this example to release their own reusab
|
||||
==Preamble==
|
||||
(This Preamble is not part of the license.)
|
||||
|
||||
EiffelBase is one of the principal contributions of Eiffel: a library of fundamental structures and algorithms covering the basics of computing, and resulting from a "Linnaean" effort at a general-purpose taxonomy of computing structures. We believe that EiffelBase is one of the most carefully designed and extensively used libraries in the object-oriented industry. The library and its design principles are described in detail in the book [http://www.eiffel.com/services/training/books.html ''Reusable Software: The Base Object-Oriented Component Libraries'' ] .
|
||||
EiffelBase is one of the principal contributions of Eiffel: a library of fundamental structures and algorithms covering the basics of computing, and resulting from a "Linnaean" effort at a general-purpose taxonomy of computing structures. We believe that EiffelBase is one of the most carefully designed and extensively used libraries in the object-oriented industry. The library and its design principles are described in detail in the book [[Reusable_Software-_The_Base_Object-Oriented_Component_Libraries|"Reusable Software: The Base Object-Oriented Component Libraries" ]] .
|
||||
|
||||
EiffelBase is at the center of Eiffel Software's Eiffel and has been among the major factors attracting users to the technology. In spite of this competitive advantage, Eiffel Software officially announced in June of 1998 that it would release the library to the public in source form, under the terms of the license below. There are two main reasons for this initiative:
|
||||
* As the software industry seems poised to adopt the idea of reusable components, we feel that EiffelBase provides an ideal basis and are happy to contribute it to the community.
|
||||
@@ -65,7 +68,7 @@ This is the official license text.
|
||||
'''4.'''If you produce new classes based on the Library or extending the Library, you are encouraged, but not required, to make them available in the same way.
|
||||
|
||||
'''5.''' If you use the Library (2.1) in source or object form for producing software that you distribute, you are encouraged, but not required, to include the following mention (or its translation into the language of the rest of the distribution, if other than English) in the documentation of your software, including textual documentation as well as online documentation such as "About..." entries:
|
||||
* ''This product includes EiffelBase software from Interactive Software Engineering, used according to the terms of the Eiffel Software Free Eiffel Library License (IFELL). ''See [http://eiffel.com/ http://eiffel.com] and, for the license terms, [http://eiffel.com/products/base/license.html http://eiffel.com/products/base/license.html] .
|
||||
* ''This product includes EiffelBase software from Interactive Software Engineering, used according to the terms of the Eiffel Software Free Eiffel Library License (IFELL). ''See [https://eiffel.com/ https://eiffel.com] and, for the license terms, [https://www.eiffel.com/eiffelstudio/licensing/ https://www.eiffel.com/eiffelstudio/licensing/] .
|
||||
|
||||
|
||||
'''6.''' If you distribute the source code of part or all of the Library (2.2) you must:
|
||||
@@ -73,7 +76,7 @@ This is the official license text.
|
||||
* Retain, in the distributed version, the entire copyright notice of these classes.
|
||||
* If you need to make any modification to the classes, mark those modifications clearly in the class texts.
|
||||
* <span id="valid_eiffel"></span> Ensure that the text remains valid Eiffel. Note that this license does not authorize you to distribute versions of the Library restated in other programming, analysis or design languages, except if mechanically translated from the source form by an Eiffel compiler, in which case they fall under "object form". For any non-mechanical adaptation to other languages you must obtain authorization from Eiffel Software. "Valid Eiffel" includes the language described in the latest edition or printing of the book ''[[Eiffel: The Language]]'' (Prentice Hall), plus any changes or extensions that have been approved by the Nonprofit International Consortium for Eiffel (NICE) or have been accepted for discussion by the Language Committee of NICE, provided they are accepted by the reference implementation.
|
||||
* <span id="obsolete_version"></span> If Eiffel Software releases a new version of the Library, you must, no later than six months after the release of that version, either: (A) update your distribution to the new version; (B) add the following notice to all files in your distribution:" ''This is an obsolete version of EiffelBase. The latest version is available from http://eiffel.com''"; or (C) cease distributing your version.
|
||||
* <span id="obsolete_version"></span> If Eiffel Software releases a new version of the Library, you must, no later than six months after the release of that version, either: (A) update your distribution to the new version; (B) add the following notice to all files in your distribution:" ''This is an obsolete version of EiffelBase. The latest version is available from https://eiffel.com''"; or (C) cease distributing your version.
|
||||
|
||||
|
||||
You may not charge any fee for the distribution of the Library (source or binary), although you may charge for software that includes the Library in whole or in part as per the other provisions of this Agreement.
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
[[Property:title|Solutions]]
|
||||
[[Property:modification_date|Sat, 05 Oct 2019 13:56:56 GMT]]
|
||||
[[Property:publication_date|Sat, 05 Oct 2019 13:34:12 GMT]]
|
||||
[[Property:link_title|Solutions and Libraries]]
|
||||
[[Property:title|Solutions and Libraries]]
|
||||
[[Property:description|Eiffel Solutions, Technologies, and Class Libraries]]
|
||||
[[Property:weight|3]]
|
||||
[[Property:uuid|0f0913fe-d71c-43d3-6c22-706c8ed5d4ad]]
|
||||
@@ -7,6 +10,7 @@
|
||||
In this book you will find information about the facilities provided by Eiffel for satisfying many software development needs.
|
||||
|
||||
This includes:
|
||||
* The documentation for the Eiffel IRON repository
|
||||
* The documentation for the Eiffel class libraries
|
||||
** Tutorials and/or user guides
|
||||
** Class references -- the library, cluster, and class views
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
[[Property:modification_date|Sat, 05 Oct 2019 14:14:29 GMT]]
|
||||
[[Property:publication_date|Sat, 05 Oct 2019 13:54:59 GMT]]
|
||||
[[Property:title|IRON: Eiffel package repository]]
|
||||
[[Property:link_title|IRON packages]]
|
||||
[[Property:weight|0]]
|
||||
[[Property:link_title|IRON Eiffel repository]]
|
||||
[[Property:weight|-20]]
|
||||
[[Property:uuid|393EFF7D-49DF-472C-89CE-7E0970F1A96A]]
|
||||
{{ReviewRequested}}
|
||||
{{Info|This is a repost of the original documentation as provided at [https://iron.eiffel.com/repository/doc/] }}
|
||||
|
||||
::Visit the [https://iron.eiffel.com/repository/|IRON package repository]
|
||||
|
||||
=Purpose=
|
||||
|
||||
|
||||
Reference in New Issue
Block a user