[comp.lang.forth] ******* Welcome to comp.lang.forth *******

trolfs@vax1.tcd.ie (Thomas Rolfs) (12/02/89)

                        W E L C O M E
 
                             T O
 
                       COMP.LANG.FORTH
 
           The FORTH Programming Language Newsgroup
 
 
 
 
 
F O R E W O R D
 -----------------
 
This  is a monthly posting designed to introduce newcomers to
the comp.lang.forth group and to the FORTH community. Whether
you   are  a   novice,  intermediate   or  advanced  Forther,
comp.lang.forth  will give you the means to get in touch with
others  who  share  your  interests  and  needs,  as  well as
providing a forum for discussions and ideas on FORTH.
 
If  you are totally new  to FORTH and would  like to find out
more  about it,  then you  will find  this posting especially
helpful.
 
Welcome to comp.lang.forth.
 
 
 
 
 
C O N T E N T S
 -----------------
 
* Introduction To comp.lang.forth
* The History Of FORTH
* The FORTH Language - A brief description of FORTH
* Books On FORTH - Some recommended books on FORTH
* Getting FORTH For Your Computer
* On-Line Information Service (OLIS)
 
 
 
 
 



* Introduction to comp.lang.forth
 ---------------------------------
 
Needless  to  say, comp.lang.forth  is  a newsgroup  which is
dedicated  to discussions on  the FORTH programming language.
These discussions cover:
 
        +  Tips,   hacks,   and   examples   of   programming 
           practises.
 
        +  Ideas, proposals  and problems for  contemplation.
 
        +  Using     FORTH     for     common/special/bizarre 
           applications.
 
        +  What  the future  holds  for FORTH,  ie Standards,
           usage, new fields/applications etc..
 
        +  Whole ranges of computer science topics, eg expert
           systems,  object oriented programming,  interfaces
           etc..
 
        +  Hardware  applications,   FORTH  chips,   computer
           architecture.

        +  Anything else that's interesting.
 
Also found are:
 
        +  Requests for help, information etc...
 
        +  Light relief (:-)
 
        +  News about happenings in the FORTH community
 
 
The  amount of traffic which goes  through the group is quite
low,  but the  quality of articles  is very  high. Of course,
this  shouldn't deter new people from adding their input. Far
from  it. One  of the  nicest things  about the  group is the
encouragement  and support  that newcomers  to FORTH  and the
FORTH  community get (and I'm  speaking from experience). So,
put  finger to keyboard and let us  know what you're up to or
if you have any questions about FORTH.
 
 
 
 
 


 
* The History Of FORTH
 -------------------------
 
This is an extract from the F-PC User's Manual.
....
Forth  was  invented by  Charles Moore  in  the 1960's  as he
developed specialized tools for various applications.  It was
formalized   into  a   programming  language   for  telescope
automation  while  Mr.  Moore  was  with  the  National Radio
Astronomy  Observatory.  As this work was supported by public
funds,  Forth was  born as  a public  domain software package
which  followed telescopes  to many different  countries.  In
1972  Mr. Moore  left NRAO  to form  FORTH, Inc.  in order to
market  Forth systems and services. Implementations developed
in  FORTH,  Inc. were  proprietary  and their  usage required
license from FORTH, Inc.  However, a copy of Forth for PDP-11
was  released to DECUS, the DEC Users Group, which became the
only readily available public domain Forth for many years.
 
Forth  Interest Group was organized  in 1978 to encourage the
use  of Forth  on small  personal computers,  which gradually
became  available for individual users.   One major effort by
Forth   Interest   Group   was   the   formation   of   Forth
Implementation  Team lead by Bill  Ragsdale to build figForth
and  put it  in the  public domain  for general distribution.
Because  figForth  was  implemented  on  many microprocessors
based  on a  single model  and released  with complete source
listings,  it  became  the  de  facto  standard  of  Forth on
personal computers, eclipsing polyForth which was by then the
main product from FORTH, Inc......
 
The  other  major objective  of Forth  Interest Group  was to
establish  a standard  definition of  Forth as  a programming
language.   Forth Standards  Team was organized  in 1978.  It
took the Forth-77 Standard developed by Forth users in Europe
and  produced Forth-78 Standard.   It was very unsatisfactory
and   was  almost  immediately  reworked  into  the  Forth-79
Standard  which  was  accepted by  Forth  Interest  Group for
promotion. However, Forth Interest Group also decided that it
would  not publish implementations  and only encouraged Forth
vendors  to provided  implementations and support.   The only
major  public domain  Forth supporting  Forth-79 Standard was
MVP-Forth written by Glenn Haydon and distributed by Mountain
View Press.
 
Forth   Standard  Team  continued  the  refinement  of  Forth
language and published the Forth-83 Standard in 1983.  Again,
Forth  Interest Group supported and  promoted it, but did not
provided any implementation.  Henry Laxen and Mike Perry felt
that  the Standard  could not  spread without  a faithful and
useful  implementation.    They  implemented  a comprehensive
model on 8080, 8086, and 68000 processors with fairly uniform
and  transparent interfaces to the  CP/M and MS-DOS operating
systems.  This public domain F83 model found wide acceptance,
especially  among IBM PC users after it was listed in the PC-
SIG catalog. ......
 
                                    Dr. C. H. Ting
                                    Documentation Coordinator
                                    F-PC Working Group


 
 
 
 
 
 
 
* The FORTH Language - A brief description of FORTH (*)
 ---------------------------------------------------

If you  have  never  seen or  used  FORTH before,  then  this
section  will give you an ideal  of what FORTH is like. It is
not intended as a complete  introduction to FORTH, but simple
to give you a taster of what  to  expect.  There are a lot of
very  good  books and articles  which introduce  and  explain
FORTH much better than I can ever hope to.

                         **WARNING**
Before we go on,  I feel it is my  duty to warn you that  the
following  text,  and possible  consequences there after, may
lead the  unsuspecting   reader  to become  what is  commonly
refered to as a  "FORTH USER".  If you do  develop the  urge,
don't  panic.   There are  organizations   available  to give
support.  This warning was sponsored by the "SAY NO TO FORTH"
Counsel. Remember: You have been warned ... 
                         ***********
OK. Now read on :-)
     
FORTH consists of basically 3 things:
 
    1) a DICTIONARY
 
    2) an INTERPRETER/COMPILER
  and
    3) a DATA STACK (holds integers): Also known as the
                                    : PARAMETER STACK
 
