如何评价C语言形式化语义工作Clight ?
编程语言的形式语义一即合法程序及 其行为的数学规范。
现实编程语言的形式语义庞大且复杂。这就提出了验证这些语义的问题:我们如何确保它们正确捕最近很多小伙伴找我,说想要一些C语言的资料,然后我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「C语言专业入门到高级教程+工具包」,点个关注,全部无偿共享给大家!!!
评论区回复“888”,关注我之后私信回复“666”,即可拿走。
获预期的行为?即程序语义如何跨IR保留。
Xavier Leroy开发了形式化验证编译器CompCert ,
为此研究了C语言的一个大子集的形式语义,即Clight
Clight包括指针算术、结构和联合类型、C循环和结构化switch语询。Clight 是CompCert验
证编译器的源语言。Clight 的形式语义是一种大步操作语义9, 它观察终止和发散执行并生成输入/
输出事件的跟踪。使用了Coq证明助手将Clight的形式语义机机器证明。
对于高级程序员和编译器编写者来说,形式语义9为通常作为语言标准的非正式英语描述提供了更
精确的替代方案。在静态分析、模型检查9和程序证明等形式化方法的背景下,需要形式语义来验
证用于分析和推理程序的抽象解释和程序逻辑(例如公理语义)。编译器、类型检查器、静态分析
器和程序验证器9等编程I具的验证的先决条件更是需要所涉及语言本身的形式语义。