约翰·巴科斯函数式编程项目:从软件危机出发,凭图灵奖探索编程新风格

约翰·巴科斯函数式编程项目:从软件危机出发,凭图灵奖探索编程新风格 摘要约翰·巴科斯从1969年前开始探索应用型、函数式和函数级语言直至1991年退休。项目旨在保存研究幸存资料并解读欢迎提供评论、建议与捐赠资料。软件危机20世纪60年代末“软件危机”受热议计算机性能提升但编程项目问题多。1968年和1969年北约软件工程会议关注问题并探讨解决方案。约翰·巴科斯虽未参会但会议契合其简化编程愿望。他早期在速算编程和FORTRAN项目成功后参与Algol项目还研究过四色猜想。约1967 - 1969年他决定再解决编程问题提到想找真正高级编程方式函数式编程概念易想但完善困难。项目启动巴科斯独自研究几年泰德·科德短暂交流后合作未持续。1969年末迪内斯·比约纳与他合作解释相关理论并编写RedSys语言解释器。比约纳合作到1972年分道扬镳。巴科斯1972年发表研究报告介绍Red语言1973年完善语言层次结构。同年他多地演讲提出简单整体实体编程语言可降成本传统语言改进会增成本等主张还引入“冯·诺依曼瓶颈”。IBM帕特里夏·戈德堡回应认同部分观点但不认同摒弃显式存储和赋值运算符概念巴科斯重申研究语言框架的必要性。另一位助手研究管理层反应冷淡巴科斯仍坚持。1974年他希望开发Red语言优化解释器。吉姆·格雷把保罗·麦琼斯介绍给他麦琼斯曾为Snobol4和APL编写解释器与巴科斯合作完善语言探索实现思路后因语言变化和重点问题转至System R项目。期间一些大学研究人员基于巴科斯想法开展项目如克劳斯·伯克林发起归约机器设计工作久洛·A·马戈发起FFPM项目。图灵讲座约翰·巴科斯1977年获ACM图灵奖演讲提出替代传统语言的函数式编程语言FP、程序代数和应用型状态转换框架。FP有无点风格增强功能和简洁性还展示程序代数用于证明程序等价性。论文引发多人讨论达纳·斯科特和罗宾·米尔纳祝贺并指出技术问题艾兹格·迪科斯彻评论负面引发与巴科斯信件交流。截至2026年论文超2000次引用最初十年有几十篇论文应用或扩展其思想。完善代数体系1975年麦琼斯转项目后巴科斯独自工作。1978年7月约翰·海登·威廉姆斯加入两人改进程序代数。威廉姆斯是德国马克托伯多夫年度北约暑期学校讲师其讲座获好评。他人的实现斯科特·巴登的伯克利FP、阿奇·罗宾逊的伊利诺伊FP、爱德华多·S·比亚焦尼的FPC、安迪·巴伦西亚的斯坦福FP、克里斯托夫·德勒兹的oc - FP等均有不同实现方式。