The  DICTIONARY  is a  collection of  FORTH WORDS.  WORDS are
equivalent  to FUNCTIONS in C  and are called (executed) just
by  typing their name.  New WORDS are  created using existing
ones  and are compiled  one at a time.  Therefore, once a new
WORD is compiled, it immediately becomes part of the language
and  it itself can be used  to describe new WORDS. This gives
very   fast  turn  around  times,   due  to  the  incremental
compilation, and makes FORTH an extendable language which you
can tailor to you specific needs [To get a better idea of the
philosophy behind FORTH, ie. the use of WORDS, read "Thinking
Forth" by Leo Brodie].
 
The  DATA STACK is usually used for parameter passing between
WORDS.  For  example, in  FORTH there  is  a WORD  called "+"
(plus)  which works by popping off the top two items from the
DATA  STACK, adding them  and pushing back  on the result. An
example is given further on.
 
The  INTERPRETER/COMPILER  is  itself  a  FORTH  WORD  called
INTERPRET.  Put simply (ie.  ignoring compilation), INTERPRET
checks  for two things;  numbers and names  of WORDS. Numbers
are  pushed on to  the DATA STACK and  WORDS, whos names have
been typed, are executed.
 
For  example, if  we want  to add  two integers  and show the
result then we would type in the following:
 
     123 56 + . <RETURN>   179 Ok
 
FORTH  interprets from left to right,  so that 123 and 56 are
first  pushed on to the PARAMETER STACK. Then the WORD "+" is
executed.  And Finally,  the WORD  "." (period)  is executed.
["." (period) prints out the top item on the STACK]
 
This  is a very simple example, just  to give an idea of what
FORTH  is like.  There is  *MUCH* more  to FORTH  than can be
covered  here and some suggested reading material is given in
the next section. FORTH is well worth a look at, just for its
uniqueness alone.

     (*) The  description  given here is  very simplified and
         brief. Hopefully, I will have a more complete and in
         depth introduction to FORTH available from OLIS.
 
 
 




 
* Books On FORTH - Some recommended books on FORTH  (+)
 --------------------------------------------------
 
Recommended book for casual reading:
 
   - "Thinking Forth,
      a language and philosophy for solving problems"
      By Leo Brodie.
 
 
Some books for reference:
 
   - "Threaded Interpretive Languages"
     By R. G. Loelinger.

   - "F83 Source"
     By H. Laxen & M. Perry.

 
Some Books for FORTH tuition (*):
 
   - "Starting Forth",  (2nd Ed.)
     By Leo Brodie.
 
  - "Mastering Forth"   (2nd Ed.)
    By Martin Tracy & Anita Anderson.

   - "FORTH: A text and reference"
     By  M. G. Kelly & N. Spies.
 
(*) FORTH  is best learnt  if you have FORTH running  on your 
    computer, while you read.
 
(+) Request   the  BOOKS_FORTH  file  from  OLIS  for  a more
    comprehensive  listing of books on FORTH. See the Section
    on OLIS.








* Getting FORTH For Your Computer
 ---------------------------------

Important  thing  to  remember  when  getting FORTH  for your
computer is that there are different DIALECTS  of FORTH.  The
important ones to remember are:

                  FigForth
                  Forth-79 Standard
                  Forth-83 Standard

Most texts on Forth will usually refer to these dialects when
giving examples of code,  so if you are trying Forth for  the 
first  time,  make sure  that you get  a Forth implementation 
that supports to one of the above. Some common ones are:

 o   F83 by Laxen & Perry - a PD Forth-83 standard Forth

 o   MVP-FORTH by Glen Haydon - a PD Forth-79 standard Forth

 o   FPC by Tom Zimmer - a PD Forth-83 standard Forth

At the moment I'm trying to get together  info on good PD and
commercially  available  Forths for most makes of  computers.  
Until  then, just ask comp.lang.forth for any help on getting  
Forth for your particular machine.







* On Line Information Service
 -----------------------------
 
                  ****** O L I S ******
 
               On Line Information Service
 
FORTH  is  not the  an  easy language  to  learn. Of  all the
languages  going   it  has  to  be,  initially,  one  of  the
hardest. It's  a language  which needs to be  understood well
before real gains can be made from it. This understanding can
be   very  hard  to   achieve  if  you   don't  have  a  good
comprehensive  knowledge base  to draw from.  The idea behind
OLIS  is to provide this 'knowledge  base'  in order to  help 
novice and intermediate Forthers.
 
OLIS  is a home grown mail server which resides in my account
at "TROLFS@vax1.tcd.ie" (192.35.207.59). Through OLIS, files,
containing  information on different aspects of FORTH, can be
requested.  Hopefully, these  files will provide  an easy no-
hassel way to find out more about FORTH.
 
OLIS  is very  new and  limited in  resources. There  are few
files  at the moment,  but over time they  will increase as I
take    articles   from   here   and   there   (mainly   from
comp.lang.forth).  However,  I  hope that  the  main  bulk of
OLIS's  'knowledge' will come from people  on the net, in the
form of small snippets of information.
 
To   find   out  more   about   OLIS,  just   send   mail  to
"TROLFS@vax1.tcd.ie" with the subject line "OLIS:REQUEST" and
put the word "HELP" somewhere in the body of the message.
 
If you have any queries or comments, then just mail me at the
same address. - Tommy (OLIS Developer/Janitor)
 
 
DISCLAIMER: OLIS is in no way  connected with Trinity College
            Dublin.  OLIS is run from  my own account,  on my
            own time.  TCD have no obligation to support OLIS
            and  can have  OLIS discontinued at any time they
            feel necessary.
-- 
Thomas Rolfs               mail: 33 Beechwood Lawn, Dun Laoghaire, Eire. //
E-mail:TROLFS[Thomas Rolfs On-Line Forth Server - "OLIS"]@vax1.tcd.ie \\//+IV
-----------------------------------------------------------------------\X----
I want to live forever or die in the attempt
                                                                -- Unknown