Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 需要一些关于创建解释器的指导吗_C_Memory_Interpreter_Jit - Fatal编程技术网

C 需要一些关于创建解释器的指导吗

C 需要一些关于创建解释器的指导吗,c,memory,interpreter,jit,C,Memory,Interpreter,Jit,我正在尝试创建一个解释器 我的想法是解析代码,将其转换为操作码(非常类似于 字节码、msil等),现在创建一个解释器执行器和一个JIT引擎 我目前正在设计内存管理器和类型系统 我创建了一个简单的内存管理器,它支持一些基本数据类型(整数、浮点、字符、字符串、数组)。我可以成功地分配内存并使用它。但我对此并不满意。我想创建一个垃圾收集器,使其面向对象,并尽可能地扩展它 我正在寻找建议、网站和书籍,以便了解更多关于这一主题的信息。我想请您看看昆西(Quincy)——一个由阿尔·史蒂文斯(Al Stev

我正在尝试创建一个解释器

我的想法是解析代码,将其转换为操作码(非常类似于 字节码、msil等),现在创建一个解释器执行器和一个JIT引擎

我目前正在设计内存管理器和类型系统

我创建了一个简单的内存管理器,它支持一些基本数据类型(整数、浮点、字符、字符串、数组)。我可以成功地分配内存并使用它。但我对此并不满意。我想创建一个垃圾收集器,使其面向对象,并尽可能地扩展它


我正在寻找建议、网站和书籍,以便了解更多关于这一主题的信息。

我想请您看看昆西(Quincy)——一个由阿尔·史蒂文斯(Al Stevens)设计的C解释器,配有IDE和调试器。他的文章出现在90年代的DDJ上。你可以。

建议:保持小一点。意思是不要尝试做成熟译员所做的一切。创建一个完整的解释器需要大量的工作。相反,把注意力集中在一些你感兴趣的小话题上。看起来您对内存管理很感兴趣,所以可以使用堆栈、堆和符号表

参考资料:

  • 有一个关于堆栈溢出的问题

这听起来很有趣,但有点广泛。通用编译器教科书以及来自流行解释器的示例代码将很有帮助。我想不出任何具体的问题。这个问题与编程有什么关系?@Philip设计技术、软件模式、算法。。我相信它们与@Noufal Ibrahim的编程有关,是的,它的范围很广,但我不想写任何用于制作的东西。。仅用于教育目的!非常感谢你的回答!您用什么语言编写解释器?看看OCaml字节码解释器、GC和内存管理器——这是一个最先进的实现,但仍然是一个非常简单的实现,用干净易读的C编写。