paperbot · PL 论文追踪

全部论文 待读 收藏

P2 How to design co-programs

如何设计共程序(co-programs)
JFP vol.312021匹配度 1/10 · 该论文讨论的是函数式编程入门教学中如何通过输出数据结构引导学生写出结构余递归(corecursive)程序,属于程序设计教育/教学法范畴,与用户关注的静态分析、LLM/Agent 与 PL 交叉、浮点程序分析、贝叶斯程序分析等方向几乎没有交集。引用 7 inbox
JEREMY GIBBONS
crossref: 2026-09-10

AI 速览

一句话:主张程序设计教学除输入数据结构外也应考虑输出数据结构,从而引导学生写出结构余递归程序。

程序结构跟随数据结构是入门编程的关键经验,Felleisen 等人的《How to Design Programs》也以此作为核心教学信息。但该教材主要利用输入数据的结构来指导设计,通常得到结构递归程序。本文提出,初学者还应学习考察输出数据的结构,并据此设计结构余递归(co-recursive)程序。作者通过教学论证与教材视角的比较,指出输出导向的设计配方能扩展程序设计的教学范围;摘要未报告具体实验或工具评估。

问题
现有入门程序设计教学主要用输入数据结构指导设计,忽略输出数据结构对设计的引导作用,导致学生难以自然形成结构余递归程序。
方法
通过教学论述与教材对比,提出将输出数据结构纳入设计配方,引导学生从输出结构出发设计余递归程序。
评估
摘要未描述实证或系统评估,主要以教学论证和教材反思提出主张。
原文摘要(Abstract)

Abstract The observation that program structure follows data structure is a key lesson in introductory programming: good hints for possible program designs can be found by considering the structure of the data concerned. In particular, this lesson is a core message of the influential textbook “How to Design Programs” by Felleisen, Findler, Flatt, and Krishnamurthi. However, that book discusses using only the structure of input data for guiding program design, typically leading towards structurally recursive programs. We argue that novice programmers should also be taught to consider the structure of output data, leading them also towards structurally corecursive programs.

链接与引用

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

BibTeX
@article{paperbot1226,
  title = {How to design co-programs},
  author = {JEREMY GIBBONS},
  journal = {Journal of Functional Programming},
  volume = {31},
  year = {2021},
  doi = {10.1017/s0956796821000113}
}