Path: utzoo!attcan!uunet!cs.utexas.edu!usc!ucsd!helios.ee.lbl.gov!austern@ux5.lbl.gov From: austern@ux5.lbl.gov (Matt Austern) Newsgroups: comp.lang.misc Subject: Re: The Universal Language Message-ID: <6465@helios.ee.lbl.gov> Date: 13 Aug 90 18:24:58 GMT References: <24043@megaron.cs.arizona.edu> Sender: usenet@helios.ee.lbl.gov Reply-To: austern@ux5.lbl.gov (Matt Austern) Organization: Lawrence Berkeley Laboratory (theory group) Lines: 24 X-Local-Date: 13 Aug 90 11:24:58 PDT In-reply-to: gudeman@cs.arizona.edu (David Gudeman) 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. Can you really imagine a C compiler/linker that can prove that a program has no recursive calls, and use a simpler calling convention for such programs?) There really is a tension between flexibility and ease of optimization, and the resolution isn't necessarily the same for all purposes. -- Matthew Austern austern@lbl.bitnet It's not very subtle, but, uh, (415) 644-2618 austern@ux5.lbl.gov neither is blowing up a whole school.