PGo:从Modular PlusCal规格到Go程序的安全编译
PGo 是一个开源项目,旨在将 Modular PlusCal 规格转换为 Go 程序。该项目主要使用 Scala 语言进行开发,同时也涉及到 Go 语言。
项目基础介绍
PGo 是一个源到源的编译器,它接受 Modular PlusCal 规格作为输入,并生成等效的 Go 程序。Modular PlusCal 是 PlusCal 语言的一个超集,用于指定和建模并发系统。这个项目不仅包括编译器本身,还包括支持库以及使用 PGo 编译器构建的示例系统。
核心功能
项目的核心功能是提供一种方法,将 PlusCal/TLA+ 规范与规范的实际 Go 语言实现联系起来。具体来说,PGo 的主要功能包括:
- 将 Modular PlusCal 规格转换为 PlusCal 代码,以便使用 TLC 模型检查器进行系统属性检查。
- 生成语义等效的 Go 程序,以便在真实环境中实现和测试规范。
最近更新的功能
根据项目的最新动态,最近更新的功能包括:
- 对编译器进行了优化,以支持所有 PlusCal 控制流构造。
- 扩展了对 TLC 支持的价值级 TLA+ 的编译。
- 修正了若干问题并改进了错误处理机制。
PGo 项目目前处于积极开发状态,开发团队正在不断推进项目的进展,并通过处理 pull requests 和 issues 来丰富其功能和改善用户体验。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考