![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
单元测试工具
文章平均质量分 82
imu2008
这个作者很懒,什么都没留下…
展开
-
C语言解释器Java版-3-内存值管理
3 内存值管理本文描述的内存值管理主要是指:解释器的内存值如何表示,如何读取和存放。事实上,如果用值的类型去存储内存值,是很难做到一个统一内存值模型的。 复杂的方法如JCUTE、CRest的实现(符合执行框架,和解释器有类似之处),将内存值模型表示为一个结构体或者类,每一个值实例只在 结构体的一个域或者类中的一个成员变量有效,其他的均为冗余数据。这样做的问题是显而易见的,冗余数据太多,对每一个内存原创 2015-12-12 09:18:14 · 459 阅读 · 0 评论 -
C语言解释器Java版-0-内存模型
前提说明 由于工作原因,需要实现一个Java版的C语言解释器。在实现的过程中,遇到了很多问题、学到了很多东西,特将实现过程记录下来,备忘的同时,也供后来人学习参考。 在实现之前,已有的内容包括:前端AST、符号表系统和控制流程图。已有的内容我在后文的描述中不会过多说明,所以,看完本系列文章也无法保证读者一定能够按照步骤实现一个Java版的C语言解释器。但是对于一个想要了解解释器或编译器原创 2015-11-01 17:11:27 · 351 阅读 · 0 评论 -
C语言解释器Java版-1-内存分配
1 内存分配基本了解了内存模型后,接下来考虑在实现解释器时如何进行内存分配,即怎样将每个内存区进行数据分配和释放。 在进行具体内存分配前,需要定义输入接口:被解释的源程序 file.c 和入口函数 func,然后根据输入生成对应的AST、控制流程图和符号表。有了这些原始数据后,开始进行内存分配。1.1 全局数据分配这里的全局数据包括如下几类,每一类的分配都不尽相同。主要操作的内存区是代码段区和数据原创 2015-11-29 15:48:02 · 532 阅读 · 0 评论 -
C语言解释器Java版-4-内存值转化
4 内存值的转化 本节内存值的转化主要指的是:在实现java版c语言解释器时,将java数据值转化为c语言类型长度的字节数组值;将c语言类型长度的字节数组值转化为java数据值。 4.1 Java->C public class ConvertJavaData2CBytes { public static byte[] convertToBytes(short value, int原创 2016-02-04 15:29:15 · 499 阅读 · 0 评论