Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!decvax!decwrl!pyramid!hplabs!hao!noao!terak!doug From: doug@terak.UUCP Newsgroups: net.ai,net.research,net.lang,net.lang.lisp Subject: Re: String reduction Message-ID: <1142@terak.UUCP> Date: Thu, 24-Apr-86 11:03:06 EDT Article-I.D.: terak.1142 Posted: Thu Apr 24 11:03:06 1986 Date-Received: Sun, 27-Apr-86 05:49:10 EDT References: <1031@eagle.ukc.ac.uk> <994@umn-cs.UUCP> <404@cit-vax.Caltech.Edu> Organization: Calcomp Display Products Division, Scottsdale, AZ, USA Lines: 24 Xref: watmath net.ai:3424 net.research:462 net.lang:2399 net.lang.lisp:813 > TRAC is pretty easy to implement; I have an incomplete version written in > C that I did some years back. I also have a paper on TRAC which is probably > long out of print by now. If anyone cares, TRAC stands for Text Reckoner And Compiler, and is trademarked. It is discussed at some length in Peter Wegner's book, "Data Structures, Information Processing and Machine Organization" (the title may be off a bit, the book is at home and it's hard to remember such a lengthy title :-) Stanford used to have a version they called WYMPI. The main differences were the use of "*" instead of "#" and -- more significantly -- they permitted string (macro) names to be specified as the operator, rather than requiring as TRAC does that strings be specifically called with the "cl" operator. In other words, you could say *(macro,...) instead of #(cl,macro,...). Wegner leaves it as an exercise to the reader to show why the "cl" was an important architectural feature of TRAC which shouldn't have been tampered with. Something about trying to make #(cl,macro,...) == #(macro,...) and at the same time making ##(cl,macro,...) == ##(macro,...) -- Doug Pardee -- CalComp -- {elrond,seismo,decvax,ihnp4}!terak!doug