|Language design question firstname.lastname@example.org (2000-02-13)|
|Re: Language design question email@example.com (Chris F Clark) (2000-02-13)|
|Re: Language design question firstname.lastname@example.org (James Jones) (2000-02-15)|
|Re: Language design question email@example.com (2000-02-15)|
|Re: Language design question firstname.lastname@example.org (2000-02-16)|
|Re: Language design question email@example.com (Joachim Durchholz) (2000-02-16)|
|Re: Language design question firstname.lastname@example.org (Joachim Durchholz) (2000-02-17)|
|Re: Language design question email@example.com (Keith Thompson) (2000-02-19)|
|Re: Language design question firstname.lastname@example.org (Tom Payne) (2000-02-19)|
|Re: Language design question Andrew.Walker@nottingham.ac.uk (Dr A. N. Walker) (2000-02-27)|
|Re: Language design question email@example.com (2000-03-21)|
|Re: Language design question firstname.lastname@example.org (Frederic) (2000-03-25)|
|Re: Language design question email@example.com (Robert A Duff) (2000-03-25)|
|From:||"Joachim Durchholz" <firstname.lastname@example.org>|
|Date:||17 Feb 2000 18:09:38 -0500|
|References:||00-02-065 00-02-077 00-02-082|
Mark K. Gardner <email@example.com> schrieb
> Some languages designers, such as Eiffel's Bertrand Meyers, believe
> strongly that you *should* hide the difference between a direct and an
> indirect type (i.e., between a statically allocated variable and a
> dynamically allocated one) to gain the flexibility to change the type
> without changing the text of the code.
Nit to pick: Just "Meyer" without a trailing s.
I agree with Bertrand here, but you have to be careful to make the
difference undetectable from a client's perspective ("client" being
Eiffelese for code that uses the type). For example, a client cannot
assign to an attribute, so the supplier type can really hide all
differences between reference and nonreference attributes.
> This is a personal preference of mine but... I would suggest you get
> rid of the separation between interface and implementation.
Oh yes. The implementation already contains everything, so such a
separation will just force programmers to keep redundant files in sync.
Instead, write a tool that extracts the interface from an
implementation. (If you write a compiler, writing the extraction tool is
For example, Eiffel compilers usually come with a tool named "short"
that takes module as input and generates interface specifications as
output. This "short form" is commonly distributed with library
Return to the
Search the comp.compilers archives again.