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

trolfs@vax1.tcd.ie (Thomas Rolfs) (01/05/90)

                        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 (*)
 ---------------------------------------------------

Here  is a brief  description of the language  to give you an
idea of what FORTH is like, if you have never seen it before.
 
FORTH is an interpreted/compiled language like LISP. It
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 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. 

At the moment I'm trying to get together  info on good PD and
commercial 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.
 
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----
"Pay no attention to the man behind the curtain."
-- The Wizard Of Oz