Path: utzoo!mnetor!uunet!husc6!bbn!rochester!PT.CS.CMU.EDU!IUS3.IUS.CS.CMU.EDU!ralphw From: ralphw@IUS3.IUS.CS.CMU.EDU (Ralph Hyre) Newsgroups: comp.lang.misc Subject: Re: From Modula to Oberon Message-ID: <1217@PT.CS.CMU.EDU> Date: 24 Mar 88 20:59:56 GMT References: <2827@enea.se> <1557@pasteur.Berkeley.Edu> <3764@bloom-beacon.MIT.EDU> <1130@PT.CS.CMU.EDU> Sender: netnews@PT.CS.CMU.EDU Organization: Carnegie-Mellon University, CS/RI Lines: 33 In article <1130@PT.CS.CMU.EDU> edw@IUS1.CS.CMU.EDU (Eddie Wyatt) writes: >> >> I wish they had put iterators in Ada. C provides a general linear >> iterator, but in CLU you can iterate through a tree or anything else... .... > ***This is not a flame against the author.*** > > When will people learn, data abstraction is not a programming >language or type of programming language, it is a programming >methodology. > > In particular if you want generalized iteration say in C, its >a simple matter of defining an iteration function for that particular >data type. I agree with your first point, but it's not so simple to do things in a language that wasn't designed to support them cleanly. The Guttag & Liskov book spends a chapter or so discussing doing data abstraction in Turbo Pascal. I'd rather spend my time writing code than worrying about how to map my programming methodology onto a language that doesn't support it neatly. When I make my own mapping, it also makes it harder for someone else to come along later and understand what I did, unless I document my techniques and experiences. [I must admit to some bias here, I feel much more productive using CLU than C. Other than interoperability with certain existing code, I can't see any reason to use C when CLU is available.] -- - Ralph W. Hyre, Jr. Internet: ralphw@ius2.cs.cmu.edu Phone:(412)268-{2847,3275} CMU-{BUGS,DARK} Amateur Packet Radio: N3FGW@W2XO, or c/o W3VC, CMU Radio Club, Pittsburgh, PA