Yes, I notice you guys are quick to assume that I must be a troll and try to shoot me down. I was getting the impression that I was addressing an audience of 15-year olds.
FYI, I am an astrophysicist by training, but I have been doing computers in anger for more than 40 years. My primary interests are in applied and embedded computing, not comp sci per se, although I do also have some graduate work in CompSci.
Hence, I am most impressed by actual implementations and measurements. Concrete examples of theoretical topics are most welcome. But sweeping theoretical statements are really not very impressive.
Cheers,
Dr. David McClain Sr. VP, Embedded Systems Asyrmatos Inc. Boston & Tucson phone: 520-529-2437 cell: 520-390-3995 web: www.asyrmatos.com e-mail: dbm@asyrmatos.com
On May 24, 2009, at 00:37, David Rush wrote:
2009/5/23 D.McClain dbm@asyrmatos.com:
should go a long way toward explaining why CPS code may be slower than direct form code.
I have not yet read the paper, but it appears that there is a terminological disconnect happening here.
In Scheme, I program using CPS precisely because it is in fact *faster*. Specifically, I have show it to be faster when compiling using Stalin. However, this performance increase is not a direct result of the CPS idiom, but due to the fact that monomorphic data extents are clearly defined - allowing Stalin more aggressive optimizations.
Note that I am *not* using CPS to implement *continuations*. But I am using the CPS idiom in cases where a caller knows quite a bit more about type-appropriate behavior than the (ultimate) callee. Such conditions are often used as examples of when call/cc is helpful (e.g. in implementing exceptions).
The point being that there is a long difference between programming in a CPS idiom and reifying continuations with call/cc. Saying CPS code is slower is simply silly and makes you look like a troll.
david rush
GPG Public key at http://cyber-rush.org/drr/gpg-public-key.txt