重新整理一下思路。
假設我們的目標是在瀏覽器環境下以腳本解釋方式運行Java代碼。
那么顯然就需要在瀏覽器上開發出一個Java語言的解釋器,并由這個解釋器負責解釋執行。
那么接下來的開發方案就有兩個,一個是基于原生的js語言,使用這個語言來完成這個解釋器的所有工作。一個是使用gwt作為開發框架,在gwt的框架內使用Java語言來開發一個Java語言的解釋器,然后gwt使用自己的內部編譯器把Java程序編寫的Java解釋器,動態翻譯成js語言版本的Java解釋器,這樣就可以在瀏覽器上直接使用這個成品了。
由于smalljava的第一語言就是Java,因此使用gwt來改寫,心智上的負擔是最小的,語言語法層次上是一致的,因此才可能在幾天之內將這個版本開發出來。
目前smalljava已經有了兩個語言的版本,一個是純Java的版本,一個是使用gwt改寫的版本,未來可能會提供純js的版本。
在實現了Java解釋器以后,下一步考慮開發python的解釋器,在js上直接解釋執行python語言。