Forth ist die wohl einfachste Stackmaschine, mit der man arbeiten kann
(man muß ja nicht den ganzen ANSI-Standard implementieren). Da ist
nichts komplex, höchstens ungewohnt.
Was Du möchtest, ist dagegen extrem komplex: C wurde für "normale
Registerarchitekturen" geschrieben, aus C-artigem Code
Stackmaschinencode zu compilieren, ist ein gewaltiger Aufwand, viel
schwieriger als einen normalen C-Compiler zu schreiben. Wer würde sich
diesen Aufwand antun für die paar Stackprozessoren, die es gibt? Und
welchen Sinn hätte es, mit großem Aufwand aus C Stackcode zu
generieren, um diesen dann wieder mit Aufwand auf einem gewöhnlichen
Controller in einer emulierten Stackmaschine laufen zu lassen?
Eher könntest Du es mit Lisp versuchen, das ist ja ein bißchen wie
"Forth rückwärts" von der Syntax. Aber das wird Dir dann ja wohl auch
nicht gefallen.
Ein Forth-Interpreter/Compiler samt Stackmaschine braucht dagegen nur
ein paar hundert Byte und wird dann in sich selbst weitergeschrieben.
So einfach, so elegant, so schön. Saß neulich noch in einem Seminar
über Embedded-Software-Tests und dachte die meiste Zeit: "wie einfach
ist das doch dagegen mit Forth!". Man muß sich einfach nur einmal
darauf einlassen, daß Sprachen nicht prozedural (oder objektorientiert)
sein müssen, daß Variablen, Operatoren und Programme eigentlich alles
dasselbe sind und daß wir nur wieder lernen müssen, Programme so zu
schreiben, wie wir denken statt so, wie man es uns antrainiert hat.
Aber gegen die Macht der Gewohnheit kommt man mit Argumenten ja sowieso
nicht an ... )-: Nichts für ungut.
Also bleibt für Dich wohl nur so eine Minimal-Java-Maschine. Google
hilft Dir weiter.