Alternativen

Will man die Schleife vermeiden, darf man das einzelne Primitive nicht zu einer C-Funktion machen. Daraus folgt, daá alle Primitives Teil einer einzigen C-Funktion sein müssen. Dies führt zur ``giant switch''-L÷sung: Hierbei werden der innere Interpreter und die Realisierung aller Worte in eine einzige C-Funktion geschrieben. Diese C-Funktion besteht im wesentlichen aus einem switch-Statement. Compilierte Forth-Worte sind Listen von Codes, deren jeder einen Zweig in dem switch-statement auswählt. Der innere Interpreter sieht unvollständig ungefähr so aus:
for (;;)
  switch (*ip++)
    {
      case DROP: sp++; break;
      case DUP:  --sp; sp [0] = sp [1];
                 break;
      ...
Mit etwas Glück ist diese Methode sehr schnell, nämlich wenn der Compiler die wesentlichsten Systemvariablen sp, rp und ip, die lokal zu der groáen Funktion deklariert sind, in Prozessorregister legt.

Nachdem dpANS-Forth aber sehr umfangreich ist, wird diese Funktion entsprechend sehr groá. Es ist unwahrscheinlich, daá eine so groáe Funktion noch gut optimiert – oder überhaupt von allen Compilern akzeptiert – wird. Ausgliederung von aufwendigeren Worten in eigene Funktionen ist erschwert durch den Umstand, daá wichtige Systemvariablen lokal zur Haupt-Funktion sind. Jegliche Änderung erfordert das neue Übersetzen praktisch des gesamten Systems. Gründe genug, diese Variante nicht weiter in Betracht zu ziehen.