求用c或c++实现的JavaScript脚本解释器

时间:2022-12-07 17:10:04
求用c或c++实现的JavaScript脚本解释器:
解析js脚本,翻译为c代码执行,最终获得变量(及函数)的值。

相关资源或者一丁点的建议,都将非常感激!

不考虑使用com组件或者IHTMLDocument2接口的实现。

13 个解决方案

#1


不太懂,帮你顶一个

#2


monkey spider

#3


spider monkey

#4


Google的v8啊

#5


参考Chrome,Firefox等相关浏览器的源代码

#6


引用 5 楼 oyljerry 的回复:
参考Chrome,Firefox等相关浏览器的源代码

up

#7


mark 学习了 收藏

#8


引用楼主 ok1234567 的回复:
解析js脚本,翻译为c代码执行,最终获得变量(及函数)的值。

不考虑使用com组件或者IHTMLDocument2接口的实现。

实现C++代码还有可能性,毕竟JavaScript要面对DOM的,而DOM是以COM类的形式展现出来的,离开了DOM或COM,JavaScript还有什么用呢?

#9


有很多现成的开源库可用。
trace monkey就算了,分离出来不容易。

V8很独立,性能也很高,使用也算简单,就是个头有点大,至少会让你的软件体积增加1M左右。也许1M对于现代的电脑硬盘和内存来说不算什么,但是单单为了计算“12+54.5*3322”的值就增加1M的话,心里总觉得有些不爽。

网上还有一些个人版的解释引擎,比如dscript,功能不全,标准符合度也有些问题(通常都是JS语法一般支持,某些库和内置对象不支持,比如正则库、数学库等),但是个头小,性能不会低于微软的东东,有时间可以看看它们的实现源码,通常会使用LEX和YACC工具。对付普通的JS脚本应该没有问题。

如果需求不是太强烈,完全可以考虑不用JS,性能最好的脚本语言应该是LUA,很多大型游戏软件都在使用这种脚本引擎。

#10


是用于没有windows界面环境的服务器程序,进行DOM无关的JavaScript普通运行代码的解析
即:基于各种复杂运算(普通的运算操作,内置函数,自定义函数)后,变量值的变动结果

#11


留个名 帮高手顶起来啊

#12


谢谢各位高手的回复
感觉还是要花点时间弄弄SpierMonkey

#13


咱俩的想法一样,不过我是想要个C语言自己解释自己(文本格式)!
不过暂时不敢搞!!

词法分析到应该简单,真正的问题是每个函数的变量处理和函数与函数之间的嵌套问题!!!
(因为实现函数本身的话只要花点时间就能搞定吧!)

#1


不太懂,帮你顶一个

#2


monkey spider

#3


spider monkey

#4


Google的v8啊

#5


参考Chrome,Firefox等相关浏览器的源代码

#6


引用 5 楼 oyljerry 的回复:
参考Chrome,Firefox等相关浏览器的源代码

up

#7


mark 学习了 收藏

#8


引用楼主 ok1234567 的回复:
解析js脚本,翻译为c代码执行,最终获得变量(及函数)的值。

不考虑使用com组件或者IHTMLDocument2接口的实现。

实现C++代码还有可能性,毕竟JavaScript要面对DOM的,而DOM是以COM类的形式展现出来的,离开了DOM或COM,JavaScript还有什么用呢?

#9


有很多现成的开源库可用。
trace monkey就算了,分离出来不容易。

V8很独立,性能也很高,使用也算简单,就是个头有点大,至少会让你的软件体积增加1M左右。也许1M对于现代的电脑硬盘和内存来说不算什么,但是单单为了计算“12+54.5*3322”的值就增加1M的话,心里总觉得有些不爽。

网上还有一些个人版的解释引擎,比如dscript,功能不全,标准符合度也有些问题(通常都是JS语法一般支持,某些库和内置对象不支持,比如正则库、数学库等),但是个头小,性能不会低于微软的东东,有时间可以看看它们的实现源码,通常会使用LEX和YACC工具。对付普通的JS脚本应该没有问题。

如果需求不是太强烈,完全可以考虑不用JS,性能最好的脚本语言应该是LUA,很多大型游戏软件都在使用这种脚本引擎。

#10


是用于没有windows界面环境的服务器程序,进行DOM无关的JavaScript普通运行代码的解析
即:基于各种复杂运算(普通的运算操作,内置函数,自定义函数)后,变量值的变动结果

#11


留个名 帮高手顶起来啊

#12


谢谢各位高手的回复
感觉还是要花点时间弄弄SpierMonkey

#13


咱俩的想法一样,不过我是想要个C语言自己解释自己(文本格式)!
不过暂时不敢搞!!

词法分析到应该简单,真正的问题是每个函数的变量处理和函数与函数之间的嵌套问题!!!
(因为实现函数本身的话只要花点时间就能搞定吧!)