ir230@sdcc6.ucsd.EDU (john wavrik) (08/03/89)
SCFVM.BITNET!ZMLEB (Lee Brotzman) writes: > I don't think that Forth is easy to learn. But, I think that time spent > learning Forth is time well spent... I have used the techniques I gained > from an intimate knowledge of Forth in other, "academically accepted", > languages. > This may be a harsh statement, but I still think that the only way that > Forth can be truly appreciated is to write a Forth interpreter on you own. > At its heart, Forth is extremely simple. In its soul, Forth is something > that approaches enlightenment. With a small amount of knowledge about how > computers work, and some assembly language programming, Forth is yours. > Just remember that Forth is not hard, it is only different. ------------------------------------------------------------------------- LEARNING FORTH FORTRAN, BASIC, Pascal, C, ADA, etc. belong to a family of similar languages. Learning one after having learned one of the others is a relatively minor matter of coping with a new syntax. Compound statements may be delimited by BEGIN .. END in one and curly brackets in another; statements may be terminated or separated; the terminator/separator may be a semi-colon in one language and a comma in another; keywords may vary: "case" may be called "switch"; "print" may be called "write"; etc. One of my students, a faculty member steeped in the lore of these languages, expressed his frustration at being unable to translate his pre-conceived ideas to Forth by saying "What kind of crazy language has 800 keywords?". Any learning depends on "organizing principles": techniques or devices used to make sense of a body of information. Forth can appear hard to those who have learned other languages because they have the wrong organizing principles. They have been trained to avoid involving themselves with how the how a language is implemented. Compilers for conventional languages are very complex, and conventional wisdom is that the user should not have to know anything about them. ("How a compiler works is no more of interest to a programmer than the details of an internal combustion engine is to the driver of a car." --anon) Forth requires a different set of organizing principles. It is learned most easily by understanding how it works. Indeed, Forth's main claim to fame is that it trades built-in features for users' knowledge. Forth is an assembly language for a virtual machine which can be implemented on any real computer. The virtual machine has two stacks, two stack pointers, and an instruction pointer. Code is compiled as a sequence of addresses of component words. Etc. Words can be understood in terms of their actions (typically in terms of what they do to the stack). A mental image of the underlying virtual machine provides a powerful organizing principle. It is not necessary to write a Forth system to learn Forth -- but one should learn on a system for which the source code is accessible on-line. Forth is more a toolkit for building languages than a language itself. By providing a low level base, Forth allows the user to make extensions and modifications which, for conventional languages, would require the services of a professional compiler writer. By providing a mechanism for extensibility, Forth permits the user to build a tailor-made high level language. Unlike most assembly languages, the commands of Forth can be used interactively. This has been found to speed development (and makes it easy to produce an interactive application language). Since Forth includes the elements of an operating system, highly portable complete systems can be created which include I/O from keyboard, console, and mass storage. Forth, as conceived of by Charles Moore, has both power and portability. A user's access to the implementation is only half of the virtue of Forth. The other half is that the implementation is simple enough for the access to be useful. The simplicity of Forth's implementation is the key both to understanding the language and to its power. --J. Wavrik
GEnie@willett.UUCP (ForthNet articles from GEnie) (12/21/89)
Date: 12-19-89 (18:21) Number: 493 (Echo) To: JACK BROWN Refer#: NONE From: GORDON GANDERTON Read: 12-19-89 (22:13) Subj: LEARNING FORTH Status: PUBLIC MESSAGE Jack, I d/l all the diaryx.zips, tried to read thru the documentation then decided it would be quicker to print them out and read at my letter. An inch thick of paper later, I decided to stop half way then read thru. I had all the documentation for F83. That could be useful. The rest was dry reading about standards that I dont need just yet. I see lots of evidence that F83 is a good standard to use to learn Forth. But MVPforth is recommended for starting with forth 79. Then, I have Abundance and FPC and should I d/l FPC 3.5. What to do! What to do! What to do!. Have you discontinued the tutorial or am I missing something after lesson 5??? --- ~ EZ-Reader 1.20 ~ .EXE -ex ----- This message came from GEnie via willett through a semi-automated program. Report problems to: 'uunet!willett!dwp' or 'willett!dwp@gateway.sei.cmu.edu'
GEnie@willett.UUCP (ForthNet articles from GEnie) (12/21/89)
Date: 12-19-89 (23:42) Number: 494 (Echo) To: GORDON GANDERTON Refer#: 507 From: JACK BROWN Read: NO Subj: LEARNING FORTH Status: PUBLIC MESSAGE GG>But MVPforth is recommended for starting with forth 79. Then, I have GG>Abundance and FPC and should I d/l FPC 3.5. What to do! What to do! Well... I shall putting up the latest version of Guy Kelly's PC-Forth83 which he claims is the best system to learn on! So then you will have another choice to ponder. I have a colleague who wants to learn Forth too but he won't sit down at the keyboard! Wants to learn it by reading books! So if you want to learn Forth... pick a system,... any of those you mentioned will do but the best one would be the one that you know your colleagues and associates use. That way you are more likely to get help with your problems. We have a number of people in the BC Fig chapter that use F-PC. Dave Brown, me, Zafar Essak, Kenneth O'Heskin, Roger Bicknell, ... just to mention a few that come to mind. Once you pick a system then stick with it and write code. If you can't write any code then try someone else's code and modify it (improve it!). If it breaks find out why and fix it! Then you will have learned something new. GG>What to do!. Have you discontinued the tutorial or am I missing GG>something after lesson 5??? Well... yes.... I must agree it looks like it has been discontinued but in fact it is only stuck! I'll try and get started again... In the mean time if you are looking for something to program why not try one of the puzzles that I have been posting in the PEER (ECFB) or REVIEW (BCFB) conference. --- * QDeLuxe 1.01 #260s NET/Mail : British Columbia Forth Board - Burnaby BC - (604)434-5886 ----- This message came from GEnie via willett through a semi-automated program. Report problems to: 'uunet!willett!dwp' or 'willett!dwp@gateway.sei.cmu.edu'
ForthNet@willett.UUCP (ForthNet articles from GEnie) (01/06/90)
Date: 12-22-89 (16:17) Number: 495 (Echo) To: JACK BROWN Refer#: 494 From: GORDON GANDERTON Read: NO Subj: LEARNING FORTH Status: PUBLIC MESSAGE S>Once you pick a system then stick with it and write code. Thanks for the advice Jack. S>mean time if you are looking for something to program why not try one of S>the puzzles that I have been posting in the PEER (ECFB) or REVIEW I appreciate the availability of these puzzles, Jack, but what I really would like to learn is an overall concept of Forth. I know this must be possible because I learned overall concepts of Basic and C. For example, a simple name and address program. Nick Dennis showed me one in Abundance but to me it was too complex using unique Abundance words. As you know, I missed the demo of a simple data base at the club meeting. I know that Dave Brown has a simple data base but again, this is too complex for me. I am looking for something just a little bit beyond the simple: : INPUT ." What is your name? " KEY ; : ANSWER ." Your name is " ; : RESULT INPUT ." Hello " ANSWER ; This example was done in a hurry and is full of errors and wont work. I just wanted to demonstrate how little I know about simple strings. Thanks, Jack and Merry Christmas and Happy New Year to you, Dave and your family. Thanks a lot for all your help in the past year. rgds. --- ~ EZ-Reader 1.20 ~ .EXE -ex NET/Mail : British Columbia Forth Board - Burnaby BC - (604)434-5886 ----- This message came from GEnie via willett through a semi-automated program. Report problems to: 'uunet!willett!dwp' or 'willett!dwp@gateway.sei.cmu.edu'
plph@caen.engin.umich.edu (Mark Montague) (07/03/90)
I am interested in learning FORTH, but can't afford to spend much (if any) money on it. If I could get everything electronically, that would be ideal. I have a 80386 system running both OS/2 and MS-DOS, but would like to keep my learning "clean" and applicable to all machines. Could somebody out there please help me out and point me in the right direction? Thanks. Mark Montague plph@caen.engin.umich.edu
skoda@AQ.SSC.AF.MIL ("A1C John F. Skoda IV") (08/14/90)
Where can I find some good FORTH reference material, is Leo Brodie the only FORTH author? Also what projects have used FORTH sucessfully ? ******************************************************************************* * jskoda@aq.ssc.af.mil * '...What do you do if you ARE a manically * * jskoda@aqlan.ssc.af.mil * depressed robot...' * * SSC/AQAA Gunter AFB * -- Marvin (The Hitchhikers Guide To * * Montgomery, Al, 36117 * The Galaxy ) * *******************************************************************************