From: Joachim Durchholz <joachim.durchholz@munich.netsurf.de>
Subject: Re: Interface/Implementation (was Re: Design by Contract)
Date: 1997/09/10
Date: 1997-09-10T00:00:00+00:00 [thread overview]
Message-ID: <34170E26.5385DE6D@munich.netsurf.de> (raw)
In-Reply-To: EGAq2G.GLt.0.-s@inmet.camb.inmet.com
Tucker Taft wrote:
> Eiffel seems to have foregone even
> this bit of declaration-before-use -- there seems no need to
> declare the importing of one class prior to using it anywhere
> inside another.
There are two ways to "import" another class in Eiffel.
Variant 1 is inheriting a class. Inheritance links are declared right at
the start of a class, so here we have (incidentally) a rather strong
"import before use" policy.
Variant 2 is using a class, by declaring a parameter or local variable
of that class. Eiffel does not have an import clause in that case at
all!
This isn't even a disadvantage because an Eiffel module can contain only
one class (in fact there are no modules beyond classes in Eiffel).
Say we have a declaration
feature dump (x: CONTAINER) is...
so we know x is of class CONTAINER. There is no module CONTAINER is in,
so we don't need an import clause to tell us (or the compiler) where to
find CONTAINER.
If I remember correctly, Ada import clauses are also used to resolve
name clashes, but that's unnecessary in Eiffel, too: anything in
CONTAINER will be used via x, so we always have a qualified call of the
form
x.something
which automatically provides the necessary context.
Note 1: Note that x is much shorter than CONTAINER. If an Eiffel
"module" is so pervasive that typing the name everywhere becomes a
nuisance, we can choose entity names that are as short as we like to
access these features. In Ada, if we have a name clash, we're forced to
type the full module name wherever a clashing name is used (at least
that's what I remember, corrections welcome!).
Note 2: Inheritance gives access to the imported features without a need
for qualification, so here the possibility for name clashes exists. In
Eiffel you must rename such features in the inheriting class (which is
useful if the features are exported - inheriting two features with the
same name does not mean they are the same).
Regards,
Joachim
--
Please don't send unsolicited ads.
next prev parent reply other threads:[~1997-09-10 0:00 UTC|newest]
Thread overview: 185+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <01bcb389$24f579d0$1c10d30a@ntwneil>
1997-08-28 0:00 ` Interface/Implementation (was Re: Design by Contract) Tucker Taft
1997-08-29 0:00 ` Paul Johnson
1997-08-29 0:00 ` Jon S Anthony
[not found] ` <EFqDC8.342@ecf.toronto.edu>
1997-09-02 0:00 ` Samuel Mize
1997-09-03 0:00 ` Paul Johnson
1997-09-03 0:00 ` Patrick Doyle
1997-09-03 0:00 ` Samuel Mize
1997-09-04 0:00 ` Erik Ernst
[not found] ` <EFyrH2.7z2@syd.csa.com.au>
1997-09-04 0:00 ` Joerg Rodemann
1997-09-05 0:00 ` Don Harrison
[not found] ` <340fdb9f.0@news.uni-ulm.de>
1997-09-06 0:00 ` Joachim Durchholz
1997-09-06 0:00 ` Joachim Durchholz
1997-09-04 0:00 ` W. Wesley Groleau x4923
1997-09-05 0:00 ` Don Harrison
1997-09-05 0:00 ` W. Wesley Groleau x4923
1997-09-06 0:00 ` Joachim Durchholz
1997-09-09 0:00 ` Robert Dewar
1997-09-09 0:00 ` Richard Kenner
1997-09-10 0:00 ` Tucker Taft
1997-09-10 0:00 ` Nick Leaton
1997-09-10 0:00 ` W. Wesley Groleau x4923
1997-09-11 0:00 ` Code ordering Steve Furlong
1997-09-12 0:00 ` Interface/Implementation (was Re: Design by Contract) Robert Dewar
1997-09-12 0:00 ` Nick Leaton
1997-09-10 0:00 ` Joachim Durchholz [this message]
1997-09-10 0:00 ` One pass compilation? W. Wesley Groleau x4923
1997-09-11 0:00 ` Interface/Implementation (was Re: Design by Contract) Robert Dewar
1997-09-05 0:00 ` Jon S Anthony
1997-09-06 0:00 ` Fergus Henderson
1997-09-06 0:00 ` Jon S Anthony
1997-09-08 0:00 ` Robert Dewar
1997-09-11 0:00 ` Don Harrison
1997-09-08 0:00 ` Robert Dewar
1997-09-11 0:00 ` Don Harrison
1997-09-12 0:00 ` Robert Dewar
1997-09-05 0:00 ` Patrick Doyle
1997-09-05 0:00 ` W. Wesley Groleau x4923
1997-09-06 0:00 ` Patrick Doyle
1997-09-05 0:00 ` Jon S Anthony
1997-09-06 0:00 ` Patrick Doyle
1997-09-06 0:00 ` Jon S Anthony
1997-09-05 0:00 ` Matthew Heaney
1997-09-06 0:00 ` Matt Kennel (Remove 'NOSPAM' to reply)
1997-09-06 0:00 ` Jon S Anthony
1997-09-06 0:00 ` Patrick Doyle
1997-09-06 0:00 ` Matthew Heaney
1997-09-07 0:00 ` Patrick Doyle
1997-09-07 0:00 ` Matthew Heaney
1997-09-10 0:00 ` Don Harrison
1997-09-10 0:00 ` Tucker Taft
1997-09-10 0:00 ` Don Harrison
1997-09-12 0:00 ` Robert Dewar
1997-09-16 0:00 ` Don Harrison
1997-09-17 0:00 ` Robert Dewar
1997-09-10 0:00 ` Matthew Heaney
1997-09-10 0:00 ` Patrick Doyle
1997-09-12 0:00 ` Robert Dewar
1997-09-13 0:00 ` Patrick Doyle
1997-09-11 0:00 ` Lee Webber
1997-09-15 0:00 ` W. Wesley Groleau x4923
1997-09-12 0:00 ` Don Harrison
1997-09-10 0:00 ` Samuel Mize
1997-09-10 0:00 ` Samuel Mize
1997-09-11 0:00 ` Don Harrison
1997-09-11 0:00 ` Robert Dewar
1997-09-12 0:00 ` Samuel T. Harris
1997-09-12 0:00 ` Samuel Mize
1997-09-13 0:00 ` Tucker Taft
1997-09-17 0:00 ` Don Harrison
1997-09-18 0:00 ` Robert Dewar
1997-09-10 0:00 ` Matthew Heaney
1997-09-10 0:00 ` Patrick Doyle
1997-09-16 0:00 ` Don Harrison
1997-09-18 0:00 ` Robert Dewar
1997-09-18 0:00 ` Shmuel (Seymour J.) Metz
1997-09-20 0:00 ` Robert Dewar
1997-09-11 0:00 ` Robert Dewar
1997-09-10 0:00 ` Robert Dewar
1997-09-10 0:00 ` Nick Leaton
1997-09-16 0:00 ` Frederic Guerin
1997-09-06 0:00 ` Matthew Heaney
1997-09-06 0:00 ` Joachim Durchholz
1997-09-08 0:00 ` John G. Volan
1997-09-09 0:00 ` Nick Leaton
1997-09-09 0:00 ` John G. Volan
1997-09-10 0:00 ` Nick Leaton
1997-09-10 0:00 ` Samuel Mize
1997-09-09 0:00 ` Paul Johnson
[not found] ` <dewar.873826570@merv>
1997-09-09 0:00 ` Matthew Heaney
1997-09-11 0:00 ` Robert Dewar
1997-09-07 0:00 ` Robert Dewar
1997-09-08 0:00 ` Patrick Doyle
1997-09-09 0:00 ` Don Harrison
1997-09-09 0:00 ` W. Wesley Groleau x4923
1997-09-10 0:00 ` Robert Dewar
1997-09-11 0:00 ` Don Harrison
1997-09-12 0:00 ` Robert Dewar
1997-09-16 0:00 ` Don Harrison
1997-09-17 0:00 ` Robert Dewar
1997-09-05 0:00 ` Robert Dewar
1997-09-01 0:00 ` Matt Kennel (Remove 'NOSPAM' to reply)
1997-09-02 0:00 ` Nick Leaton
1997-09-03 0:00 ` Matt Kennel (Remove 'NOSPAM' to reply)
1997-09-15 0:00 Marc Wachowitz
1997-09-16 0:00 ` Owen Fellows
-- strict thread matches above, loose matches on Subject: below --
1997-09-12 0:00 Marc Wachowitz
1997-09-12 0:00 ` Joachim Durchholz
1997-09-12 0:00 ` Samuel T. Harris
1997-09-12 0:00 ` Jon S Anthony
1997-09-15 0:00 ` Samuel T. Harris
1997-09-16 0:00 ` Jon S Anthony
1997-09-09 0:00 Marc Wachowitz
1997-09-15 0:00 ` Owen Fellows
1997-10-13 0:00 ` Bill Foote
1997-09-06 0:00 Ell
1997-09-06 0:00 ` Samuel Mize
[not found] <EForKz.FJ7@ecf.toronto.edu>
1997-09-01 0:00 ` Don Harrison
1997-09-02 0:00 ` Don Harrison
1997-08-07 0:00 Safety-critical development in Ada and Eiffel Ken Garlington
1997-08-12 0:00 ` Don Harrison
1997-08-25 0:00 ` Design by Contract Bertrand Meyer
[not found] ` <3402d123.0@news.uni-ulm.de>
1997-08-26 0:00 ` Nick Leaton
[not found] ` <3402e51d.0@news.uni-ulm.de>
[not found] ` <3402E8C9.3384D976@calfp.co.uk>
[not found] ` <dewar.872631036@merv>
[not found] ` <3403F668.F6B57D97@calfp.co.uk>
[not found] ` <34041331.0@news.uni-ulm.de>
[not found] ` <3404696D.4487EB71@eiffel.com>
1997-08-27 0:00 ` Interface/Implementation (was Re: Design by Contract) Bertrand Meyer
[not found] ` <34048FDC.13728473@eiffel.com>
1997-08-27 0:00 ` Bertrand Meyer
1997-08-28 0:00 ` Jon S Anthony
1997-08-29 0:00 ` Robert Dewar
[not found] ` <EForsv.Fqo@ecf.toronto.edu>
[not found] ` <JSA.97Aug29191413@alexandria.organon.com>
[not found] ` <EFqDAG.2zn@ecf.toronto.edu>
1997-08-30 0:00 ` Jon S Anthony
1997-09-02 0:00 ` Don Harrison
1997-09-02 0:00 ` Jon S Anthony
1997-09-03 0:00 ` Don Harrison
[not found] ` <EFwuzD.BxE@ecf.toronto.edu>
1997-09-04 0:00 ` Don Harrison
1997-09-05 0:00 ` Patrick Doyle
1997-09-09 0:00 ` Don Harrison
1997-09-09 0:00 ` W. Wesley Groleau x4923
1997-09-10 0:00 ` Veli-Pekka Nousiainen
1997-09-10 0:00 ` Samuel Mize
1997-09-12 0:00 ` Don Harrison
1997-09-10 0:00 ` Patrick Doyle
1997-09-10 0:00 ` Joerg Rodemann
1997-09-10 0:00 ` Patrick Doyle
1997-09-11 0:00 ` Matt Austern
1997-09-12 0:00 ` Jon S Anthony
1997-09-13 0:00 ` Patrick Doyle
1997-09-10 0:00 ` Joachim Durchholz
1997-09-12 0:00 ` Joerg Rodemann
1997-09-11 0:00 ` Robert S. White
1997-09-11 0:00 ` Don Harrison
1997-09-12 0:00 ` Robert Dewar
1997-09-13 0:00 ` Patrick Doyle
1997-09-12 0:00 ` Jon S Anthony
1997-09-13 0:00 ` Patrick Doyle
1997-09-16 0:00 ` Brian Rogoff
1997-09-04 0:00 ` John G. Volan
1997-09-04 0:00 ` W. Wesley Groleau x4923
1997-09-05 0:00 ` Patrick Doyle
1997-09-05 0:00 ` W. Wesley Groleau x4923
1997-09-06 0:00 ` Patrick Doyle
1997-09-08 0:00 ` Paul Johnson
1997-09-06 0:00 ` Jon S Anthony
1997-09-08 0:00 ` Robert Dewar
1997-09-09 0:00 ` Patrick Doyle
1997-09-09 0:00 ` Matthew Heaney
1997-09-10 0:00 ` Patrick Doyle
1997-09-09 0:00 ` Robert S. White
1997-09-09 0:00 ` Paul Johnson
1997-09-11 0:00 ` Robert Dewar
1997-09-11 0:00 ` Veli-Pekka Nousiainen
1997-09-12 0:00 ` Paul Johnson
1997-09-14 0:00 ` Ken Garlington
1997-09-09 0:00 ` Matt Kennel (Remove 'NOSPAM' to reply)
1997-09-10 0:00 ` John Viega
1997-09-10 0:00 ` Matt Kennel (Remove 'NOSPAM' to reply)
1997-09-05 0:00 ` Franck Arnaud
1997-09-05 0:00 ` Patrick Doyle
1997-08-28 0:00 ` Patrick Doyle
1997-08-28 0:00 ` W. Wesley Groleau x4923
1997-08-28 0:00 ` Tucker Taft
1997-08-28 0:00 ` W. Wesley Groleau x4923
1997-08-28 0:00 ` Jon S Anthony
[not found] ` <EFnK8D.Lsv@ecf.toronto.edu>
1997-08-29 0:00 ` Jon S Anthony
1997-08-30 0:00 ` Patrick Doyle
1997-08-30 0:00 ` Jon S Anthony
1997-09-01 0:00 ` Patrick Doyle
1997-08-29 0:00 ` Suzanne Zampella
1997-08-29 0:00 ` Jon S Anthony
[not found] ` <340E9BA2.32B3@rbgg252.rbg1.siemens.de>
1997-09-07 0:00 ` Robert Dewar
[not found] ` <3406A707.787D@dmu.ac.uk>
1997-08-29 0:00 ` Joerg Rodemann
1997-08-29 0:00 ` Ralph Paul
1997-09-01 0:00 ` Don Harrison
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox