Channels ▼
RSS

Open Source

JForth: Implementing Forth in Java


Craig Lindley is a hardware engineer who, for many years, has been writing large-scale Java applications. Craig has authored more than 30 technical articles on various programming topics and published five books, dealing mostly with multimedia. His Digital Audio With Java is all about processing sound with DSP software written in Java. Craig can be contacted at calhjh@gmail.com .


After years programming large software systems, I occasionlly feel the need to do some programming on the small scale, on small hardware. Sometimes I just need to dispense with object orientation and structured design and write some code in assembler, C, or (my personal favorite) Forth. Programming close to the metal can be rewarding on many levels, not the least of which is that it lets you your arms around a complete problem and solve it outside of the group think mentality.

If there is a list somewhere of obscure computer programming languages Forth is on it. Although Forth occupies a place on the evolutionary continuum of programming languages that continues to this day, many programmers never got to or never wanted to see what Forth was all about. Programmers who did experiment with Forth typically fell into one two camps -- those that thought it was the best language ever (at least for a certain class of problems), and those who hated it completely. There was rarely any middle ground taken. Discussions of Forth often take on the tone of religious debates akin to discussions of what is the best programming editor.

I was an early convert to Forth after having worked at JPL on inter-planetary spacecraft where Forth was used for command, control, and testing purposes, Rolm Corporation on Forth-based PBX control and test applications, and Sun Microsystems where Forth is used as the boot environment on many Sun workstations. As an interesting aside, Forth is still going strong in the space industry.

Then as now, Forth is an excellent choice of programming language/programming environment/operating system for small computer systems where direct control of the hardware, of input and output (I/O) and/or a small memory footprint are required.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 

Video