Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!tut.cis.ohio-state.edu!rutgers!bellcore!flash!sdh From: sdh@flash.bellcore.com (Stephen D Hawley) Newsgroups: comp.lang.forth Subject: Re: Thoughts on Forth Message-ID: <18961@bellcore.bellcore.com> Date: 15 Jan 90 15:40:24 GMT References: <6025@sdcc6.ucsd.edu> <1990Jan14.203752.22131@tree.uucp> <7573@pt.cs.cmu.edu> Sender: news@bellcore.bellcore.com Reply-To: sdh@flash.UUCP (Stephen D Hawley) Organization: Bellcore, Morristown, NJ Lines: 51 In article <7573@pt.cs.cmu.edu> koopman@a.gp.cs.cmu.edu (Philip Koopman) writes: >Scheme (a LISP variant) is no longer slow! Scheme uses compile-time >analysis to derive typing information, so run-time tag checking is >not needed in most cases. Similarly, it does strictness >analysis to reduce the cost of closure building. Finally, modern >copying-semispace garbage collection algorithms are *much* cheaper >than the old clunkers that used to be around. Scheme is no longer slow in comparison to old versions of Scheme. Scheme is still slow in comparison with the rest of the world, but one must keep in mind what Scheme is good for. I want to point that out for the forthers who are unfamiliar with Scheme. A prof at School (Oberlin) needed to do a dump of some graphics data from Scheme, so he translated a print filter I wrote in C to Scheme with some mods to suit his purpose. It took about a half hour to dump a page, whereas the C version was instantaneous. Conclusion: don't use Scheme for bit-banging, it just isn't suited to the task. Scheme _is_ good for abstraction in programming. Works like a charm. For contrast to Forth, I implemented a Scheme interpretter in C in the space of a semester, and it worked like a charm --not REALLY fast, but it chugged along. I also implemented a Forth _compiler_ to 68000 in assembly and C in the space of a semester. In retrospect, both were about as difficult to implement, but I can't say I could write a scheme _compiler_ (to a real machine) in the same space of time, because of all the fiddling little problems fuctional languages give you (environment, functions as first class objects, etc). The people who are really into functional languages are doing some very clever things in terms of optimizing compilation and getting parallelism into the language. If you get the chance to see Simon Peyton-Jones speak, do it. He is working on a parallel machine that is designed to handle a compiled functional language he has designed (you get parallelism for free -none of this semaphore stuff). He claims it will really scream. The best part is that he gets his hands dirty with the hardware -- a nice contrast to most Schemers (I would doubt that R. Kent Dybvig would be so eager to pull wires). I'm still waiting for the Forth RISC machine. Steve Hawley sdh@flash.bellcore.com A noun's a special kind of word. It's ev'ry name you ever heard. I find it quite interesting, A noun's a person place or thing.