javascript - 用 javascript 编写的 C 解释器

标签 javascript c gwt interpreter

有没有用 javascript 或 java 写的 C 解释器?

我不需要完整的解释器,但我需要能够逐步执行程序并能够在 Web 界面中查看变量的值、堆栈......所有这些。

这个想法是通过向他们展示程序的逐步执行来帮助 C 初学者。 我们正在使用 GWT 构建界面,因此如果 Java 中存在某些内容,我们应该能够使用它。

我可以修改它以满足我的需要,但如果我可以避免编写解析器/抽象语法树遍历器/堆栈操作......那就太好了。


编辑:

明确地说,我不想模拟完整的 C,因为有些程序可能非常棘手。

我所说的步骤是指基本操作,例如:表达式求值、矫揉造作、函数调用。

我要模拟的 C 将包含:变量、for、while、函数、数组、指针、数学函数。 没有 goto、字符串函数、ctypes.h、setjmp.h...(至少现在是这样)。

这是一个原型(prototype):http://www.di.ens.fr/~fevrier/war/simu.html

在这个例子中,我们手动将 C 代码转换为 javascript 表示,但它是有限的(表达式如 a == 2 || a = 1 不被处理)并且仅限于手动程序转换。

我们在远程服务器上有一个 C 编译器,因此我们可以检查代码是否正确(并且没有任何未定义的行为)。解析/AST 构造也可以远程完成(因此任何语言),但 AST 遍历需要在 javascript 中才能在客户端运行。

最佳答案

有一个 C grammar 可用于 antlr您可以使用它来生成 Java 中的 C 解析器,也可能是 JavaScript。

关于javascript - 用 javascript 编写的 C 解释器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6142193/

相关文章:

javascript - 将 Javascript 值解析为 Django View

javascript - jQuery 函数 : why is the completion of the first event delayed until a second event finishes?

c - 如何收集C中的处理时间?

eclipse - 使用 TOMCAT 服务器在 Eclipse 中进行 GWT 开发

java - GWT:从 HTML 中查找 Java 源代码

javascript - Firebase/Google 登录认证 : profile photo not retrieved on gmail business account

C 编程 - Stat 系统调用 - 错误

c - ANSI C 中的字符串

java - 如何将依赖样式名称与 CssResource 混淆一起使用?

javascript - Angular Material 中具有相同内容的选项卡