Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!ucsd!ucbvax!WORLD.STD.COM!bzs From: bzs@WORLD.STD.COM (Barry Shein) Newsgroups: comp.society.futures Subject: C's sins of commission (was: (pssst...fortran?)) Message-ID: <9009211543.AA25709@world.std.com> Date: 21 Sep 90 15:43:18 GMT References: <&3646@lanl.gov> Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 43 Jim Giles, Have you looked closely at PL/I? I could probably dig up some old, good, textbook recommendations. It has almost everything exactly as you're describing (including the declaration of dynamic, recursive objects.) PL/I was definitely a bloated language with far too many rules violating "the law of least astonishment", but it did have a lot of good ideas. I think PL/I's main problem was that it was perceived as a "pig" of a language in a time when resources were much more dear. The compiler probably needed almost 1MB to run! (in a day when large mainframes had 2MB of real memory and tried to run 100 logged in users, this made it anathema at university computing centers and the rest was history.) The bit-oriented sizeof() is also in PL/I (which is what touched off this remark.) In fact, it worked both ways: declare array fixed bin(31); declared a 32-bit integer array (you always omitted the sign bit if there was one, strange.) In fact you could declare any odd-sized object pretty much: declare I fixed bin(11); and it would do its arithmetic on such objects constrained to that many bits. How? by turning all ops into function calls and linking into a variable bit library...like I said, bloated...it took an expert to get mostly native code out of PL/I as some small indiscretion might make it turn all your code into library function calls.) But it did work in all sorts of crazy situations (e.g. if you recompiled code with bit-level declarations that didn't match the current hardware, it would still work, albeit slowly.) Anyhow, doomed to repeat it...as they say. -Barry Shein Software Tool & Die | {xylogics,uunet}!world!bzs | bzs@world.std.com Purveyors to the Trade | Voice: 617-739-0202 | Login: 617-739-WRLD