From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00,FROM_NUMERIC_TLD, INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: f43e6,2c6139ce13be9980 X-Google-Attributes: gidf43e6,public X-Google-Thread: 103376,3d3f20d31be1c33a X-Google-Attributes: gid103376,public X-Google-Thread: fac41,2c6139ce13be9980 X-Google-Attributes: gidfac41,public X-Google-Thread: 1108a1,2c6139ce13be9980 X-Google-Attributes: gid1108a1,public From: ltest@rte9-sun_5.5.1 (news_check.py) Subject: Re: Separation of IF and Imp: process issue? Date: 1997/09/10 Message-ID: <5v6ab6$jg6@lztnsc06.att.com>#1/1 X-Deja-AN: 271309017 References: <33E9ADE9.4709@flash.net> <5utag9$o6s@newshub.atmnet.net> <5v1gua$fkk@newshub.atmnet.net> <5v2k2n$1cfu$2@flood.weeg.uiowa.edu> <5v4095$h62@newshub.atmnet.net> Organization: AT&T WorldNet Load Test Newsgroups: comp.object,comp.software-eng,comp.lang.ada,comp.lang.eiffel Date: 1997-09-10T00:00:00+00:00 List-Id: In article <34158D84.299F6103@calfp.co.uk> Nick Leaton wrote: > Darren New wrote: > > > >> Darren New wrote: > >> > >>Actually (following up on my own post) how does a traditional CM tool > >>make sure the Ada body matches the interface file? Does it actually > >>run some external tool at checkin time to make sure the equivalence > > > > Before most people ever check a module back in they run the compiler > >on the module. > > And it's trivial to write a script that takes the short form of an Eiffel > class and checks it against the CM'ed short form. If you forget to run > this, you can have a $1 fine. :-) > > My point is that having the spec and implementation in the same file > is *not* any more of a handicap for Eiffel than having to run the > compiler to check the body against the spec is in Ada. > > Of course, Eiffel then gives you the ability to use abstract classes as > specs as well, but that's a different discussion. Another issue concerning the separation of spec and implementation concerns how inheritance is handled. If you use inheritance, then the specification of a class can be viewed in different ways. 1) As the inherited class, with any additional specification 2) As the union of all the classes features, with those of the class it inherits from. (Repeat as necessary) Now, in either case Eiffel's one file, or with an Ada style, two file system, you are going to require machine help to produce 2. -- Nick Eiffel - Possibly the best language in the world - unless proven otherwise.