Forth
コンパイラ自身はモノリシックなプログラムではない。これは システムから可視な Forth ワードとプログラマから利用可能なものとからなっている。このことはプログラマが特殊な目的のためにコンパイラのワードを変更することを可能にする。
名前フィールド内の「コンパイル時」フラグは、「コンパイル時」の振る舞いのワードのセットである。ほとんどの単純なワードは、それがコマンドライン上で入力されたかコードに埋め込まれたかにかかわらず、同じコードが実行される。そのようにコンパイルされるとき、コンパイラはコードかワードへのスレッデッドポインタを単に配置する。
コンパイル時ワードの古典的な例は IF and WHILE といった制御構造である。Forth のすべての制御構造とほとんどすべてのコンパイラはコンパイル時ワードとして実装される。すべての Forth 制御フローワードは、プリミティブなワードBRANCHや?BRANCH(もしfalseなら分岐する)の各種の組み合わせをコンパイルするために、コンパイルの間に実行される。コンパイルの間、データスタックは制御構造のバランシング、ネスティング、ブランチアドレスのバックパッチングをサポートするのに使われる。コード断片
は定義の内側では典型的には次のような一連にコンパイルされる。
BRANCHのあとの数のは相対的なジャンプアドレスを表している。LITは「リテラル」数値をデータスタックにプッシュするためのプリミティブなワードである。
ワード :(コロン)は名前を引数として構文解析し、辞書にヘッダを作り(記述法はコロン記号で始まりセミコロン記号で終わるので、コロン定義, colon definition)、コンパイル状態に突入する。コンパイラは後続のワードをコンパイルしていく。このときワードが後述する即時ワードである場合は実行し、そうでない場合は実行時に呼び出されるようにコンパイルする。
ワード;(セミコロン)は現在の定義を終了し、実行状態へと復帰する。
システムの状態はワード [(左大括弧)及び ](右大括弧)を用いて手動で変更させることができ、それぞれ実行状態とコンパイル状態に突入する。ANS Forthでは、現在のインタプリタの状態はフラグ STATEから読み取ることができ、コンピレーションステート状態 true、そうでなければ false の値がこいる。をこのインタプリタの現在の状態による振る舞いコンパイル時ステートスマートワード (state-smart words) の実装を可能にする。
Forthをベースにしてワードを日本語で記述可能にした言語としてMindがある
Forthをベースに、オブジェクト指向に改良したMac OS向けの開発システムMops。オブジェクト指向とマルチスレッド対応のPalo Alto Shipping Co.製のMach1(まっはわん)がある。
Open Firmwareのシェル言語はForthベースである。SunのOpenBoot PROM(OBP)やCHRPベースのPower Macintoshの起動用ファームウェアはOpen Firmwareの実装である。
Forthを元にしたコマンド言語であるFiclはFreeBSDのブートローダの実装に使われている。
1985年ごろ、服飾メーカーとして知られるJUN(株式会社ジュン)が開発したコンピュータグラフィックシステム4D-Boxのオペレーション言語0DLはForthであった。
ワード : (colon)、POSTPONE、' (tick)と :NONAME は、データスタックの代わりにユーザからの入力からそれらの引数をとる構文解析ワード (parsing words) の例である。別の例では、コロン定義において、次の右括弧を含む後続のワードを読み込んで無視し、コメントを配置するのに使われる ((左括弧)がある。同様に、ワード \(バックスラッシュ)は現在の行の終端まで続くコメントのために使われる。