paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Forge: A Tool and Language for Teaching Formal Methods

Forge:一种面向形式化方法教学的渐进式工具与语言
OOPSLA 8(OOPSLA1)2024匹配度 2/10 · 该论文关注形式化方法教学工具与语言设计,属于形式化方法与PL教育方向,但未涉及LLM/Agent与静态分析/形式化验证的交叉,也不涉及浮点或贝叶斯程序分析,与用户核心追的问题匹配度低。引用 8 inbox
Tim Nelson, Ben Greenman, Siddhartha Prasad, Tristan Dyer, Ethan Bove, Qianfan Chen, Charles Cutting, Thomas Del Vecchio, Sidney LeVine, Julianne Rudner, Ben Ryjikov, Alexander Varga, Andrew Wagner, Luke West, Shriram Krishnamurthi
crossref: 2026-09-10

AI 速览

一句话:提出 Forge:基于 Alloy 的渐进式形式化方法教学工具与语言,支持可视化与测试。

形式化方法教学面临学生难以从编程过渡到形式建模、现有工具表达力跃迁过陡等问题。论文提出 Forge,一个基于 Alloy 语言与分析工具、并总结十余年 Alloy 教学经验改进而来的教学工具。Forge 提供表达能力逐步增强的语言序列,让学生渐进学习;支持输出结果的自定义可视化,使学生可借用领域特定表示;还提供多种测试功能以衔接编程与形式建模。作者阐述这些设计动机与方案,并基于多年课堂使用给出实质性评估。

问题
如何降低形式化方法教学门槛,并让学生从编程平缓过渡到形式建模。
方法
Forge 基于 Alloy,提供表达能力逐步增强的语言序列、自定义可视化输出以及多种测试功能,以支持渐进式形式化方法教学。
评估
基于多年课堂使用开展实质性评估,讨论其在教学中的效果与经验。
原文摘要(Abstract)

This paper presents the design of Forge , a tool for teaching formal methods gradually. Forge is based on the widely-used Alloy language and analysis tool, but contains numerous improvements based on more than a decade of experience teaching Alloy to students. Although our focus has been on the classroom, many of the ideas in Forge likely also apply to training in industry. Forge offers a progression of languages that improve the learning experience by only gradually increasing in expressive power. Forge supports custom visualization of its outputs, enabling the use of widely-understood domain-specific representations. Finally, Forge provides a variety of testing features to ease the transition from programming to formal modeling. We present the motivation for and design of these aspects of Forge, and then provide a substantial evaluation based on multiple years of classroom use.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot2532,
  title = {Forge: A Tool and Language for Teaching Formal Methods},
  author = {Tim Nelson and Ben Greenman and Siddhartha Prasad and Tristan Dyer and Ethan Bove and Qianfan Chen and Charles Cutting and Thomas Del Vecchio and Sidney LeVine and Julianne Rudner and Ben Ryjikov and Alexander Varga and Andrew Wagner and Luke West and Shriram Krishnamurthi},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {8},
  number = {OOPSLA1},
  year = {2024},
  doi = {10.1145/3649833}
}