Don Dailey <[EMAIL PROTECTED]> writes: > I thinks it's very difficult to outperform C since C really is just > about at the level of assembly language.
No, in special cases it's not that hard to outperform C, because the language spec dictates some not so efficient details. C has an ABI and it's specification is optimized for the general case. Nearly every design decision has advantages and disadvantages. So if you look at the spec it's clearly possible to construct cases that are exceptionally bad for this specific spec. If you have a language without these restriction it's quite possible to get better results in this constructed case. So yes, it may be difficult and maybe most or even all cases in which it's possible to outperform C with Lisp are unimportant for any practical purposes, but nevertheless it's possible. And by the way I don't think C is really the best language for maximum performance. Just think about Fortran. AFAIK in it's main domain it easily outperforms C. There are also languages like OCAML, Ada, Forth and quite some others with really capable compilers und language specs that leave more freedom to compiler writers and such leave more room for different kind of optimizations. So the claim that C is the single one high level language with which you can get the maximum performance is quite an urban legend and completly unjustified. > I think the right approach to a language faster than C is to simply > write a better C that is specifically designed to have more > opportunities for optimization. C is a really crappy language, especially from the performace point of view. It's so low level that you are able to get really good performance despite all the odds of the language. You have to program around all the performace pitfalls, you have to do all performance optimizations yourself. C is no help here. So why should C be a good starting point for a language striving to make high performance computing easy? BTW: No, Lisp is also not a very good starting point for this special goal, but I would say Lisp would make a much better start than C, because Lisp shows you how much a good language and compiler can easy the pain for the developer while in C he is all alone. > I really don't think a truly higher level language will ever beat C > or a performance improved C. Have you really any hints, done any scientific benchmarks with languages like OCAML, Oz, Forth, Fortran, Ada, Scheme, and many others to make your claim any more than pure guesswork? > There is some hope that a JIT can do some optimizations not possible > with a static compiler - but even if this is the case C could follow > this path too. It's not easy and maybe not even possible for C to follow this route because C code (source and object) don't have very much information. Higher level languages provide much more information about what's going on, what data is in the game and the like. Or they set much more restrictions (like restrictive type systems). All these additional informations and/or restrictions make some algorithms for inference tractrable or even fast. Without these you are lost. So no, there are no hints that C would ever get such optimizations. -- Until the next mail..., Stefan.
pgpTH0sCBMMBD.pgp
Description: PGP signature
_______________________________________________ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/