[comp.lang.eiffel] Basic info

jwright@atanasoff.cs.iastate.edu (Jim Wright) (11/15/89)

Typical outsider's questions...
What hardware/OS platforms does Eiffel run on?
Roughly what is the cost?
How steep is the learning curve?  Assume a good programmer but naive in
the intricacies of OOP.
Is Eiffel a single vendor product?
Is it a pre-processor or a compiler?  How good?

-- 
Jim Wright
jwright@atanasoff.cs.iastate.edu

sarkela@eiffel.UUCP (John Sarkela) (11/16/89)

>Typical outsider's questions...
>What hardware/OS platforms does Eiffel run on?

Eiffel runs on a wide range of unix platforms.  Among these
are the 386 unix operating systems, Apollo workstations, all of the
Sun platforms, Vaxen running Ultrix, DecStations running Ultrix,
DG AViiON, MIPS platforms, Sequent Symmetry, SGI Iris, mainframes
running UTS, etc.  This list is not exhaustive, and ports to new
platforms running something which resembles SystemV or BSD 4.x tend
to be trivial.

>Roughly what is the cost?

The cost of the Eiffel environment is indexed by the power of the
platform for which it is purchased, and ranges depending on the 
number of libraries of objects purchased with the environment.
Educational institutions qualify for educational discounts if Eiffel
is to be used for research and education.  For further information
write or call ISE. 

>How steep is the learning curve?  Assume a good programmer but naive in
>the intricacies of OOP.

Eiffel has a very small learning curve.  The base constructs of the
language are fundamentally Algol-like.  The number of keywords is
roughly commensurate with that of Pascal.  The language has an LL(1)
grammar.  There is precisely one syntactic construct for each semantic
form.  Thus, declaration of a reference could never be misconstrued to 
be an application of the address-of operator.  Further, because Eiffel
is a pure object oriented language, the programmer can only express
computation in terms of objects.  Where functional programming is
appropriate, Eiffel endeavours to make it as easy as possible to 
link to functional languages such as C.  Conclusion, the learning
curve to be surmounted in Eiffel is that of the object oriented
paradigm.

>Is Eiffel a single vendor product?

Currently, only Interactive Software Engineering sells Eiffel.  A complete
reference manual for the language and environment will be sold by 
Prentice-Hall in 1990, a pre-print version is available from ISE for
$45 US.  This manual provides descriptions of the syntax and semantics
of the language, as well as discussions of the environment as
currently implemented by ISE.  Outside parties are encouraged 
to develop Eiffel interpreters and compilers.  The only restriction 
is that language developers must acknowledge that Eiffel is a trademark 
of Interactive Software Engineering.

>Is it a pre-processor or a compiler?  How good?

Eiffel is most certainly a compiler, or if you prefer, a translator.
The Eiffel compiler produces a portable subset of C as its output for
reasons of portability.  The Eiffel compiler does not recognize nor
does it accept any grammatical constructs of the C language.  
The compiler performs dependency analysis on compilation units 
and does minimal incremental recompilation.  Makefiles are not required.
The optimizer will remove unreferenced code from classes, statically
bind all routines which are not subject to polymorphism, and will inline
routines subject to internal compiler metrics.  The runtime provides
support for concurrent garbage collection, assertion monitoring and
exception handling.

    Snail Mail: Interactive Software Engineering
                270 Storke Road, Suite 7
                Goleta, CA  93117   USA

    Email:      queries@eiffel.com

    Phone:      (805) 685-1006

Standard Disclaimers: 

    Unix is a trademark of AT&T, and is an adjective describing 
        operating systems.

    Eiffel is a trademark of ISE, and a really nifty tower in Paris.

    Any opinions expressed herein are my own and nobody else's.


    -- sarkela@eiffel.com
    -- uunet!eiffel!sarkela

    

jwright@atanasoff.cs.iastate.edu (Jim Wright) (11/16/89)

Thanks for the reply.  It's starting to make sense now.

