Article View: net.arch
Article #2570Re: What's so good about FORTH?
From: Chad R. Larson
Date: Mon, 16 Jun 1986 19:35
Date: Mon, 16 Jun 1986 19:35
66 lines
4128 bytes
4128 bytes
In article <2199@peora.UUCP> jer@peora.UUCP (J. Eric Roskos) writes:
>
>I'm not entirely sure what this has to do with net.arch, but aside from
>that, this raises an issue that's been puzzling me for several years.
>...what is the real *advantage* of FORTH?
You're right, it probably doesn't belong here, so I've directed
followups to net.lang.forth, where it may start a new discussion
and/or flame war.
The two main advantages of Forth are user extensibility and
interactive development. Most of the stuff about threaded
dictionaries and all that you hear are there to bring about the two
above features. (I'm talking about a true Forth here, not just a
compiler that can handle Forth syntax. A true Forth is an environment
for the programmer, not only a set of tools.)
The interactive environment is one where you can test each new
function or primitive (called "words") right from your keyboard as you
enter it. There is not (at least in the usual sense) an edit-compile-
link-load-debug cycle. You figure out a function you need, type it in
and test it. If it works as you wish, it is now available to be used
in any new words _right_now! You can test any portion of your program
from the highest level definition to the lowest primitive at any time
to satisfy yourself on their working. Not under a debugger... just as
you are working along. You don't have to wait several minutes for
MAKE to do its thing in order to test a one word change.
The user extensibility is the real productivity aid, and the thing
that gives Forth its "Forthness". Programming in Forth is actually
developing a new language, specifically tailored to your application.
You start with the set of primitive words all Forth's come with and
string them together to define new words that do some function you
need done. Those new words are used to define higher function words
until you eventually have a rich vocabulary of functions keyed exactly
to what you are trying to do. When your program is done, and the user
inevitably requests "just one more thing", you can frequently add it
in a couple of minutes by creating another word made up of six or
eight words you already have, since those words are so well fitted to
what you are up to. Programs only grow by a dozen or so bytes when
you do this.
Sometimes Forth fans tend to take on religious fervor. This sometimes
is off-putting to interested people, but in many ways Forth is a
religion (or at least a state of mind). When you put your Forth hat
on, you tend to look at programming problems in a different light.
If I haven't bored you yet, some good books are "Starting Forth" and
"Thinking Forth" by Leo Brodie. The first deals with the language and
an implementation of it, the second with how good Forth programmers
tend to approach problems.
Disclaimer: Others undoubtably have their own Favorite Forth
Features. Remember the religious aspects.
: ?DISAGREE IF FLAME ELSE :-) THEN ;
--
"I read the news today...oh, boy!" -John Lennon
_____________________________________________________________________
UUCP: {mot}!anasazi!chad Voice: Hey, Chad!
Ma Bell: (602) 870-3330 ICBM: N33deg,33min
Surface: International Anasazi, Inc. W112deg,03min
7500 North Dreamy Draw Drive
Suit 120
Phoenix, AZ 85020
Technical Details
Message-ID:
<347@anasazi.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!decvax!tektronix!hplabs!hao!noao!terak!anasazi!chadReferences:
<201@pyuxv.UUCP> <3700003@uiucdcsp> <132@vaxb.calgary.UUCP>Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: arc1-ca.pugleaf.net!utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!decvax!tektronix!hplabs!hao!noao!terak!anasazi!chad From: chad@anasazi.UUCP (Chad R. Larson) Newsgroups: net.arch,net.lang.forth Subject: Re: What's so good about FORTH? Message-ID: <347@anasazi.UUCP> Date: Mon, 16-Jun-86 15:35:47 EDT Article-I.D.: anasazi.347 Posted: Mon Jun 16 15:35:47 1986 Date-Received: Thu, 19-Jun-86 19:38:02 EDT References: <201@pyuxv.UUCP> <3700003@uiucdcsp> <132@vaxb.calgary.UUCP> Reply-To: chad@anasazi.UUCP (Chad R. Larson) Followup-To: net.lang.forth Distribution: net Organization: Anasazi, Phoenix Az. Lines: 66 Keywords: FORTH