Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!think.com!paperboy!hsdndev!cmcl2!kramden.acf.nyu.edu!brnstnd From: brnstnd@kramden.acf.nyu.edu (Dan Bernstein) Newsgroups: comp.lang.misc Subject: Re: Sigh. Doesn't anyone bother to read the literature? Message-ID: <335:Mar3121:55:3891@kramden.acf.nyu.edu> Date: 31 Mar 91 21:55:38 GMT References: <10733@exodus.Eng.Sun.COM> Organization: IR Lines: 41 In article <10733@exodus.Eng.Sun.COM> chased@rbbb.Eng.Sun.COM () writes: > People are also attributing the qualities of current language > implementations to the languages themselves; It's very difficult *not* to do that, especially for languages without formal standards. Of course, one should give greater weight to more modern implementations based on current research. > (1) why must a truly polymorphic (undefined term) language be less > efficient than a non-polymorphic language? Easy: you can implement an arbitrarily complex approximation to a Turing machine through the type tags. Hence a less complex optimizer will not be able to figure out the data flow. (This is the same argument as why an optimizer cannot always convert an optimal pointer program into an optimal array program.) > (2) does any "expert" out there care to explain how "data types are > values"? (Hans Boehm is not allowed to answer this question) I'm not a programming language expert, but I'll repeat my usual mundane argument for why it's useful to have data types as values: viz., with such values, you can implement dynamic typing, and without such values, you cannot (at least not obviously). > (3) if you had to use "void *" to program generically in C/C++, what > does this say about the "type system"? I don't think you need to do this in C++ for any of the applications proposed here. Yes, you do have to implement some amount of typechecking yourself if you want properly checked callback functions in C. So what? > (4) what's the contravariance rule? > It seems to me that one ought to have thought about these questions in > some detail before spouting off about type systems and expressiveness. Question (4) for you, David: What's Tarski's Q-system? Shall I be as snobbish as you and claim that anyone who hasn't thought deeply about Q-systems is not qualified to discuss programming languages? ---Dan