Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxl!houxm!houxz!vax135!floyd!whuxle!mit-eddie!genrad!decvax!mcnc!ncsu!uvacs!mac From: mac@uvacs.UUCP Newsgroups: net.lang Subject: goto/tail-recursion &c. Message-ID: <1328@uvacs.UUCP> Date: Sat, 2-Jun-84 11:35:22 EDT Article-I.D.: uvacs.1328 Posted: Sat Jun 2 11:35:22 1984 Date-Received: Tue, 5-Jun-84 08:48:50 EDT Lines: 30 pseudorandom thoughts on the Expensive Procedure Call / LAMBDA as Ultimate GOTO myth. I'm curious what mit-eddi!alan (mit-eddi.1979) learned as his first programming language. Is he perhaps also brain-damaged? I started with FORTRAN on an 1130, but feel that I've recovered since then. Or is this an exercise in Dijkstra-like arrogance and ridiculous rhetoric? I agree with mit-eddi!gumby (mit.eddi.1986) that LISP isn't normally object-oriented, though it's likely that those clever folks at MIT have made it so. I'm not sure about CLU. Is overloading an adequate substitute for late binding? Maybe it's better. On the subject of CLU, in reading the manual I was interested in the treatment of exits/conditions. CLU seems to make it possible to staticly trace the possible control flow for these, unlike e.g. Ada, where exception handlers are dynamicly bound. Is this adequate? It looks like a better idea. mit-eddi!gumby (mit.eddi.1986) seems to agree. Tail-recursion elimination does remove a lot of trace information, making it somewhat harder to debug. On the other hand, gotos (& whiles, & selects, &c.) don't leave any trace information. These are what the tail- recursion is usually replacing. Maybe interpreter/compilers could be instructed to retain call trace information in the same way that some debuggers retain jump trace information. no longer ARPA: mac%uvacs@csnet-relay CS: mac@virginia USE: ...uvacs!mac