Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.3 (USS@Tek, v1.1) based on 4.3bsd-beta 6/6/85; site tekgvs.UUCP Path: utzoo!decvax!tektronix!tekcrl!tekgvs!toma From: toma@tekgvs.UUCP (Thomas Almy) Newsgroups: net.lang.forth Subject: Re: What's so good about FORTH? Message-ID: <1566@tekgvs.UUCP> Date: Tue, 17-Jun-86 10:43:40 EDT Article-I.D.: tekgvs.1566 Posted: Tue Jun 17 10:43:40 1986 Date-Received: Thu, 19-Jun-86 00:40:28 EDT References: <369@chinet.UUCP> <173@tekgen.UUCP> Reply-To: toma@tekgvs.UUCP (Thomas Almy) Distribution: na Organization: Tektronix, Inc., Beaverton, OR. Lines: 36 In article <173@tekgen.UUCP> gregl@tekgen.UUCP (Greg Lacefield) writes: >In article <369@chinet.UUCP> magik@chinet.UUCP (Ben Liberman) writes: >>From: jer@peora.UUCP (J. Eric Roskos) >> >>I have wondered whether there might be some demographic property of >>FORTH enthusiasts that's not immediately apparent -- e.g., maybe they >>run machines without any random-access mass storage device, or with >>very small memory; or maybe they are used to programming in BASIC and >>an assembler language, and then discover FORTH -- but since these >>attributes *aren't* things apparent, it's hard to know. > Currently I run Forth on an IBM PC AT with a hard disk. In the past I used a 68000 based workstation and a VAX. Prior programming experience include (in chronological order) Fortran, IBM 360 Assembler, BCPL (predecessor to C), LISP, PDP 11 Assembler, BASIC, Pascal, C, STOIC (related to Forth), Forth, Logo, and Smalltalk. Most of my programming is in Forth. > >>Thus my question... what is the real *advantage* of FORTH? If you answer, >>please avoid terms like "incremental compilation" and "threaded" unless >>you actually explain an implementation to show why these concepts are >>really beneficial, and what architectural properties of a machine they would >>fit well with. > >I'm not going to go into "threaded" and machine architectures. I'm a software >guru, not a hardware one, so I'll leave that up to those with more qualifica- >tions in those areas. (Tom Almy, care to comment? :-) > Basically, threaded code refers to a technique where the function definitions consist of pointers to other definitions rather than machine code itself. This allows fast compilation, compact code, but some performance loss. This technique was used by PDP-11 Fortran, and by most (if not all) interactive languages such as LISP and Smalltalk, also UCSD Pascal. Tom Almy