>"J1 is a<p><i>small (200 lines of Verilog)</i><p>stack-based CPU, intended for FPGAs. A complete J1 with 16Kbytes of RAM fits easily on a small Xilinx FPGA.<p>PDS: A long time ago, I thought that Forth was "just another computer programming language", but back then, I had no appreciation for it, because I didn't understand where it fits in on the abstraction hierarchy that we call modern day computing...<p>I didn't have this appreciation, at the time, because I had not worked on writing compilers at the time...<p>Now, let me explain to you why Forth is so gloriously wonderful!<p>You see, in terms of abstraction, where transistors are the lowest level, and Lisp, and Lisp-like languages are the highest, and most compilers are somewhat mid-level,<p><i>Forth is the next step up above machine language -- but a step below most compilers!</i><p>You'd know this, you'd <i>derive</i> this, if you ever tried to write a compiler from the bottom up (going from assembly language to a compiler) rather than from the top down (what is taught about compiler construction in most University CS classes, i.e., the "Dragon Book", etc.)<p>See, Forth is sort of what happens when you add an at-runtime symbol (AKA, "keyword") lookup table to your assembler code, such that addresses (AKA "labels", AKA, "functions", AKA "procedures", AKA "methods") can be dynamically executed at runtime, and you create an interpreter / stack-machine -- around this concept.<p>There's a little bit more to that of course, but that's the basic idea.<p>Then you <i>derive</i> Forth!<p>That's <i>why</i> Forth is so gorgeous and brilliant!<p>And so aesthetically pleasing, because of it's small size, yet amazing functionality!<p>And why you don't need big, complex CPU's to run it!<p>It exactly follows the "Einsteinian mantra" of<p><i>"As simple as possible, but not simpler!"</i><p>Anyway, thanks again for your great work with the J1 Forth CPU!