上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 79 下一页
摘要: Abstract 背景介绍: JS中有个名为binding layers的接口,可以将数据结构从js翻译为底层语言如c或者c++。明显,测试data representation层很重要,它对测试数据提出的要求是: 1. 需要语法语义有效 2. 要尽可能减少input space 本文提出了Favo 阅读全文
posted @ 2021-03-04 19:03 雪溯 阅读(406) 评论(0) 推荐(0) 编辑
摘要: Abstract 特点: 基于覆盖率,基于语法规则的fuzzing 目标: 自动生成精确的测试数据 面向程序: 如编译器等 论文主体将以一个面向教育的编译器为例展开解释 目前研究: 结合fuzzing和test-case reduction,比如delta-debugging的变体 关键技术bons 阅读全文
posted @ 2021-03-03 15:25 雪溯 阅读(156) 评论(0) 推荐(0) 编辑
摘要: First Example grammar Hello; r : 'hello' ID ; // match keyword hello followed by an identifier ID : [a-z]+ ; // match lower-case identifiers WS : [ \t 阅读全文
posted @ 2021-02-08 18:12 雪溯 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 15.1 确认编译结果 cbc --print-asm -fverbose-asm xx.cb可以看到汇编代码。gcc -S -o - xx.c也可以。 root@cf43f429204e:/# cbc --print-asm -fverbose-asm if_test.cb .file "if_t 阅读全文
posted @ 2021-02-07 16:56 雪溯 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 14.1 程序调用约定 C语言本身的语法特性是与平台无关的,但是具体实现语法特性本身,也就是编译往往会随着OS和CPU软硬件条件而有所不同。比如参数传递是入栈还是用寄存器,返回值的传递方法是用什么寄存器等。规定这些的就是程序调用约定calling convention。 Linux的调用约定在LSB 阅读全文
posted @ 2021-02-06 22:34 雪溯 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 12.2 x86系列的CPU历史 遵循同一指令集架构的CPU应该能够执行依据该指令集架构编译的程序 MMX指令用于整数并行处理,SSE用于浮点数并行处理 AMD先于Intel提出了x86系列的64位扩展,其指令集架构称为AMD64,之后Intel提出了自己的Intel64,AMD64和Intel64 阅读全文
posted @ 2021-02-06 20:24 雪溯 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 11.1 IR Cb使用的是树形IR。 cbc --dump-ir if_test.cb <<IR>> (if_test.cb:1) variables: functions: <<DefinedFunction>> (if_test.cb:2) name: main isPrivate: fals 阅读全文
posted @ 2021-02-06 18:25 雪溯 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 10.1 类型定义检查 主要解决: 包含void的数组,结构体,联合体 成员重复的结构,联合体 循环定义的结构,联合体-需要检查有没有引用闭环 class TypeChecker extends Visitor { private final TypeTable typeTable; private 阅读全文
posted @ 2021-02-06 17:29 雪溯 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 9.1 语义分析概要 本章目的 引用消解 类型名称消解: TypeRef->Type 类型定义检查:比如不能新建void的数组,void的成员结构体,直接将自身类型作为子成员的结构体等问题 表达式有效性检查: 比如1++ 静态类型检查,比如在结构体间进行了未定义的+操作,或者是将int类型的值直接赋 阅读全文
posted @ 2021-02-06 16:39 雪溯 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 8.1 表达式的抽象语法树 Literal Type表示类型的定义,如struct pr{int first; int second;},TypeRef则是类型的名称。struct pr; 定义TypeRef后,在类型定义之前就能编写用到了该类型的代码。 // #@@range/primary{ E 阅读全文
posted @ 2021-02-06 00:04 雪溯 阅读(247) 评论(0) 推荐(0) 编辑
上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 79 下一页