重新整理一下思路。
假设我们的目标是在浏览器环境下以脚本解释方式运行Java代码。
那么显然就需要在浏览器上开发出一个Java语言的解释器,并由这个解释器负责解释执行。
那么接下来的开发方案就有两个,一个是基于原生的js语言,使用这个语言来完成这个解释器的所有工作。一个是使用gwt作为开发框架,在gwt的框架内使用Java语言来开发一个Java语言的解释器,然后gwt使用自己的内部编译器把Java程序编写的Java解释器,动态翻译成js语言版本的Java解释器,这样就可以在浏览器上直接使用这个成品了。
由于smalljava的第一语言就是Java,因此使用gwt来改写,心智上的负担是最小的,语言语法层次上是一致的,因此才可能在几天之内将这个版本开发出来。
目前smalljava已经有了两个语言的版本,一个是纯Java的版本,一个是使用gwt改写的版本,未来可能会提供纯js的版本。
在实现了Java解释器以后,下一步考虑开发python的解释器,在js上直接解释执行python语言。
网友评论