Penguin

Differences between version 24 and previous revision of Forth.

Other diffs: Previous Major Revision, Previous Author, or view the Annotated Edit History

Newer page: version 24 Last edited on Saturday, July 29, 2006 11:24:02 am by AristotlePagaltzis Revert
Older page: version 20 Last edited on Monday, January 17, 2005 5:33:36 pm by AristotlePagaltzis Revert
@@ -12,24 +12,24 @@
  A [Forth] compiler for the PalmPilot 
 [GForth | http://www.jwdt.com/~paysan/gforth.html]: 
  [GNU]'s Forth. 
  It's unusual for a [Forth] in that it comes with a manual. 
- [Forth] programmers aren't big on manuals :-( 
+ [Forth] programmers aren't big on manuals <tt> :-(</tt>  
 [PFE | http://pfe.sourceforge.net]: 
- It has a VirtualMachine and kernel (see below) written [C]. 
+ It has a VirtualMachine and kernel (see below) written in [C]. 
  It might be a good one to study. 
 [RetroForth | http://retro.tunes.org]: 
- Both a ForthOS and a [Forth] for Linux systems.  
- It's written with a small AssemblyLanguage kernel and the rest is written in Forth. 
+ Both a ForthOS and a [Forth] for [ Linux] systems.  
+ It's written with a small AssemblyLanguage kernel and the rest is written in [ Forth]
 [bigFORTH | http://bigforth.sf.net/]: 
- A native code compiler for the 386 architecture which includes a [GUI] library and form editor. 
+ A native code compiler for [x86] which includes a [GUI] library and form editor. 
  
 [Forth] is also the basis for the [RPL] language used in HewlettPackard calculators and OpenFirmware. 
  
 !!! [Forth] Machines 
  
  Sentences long extremely and notation Polish reverse in writing about wrong is what? 
- <br>-- Jarkko Hietaniemi 
+ <br> Jarkko Hietaniemi 
  
 ''This is a general description of how [Forth] works. It's __different__. If you like [Brainf*ck] you will like [Forth].'' 
  
 [Forth] functions are called ''words''. 
@@ -45,9 +45,9 @@
 The word <tt>:</tt> tells [Forth] to begin compiling subsequent words on the input buffer. 
  
 Some words have flags that tell [Forth] to execute them immediately while compiling: these create control structures in the ByteCode. Ordinary words are compiled into <tt>call</tt> statements. Words that look like integers are compiled into <tt>push</tt> statements. The word <tt>;</tt> pushes the new defintion onto the dictionary and ends compilation. (It goes ''something'' like that anyway. I think I'm giving you the gist.) 
  
-You use <tt>:</tt> to add new words to the [Forth] system until you've created a high-level [Forth] vocabulary that you can easily express your problem in... then you just keep going until you've defined a single word that, when called, executes your entire program. [Forth] is very much a BottomUp language. :-) 
+You use <tt>:</tt> to add new words to the [Forth] system until you've created a high-level [Forth] vocabulary that you can easily express your problem in then you just keep going until you've defined a single word that, when called, executes your entire program. [Forth] is very much a BottomUp language. :-) 
  
 MachineCode statements can be used as [Forth] ByteCode~s so the machine can execute it directly. The machine will mostly be executing call statements, but this does at least remove the need for an inner loop in the interpreter. This is called ''subroutine threaded interpretation''. 
  
 Real [Forth] geeks write their own [Forth] kernels from the metal up. (I wrote my own, on paper, when I was 14. (I don't think I can do that anymore.) I was working from a [Forth] book and a Z80 opcode table; I didn't have a computer. I still have pieces of it. God knows if it would have worked.) ChuckMoore creates his own [Forth] machines from silicon. It's not ''very'' hard once you've absorbed the [Forth] philosophy. There is shockingly little holding [Forth] up. 
@@ -55,9 +55,9 @@
 !!! Examples 
  
 This right here is a lovely example of [Forth]: LifeInForth. 
  
-This more sober example comes from the IRC bot in [ISForth | http://isforth.clss.net/]: 
+This more sober example comes from the IRC bot ( in [ISForth | http://isforth.clss.net/])
  
 <verbatim> 
 \ receive up to 512 bytes from bot socket 
  
@@ -80,9 +80,9 @@
  drop \ discard buffer address 
 
 </verbatim> 
  
-Yet another example, a simple text editor (From [Retro Native Forth | http://retro.tunes.org]): 
+Yet another example, a simple text editor (from [Retro Native Forth | http://retro.tunes.org]): 
  
 <verbatim> 
 0 variable lastBlock 
 asmbase $1024 + constant blockBase