Questions tagged [eiffel]

Eiffel is a statically typed object-oriented programming language closely related with the programming method of the same name. Both are based on a set of principles like Design by Contract, Command-Query Separation, Uniform Access, etc. Many concepts initially introduced by Eiffel find their way to C#, Java and other languages. The program in Eiffel can be compiled unchanged for almost any target platform.

Background

The design goal behind the Eiffel language, libraries, and programming methods is to enable programmers to create reliable, reusable software modules. Eiffel supports multiple inheritance, genericity, polymorphism, encapsulation, type-safe conversions, and parameter covariance. Eiffel's most important contribution to software engineering is design by contract (DbC), in which assertions, preconditions, postconditions, and class invariants are employed to help ensure program correctness without sacrificing efficiency.

Eiffel's design is based on object-oriented programming theory, with only minor influence of other paradigms or concern for support of legacy code. Eiffel formally supports abstract data types. Under Eiffel's design, a software text should be able to reproduce its design documentation from the text itself, using a formalized implementation of the "Abstract Data Type". See wikipedia for more information.

Standards

The Eiffel language definition is an international standard ISO/IEC DIS 25436. The latter is identical to the version of ECMA International: Standard ECMA-367, Eiffel: Analysis, Design and Programming Language.

Key characteristics

  • An object-oriented program structure in which a class serves as the basic unit of decomposition.
  • Design by contract tightly integrated with other language constructs.
  • Automatic memory management, typically implemented by garbage collection.
  • Inheritance, including multiple inheritance, renaming, redefinition, "select", non-conforming inheritance, and other mechanisms intended to make inheritance safe.
  • Constrained and unconstrained generic programming.
  • A uniform type system handling both value and reference semantics in which all types, including basic types such as INTEGER, are class-based.
  • Static typing.
  • Void safety, or static protection against calls on null references, through the attached-types mechanism.
  • Agents, or objects that wrap computations, closely connected with closures and lambda calculus.
  • Once routines, or routines evaluated only once, for object sharing and decentralized initialization.
  • Keyword-based syntax similar to ALGOL/Pascal but separator-free, insofar as semicolons are optional, with operator syntax available for routines.
  • Case insensitivity.
  • Built-in support for concurrency using SCOOP (Simple Concurrent Object-Oriented Programming) model.

Resources

288 questions
0
votes
3 answers

How to make methods in one class accessible from another one?

I'm a beginner in Eiffel. I got 2 classes. The main one called APPLICATION: class APPLICATION inherit ARGUMENTS create make feature {NONE} -- Initialization make -- Run application. do print…
Phil_oneil
  • 267
  • 3
  • 11
0
votes
1 answer

Unknown eiffel syntax error

I am a beginner in Eiffel programming and I just try to create variable and I get an error,heres my code: class APPL create make local v1:BOOLEAN v2:BOOLEAN v3:BOOLEAN do …
Phil_oneil
  • 267
  • 3
  • 11
0
votes
1 answer

EiffelStudio: no autocomplete for local entities

I have tried to use EiffelStudio for a small Eiffel project and I have realized that its autocompletion feature (press the . and then a feature list will appear) does not work for local entities the type of which come from the Eiffel library. For…
user1724641
  • 331
  • 1
  • 11
0
votes
1 answer

Apache Web server using fcgi

I have web application server that handles requests and returns response created in Eiffel web framework and uses fcgi as a connector, and I have put the final executable file in the htdocs file (app.exe). Now I want to run apache with fastcgi and…
user3793178
  • 11
  • 1
  • 2
0
votes
2 answers

Eiffel Iterable implementation on MAP?

I have a class called MAP : class MAP [KEY,VAL] inherit ITERABLE [KEY] I implemented the new cursor inside the map cursor which returns and MAP_ITERATOR_CURSOR [KEY] and passes that iterable cursor an array of KEYS to iterate through I…
Gamal Tawaf
  • 125
  • 1
  • 13
0
votes
1 answer

Initializing Array in Eiffel

class MAP[G] create make feature --attributes g_array: ARRAY[G] size:INTEGER feature{NONE} make do g_array.make_empty size:=0 end class MAP_TESTING m: MAP[INTEGER] create m.make print(m.size) The…
J0natthaaann
  • 555
  • 1
  • 6
  • 11
0
votes
1 answer

Need Help Polymorphism

Let me give you an example on what I need help with: Main class: cnd:Currency usd:Currency cc:Combined_Currency usd := cc.usd cnd := cc.cnd So, the class Combined_Currency has a class Currency. The Currency class has attributes for example…
J0natthaaann
  • 555
  • 1
  • 6
  • 11
0
votes
1 answer

I am unsure of the correct syntax to use in eiffel?

I have a feature feature --compare is_less alias "<" (other: MONEY): BOOLEAN -- Is current money less than `other'? local temp: BOOLEAN do temp := cents < other.cents Result := temp end It just checks two…
Umer Z
  • 200
  • 10
0
votes
2 answers

Eiffel exception not work

I'm trying to use an exception like in the class below, but the program always fails when I call the kivetel method. I'd think that it'll just call retry part, than it will satisfy the postcondition. But it fails with "y_above_zero" postcond…
Ferenc Dajka
  • 1,052
  • 3
  • 17
  • 45
0
votes
1 answer

Alternative to EV_TIMEOUT in eiffel?

Is there any alternative to EV_TIMEOUT in Eiffel? this looks like is only for windows application since there is not option to add this library into the project.. thanks in advance >)
Jorge Y. C. Rodriguez
  • 3,394
  • 5
  • 38
  • 61
0
votes
1 answer

Setting headers files in Eiffel?

I learning Eiffel, and i know that in C i can do something like this to set the headers files for example:: #define USER_ACTIVE 0 #define WHEN_SOMETHING 1 #define WHERE_HAND 2 #define WHERE_ACTIVE 3 #define WHERE_GOOD 4 and also…
Jorge Y. C. Rodriguez
  • 3,394
  • 5
  • 38
  • 61
-1
votes
1 answer

How do I initialize and fill a linked list in Eiffel?

Here's what I have so far. create {LINKED_LIST[INTEGER]} list.make from i := 0 list.start until i = 11 loop list.put(i) i := i + 1 list.forth end The debugger points to line list.put(i). I think the problem is that list is…
-1
votes
2 answers

Cannot create EWF application

can I ask for help? When selecting an EWF application in the Eiffel IDE, I cannot create a project. A window with lots of error messages is displayed. I have Apache installed, WIN 10 home operating system. Enabled libEFCGI, use the router component…
Roman
  • 1
  • 3
-1
votes
2 answers

Eiffel: How to get class of a Void object? is it possible?

I have a void object which I declared, but want to get its class name is it possible?? item: detachable DB_ENTITY db_connection.base_selection.query("SELECT * FROM " + item.generating_type.out) Creating it is not what I want...
Pipo
  • 4,653
  • 38
  • 47
-1
votes
1 answer

How to return a value or an object in Eiffel?

Is the Result keyword automatically recognized as the return value/object? What is the proper syntax to be used? Unfortunately, I cannot find a clear indication from the documentation and the various examples online.
vkoukou
  • 140
  • 2
  • 15
1 2 3
19
20