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