Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!know!zaphod.mps.ohio-state.edu!brutus.cs.uiuc.edu!apple!rutgers!deejay!gear!cadlab!staff From: staff@cadlab.sublink.ORG (Alex Martelli) Newsgroups: comp.lang.misc Subject: Re: The Universal Language Message-ID: <251@cadlab.sublink.ORG> Date: 15 Aug 90 21:01:45 GMT References: <24043@megaron.cs.arizona.edu> <6465@helios.ee.lbl.gov> Organization: CAD.LAB, Bologna, Italia Lines: 30 austern@ux5.lbl.gov (Matt Austern) writes: >In article <24043@megaron.cs.arizona.edu>, gudeman@cs (David Gudeman) writes: >>I am always disturbed by the idea that for a language to have some >>good property, it must forbid the programmer from doing X. >I'm sure that this is obvious to everybody, but I think it bears >repeating: if the "good property" is efficiency, this is often best >achieved by forbidding the programmer from using certain >constructions. >The more assumptions a compiler can make about a program, the better >it can do the optimization, and in many cases, the only way a compiler >can safely assume that a programmer doesn't do something is to make it >illegal. (The C calling convention is more complicated than the >FORTRAN calling convention, for example, because C allows recursion. ...it's actually more the ALIASING that kills you, recursion's no problem on many machines, it's the darned *aliases*... no matter, technical quibble, your point is well-taken. Another property which is well served by language restrictions is 'compile-time checkability'. It SHOULD be obvious - if you want a ROBUST code, you make it REDUNDANT, i.e. you 'forbid' many patterns from the stream so you can detect (and possibly correct) errors...! -- Alex Martelli - CAD.LAB s.p.a., v. Stalingrado 45, Bologna, Italia Email: (work:) staff@cadlab.sublink.org, (home:) alex@am.sublink.org Phone: (work:) ++39 (51) 371099, (home:) ++39 (51) 250434; Fax: ++39 (51) 366964 (work only; any time of day or night).