×

使用异常、多态性和高阶函数消除虚假错误消息。 (英语) Zbl 0946.68027号

摘要:许多语言处理器在检测到错误后都会做出假设。如果假设无效,编译器可能会发出一系列错误消息,其中只有第一个表示输入中的真正错误;后面的消息是原始错误的副作用。要消除这种虚假错误消息,需要跟踪编译器中由于先前检测到的错误而不可用的值。示例包括符号表条目、类型和中间代码。本文介绍了跟踪不可用值和避免级联错误消息的规程。该规程扩展了错误单体M.斯皮维[科学计算程序.14,第1期,25-42(1990;Zbl 0699.68022号)]和P.Wadler先生[函数编程的本质。摘自《第19届美国计算机学会汇编汇编汇编汇编》,《程序设计语言原理交响曲》,1-14,美国计算机学会,纽约(1992)]。扩展被正式表示为用标准ML编写的类型构造函数和组合子。类型构造函数区分由于以前检测到的错误而不可用的中间结果。组合子将假设所有中间结果都可用的普通函数转换为默默传播中间结果不可用的函数。在ML实现中,ML类型规则强制执行规程;如果编译器编写器没有考虑可能不可用的值,则编译器的源代码不会进行类型检查。这门学科的成本可以忽略不计。在实验编译器中,该规程最多增加5-10%的总编译时间,而在没有检测到错误的常见情况下,增加约1%。

MSC公司:

68N20型 编译与解释理论

软件:

无网
PDF格式BibTeX公司 XML格式引用
全文: 内政部 链接