Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!princeton!caip!topaz!uwvax!astroatc!philm From: philm@astroatc.UUCP (Phil Mason) Newsgroups: net.lang.forth Subject: Re: Some major drawbacks of Forth Message-ID: <460@astroatc.UUCP> Date: Thu, 26-Jun-86 12:07:17 EDT Article-I.D.: astroatc.460 Posted: Thu Jun 26 12:07:17 1986 Date-Received: Sun, 29-Jun-86 05:14:27 EDT References: <142@obelix.UUCP> Reply-To: philm@astroatc.UUCP (Phil Mason) Organization: Astronautics ATC, Madison, WI Lines: 45 In article <142@obelix.UUCP> ulf-d@obelix.UUCP (Ulf Dahle'n) writes: > >First one asks oneself if Forth has an interactive environment or not. >When developing programs you can easily try the just-gonna-see-if-it-works >method. Define a new word, test it, redefine it, forget it all. . . Well . . . strictly speaking I would say that Forth is interactive since you can "forget" groups of words and then type them in again. There isn't an edit-compile-debug cycle unless you use screens exclusively. It is true that you can't change just one word in a group of words unless that word is on the top of the directory. >[Decompiler question]. . .The problem is that all these structures can't be >found in the code, just a bunch of BRANCHs and 0BRANCHs (conditional and >non-conditional jumps). >What to do? If you impose strict rules such that all definitions can be >printed you would probably loose the "freedom of Forth". A solution could >be to define a printing function for every definition (which could be the >same for most words). But this would maybe conflict with another goal: >that of having compact code. The Laxen-Perry F83 decompiler is a reasonable start. It is possible to recreate the source code to an almost complete copy of the original if you have a smart decompiler. Having a special source dump part of each word would probably be overkill. >. . . But when it comes to editing you have a problem. You don't "decompile" >a definition just like that. You can't "really" replace an old definition. >You are forced to work with a disk-based editor and with "screens". You can use screens to your advantage. They break up an application into easily debugged units. If you arrange them properly, you can load only those screens that you wish to test. "Thinking Forth" by Leo Brodie has some good thoughts about screens. -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Kirk : Bones ? | Phil Mason, Astronautics Technical Center Bones : He's dead Jim. | Madison, Wisconsin - "Eat Cheese or Die!" - - - - - - - - - - - - - - - -| ...seismo-uwvax-astroatc!philm | I would really like to believe that my ...ihnp4-nicmad/ | employer shares all my opinions, but . . . =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=