Bril:一种用于编译器教学的中间语言

2024-07-27

Bril是一种面向编译器教学的中间语言,它优先考虑易于上手、易于混合和匹配组件以及简单的语义。它采用JSON格式,并提供文本形式以方便阅读。Bril的设计特点包括:核心opcode包含print指令,强制A-normal form,以及可扩展性。尽管Bril在设计上存在一些缺陷,例如SSA的改造问题,但它在编译器教学中提供了实践经验,并拥有丰富的工具生态系统。

阅读更多
未分类 中间语言

Adrian Sampson:测试用例自动精简

2024-07-16

本文介绍了如何使用自动化工具 Shrinkray 对测试用例进行精简,以快速定位代码中的错误。作者以调试一个解释器 bug 为例,详细讲解了编写 Shrinkray 可用的“interestingness test”脚本的技巧和步骤,包括如何判断测试用例是否触发了 bug,如何避免误判,以及如何在需要时手动干预精简过程等。

阅读更多
未分类 代码调试