sarkela@eiffel.UUCP (John Sarkela) writes:
| Eiffel runs on a wide range of unix platforms.
| This list is not exhaustive, and ports to new
| platforms running something which resembles SystemV or BSD 4.x tend
| to be trivial.
	[...]
| Eiffel is most certainly a compiler, or if you prefer, a translator.
| The Eiffel compiler produces a portable subset of C as its output for
| reasons of portability.

So it seems that Eiffel is tied to Unix, but I don't see how.  Is the
only thing really required to run Eiffel a good C compiler to crunch
on the output from Eiffel?  Or does it require some service offered by
Unix?

Also, how all-encompassing is Eiffel?  Is it a compiler in the sense of
C or FORTRAN, or is it an environment in the sense of Smalltalk?

-- 
Jim Wright
jwright@atanasoff.cs.iastate.edu

db@lfcs.ed.ac.uk (Dave Berry) (11/17/89)

In article <210@eiffel.UUCP> sarkela@eiffel.UUCP (John Sarkela) writes:
>Where functional programming is
>appropriate, Eiffel endeavours to make it as easy as possible to 
>link to functional languages such as C.

In all the clasifications of programming languages that I've seen,
C is not a functional language.  It is an imperative language
or a procedural language.

Is there a classification I've missed, or is John confusing
functional design and functional programming?

Dave Berry, Laboratory for Foundations      db%lfcs.ed.ac.uk@nsfnet-relay.ac.uk
    of Computer Science, Edinburgh Uni.	    <Atlantic Ocean>!mcvax!ukc!lfcs!db

sarkela@eiffel.UUCP (John Sarkela) (11/21/89)

   In article <1962@atanasoff.cs.iastate.edu>, Jim Wright writes:

>So it seems that Eiffel is tied to Unix, but I don't see how.  Is the
>only thing really required to run Eiffel a good C compiler to crunch
>on the output from Eiffel?  Or does it require some service offered by
>Unix?

Eiffel does not require Unix in order to compile a generated
application.  It does require support for signals, setjmp and
longjmp in the current implementation.  Our principle porting
constraint is the availability of lex and yacc.  The first passes 
of our current Eiffel compiler are implemented in C.  As such, 
Unix tends to be the friendly port environment.  When the fully 
meta-circular ( Eiffel in Eiffel ) compiler is available, 
we shall no doubt pursue non-unix platforms with greater vigor.  

>Also, how all-encompassing is Eiffel?  Is it a compiler in the sense of
>C or FORTRAN, or is it an environment in the sense of Smalltalk?

Eiffel is currently a compiler with some support tools.  As the tools
mature, the environment should become more complete.  Currently,
we provide tools for browsing, compiling, debugging, cross development,
and documentation.  

   BTW, In article <1117@castle.ed.ac.uk> Dave Berry writes:

>Is there a classification I've missed, or is John confusing
>functional design and functional programming?

Of course, John is confused in the extreme!   Most certainly I was
thinking of the top-down functional design methodologies which were made
popular by the procedural languages Pascal and C.  It is inconceivable
that one should confuse functional languages such as Lisp, Scheme, fp 
or ML with the imperative mode of expression used in C.  I can only 
attribute the slipup to too much surfing and not enough espresso.

    -- John Sarkela   sarkela@eiffel.com

dmn@stiatl.UUCP (Michael Nowacki) (11/22/89)

In article <212@eiffel.UUCP> sarkela@eiffel.UUCP (John Sarkela) writes:
when the fully 
>meta-circular ( Eiffel in Eiffel ) compiler is available, 
>we shall no doubt pursue non-unix platforms with greater vigor.  
>    -- John Sarkela   sarkela@eiffel.com

Last spring, I bought "Object Oriented Software Construction" from ISE and
recieved a folder of information about ISE Eiffel, from which I got the 
impression that VMS Eiffel is available, or soon will be.

What is the current status of this project?


-- 
Michael Nowacki               gatech!stiatl!dmn
Sales Technologies, Inc             |\  /|
3399 Peachtree Rd, NE               | \/ |
Atlanta, GA  (404) 841-4000        _|ike |_