【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

Scheme 语言即将被一分为二

  • 2009-08-23
  • 本文字数:1559 字

    阅读完需:约 5 分钟

Scheme 指导委员会(The Scheme Steering Committee)提议将Scheme 语言一分为二,并且将其名称暂定为小型(Small)Scheme 和大型(Large)Scheme。

Guy L. Steele Gerald Jay Sussman 于 70 年代发明的 Scheme,最初作为 Lisp 的方言,到今天已经历经了数次修订。 IEEE 1178-1190 Standard 正式定义了 Scheme 的标准,但现实中使用的标准却是 Revisedn Report on the Algorithmic Language Scheme(简称为 RnRS)。其最新版本 R6RS 是 2007 年通过的。考虑到“编程语言就像鲨鱼一样,不动则亡”,Scheme 指导委员会决定继续推动该语言的发展。

委员会提到的主要问题在于,Scheme 并不是真正意义上的编程语言,而是

一系列方言的汇集。它们通过一组共同的特性彼此关联,这些特性包括:词法空间、动态类型、list 结构、高阶函数、尾递归、垃圾回收、宏以及(一定程度上的)基于词汇语法的 S- 表达式。

的确如此,Wikipedia 列出了大量的 Scheme 语言实现: Bigloo Chez Scheme Chicken Gambit Gauche Guile Ikarus JScheme Kawa Larceny MIT/GNU Scheme Mosh PLT Scheme Pvts RScheme Scheme 48 SCM SISC Stalin STk STklos TinyScheme Ypsilon 。根据 Scheme 委员会的报告内容,这些方言的问题在于:

如果程序员需要使用“Scheme”编写一段关键的程序,他就必然受制于某些特定的 Scheme 实现:Bigloo,say(以及其模块语言、异常系统、S- 表达式文法等等),PLT Scheme(以及其模块语言等等),或者其他任何一种可胜任于工程的实现。不过,这意味着应用程序无法跨多个实现执行。更重要的是,和代码模块,比如 URL 解析器,网络协议栈,正则表达式实现等等,都被限制在某一个特定的实现,Scheme 程序员通常要从头开始做一件事情,而不能从其他人的劳动成果中获得益处。

最终导致的结果是,

后来的程序员无法站在以前程序员的肩膀上,而是制造了大量无用的片段和重复。Scheme 程序员之间要彼此重复。

委员会考虑到了 Scheme 语言的分裂,来自于各方面的关注者: 教育工作者,语言工作者,程序员,程序库实现者以及 Scheme 的粉丝。为了解决这个问题,委员会提出了两种独立但彼此兼容的语言。

小型 Scheme

  • 关注者:教育工作者,非正式的库实现者,研究人员,嵌入式语言和“50-page” 语言纯粹主义者
  • 考虑将“IEEE/R5RS 更新到最新状态”
  • ~ 90% 需要等待最终批准

大型 Scheme

  1. 关注者:程序员,程序库实现者
  2. 考虑“优化 R6RS”
  3. ~ 75% 需要等待最终批准

指导委员会并不打算标准化语言,而是

确保Scheme 社区能够继续发展这门语言——它的定义,成长,扩展,标准化和实现。我们的机制是将权利赋予不同的委员会,由他们执行实际的工作,然后由我们收集并认可他们的工作。

两个工作组已经开始起草文档 Small Scheme Group Large Scheme Group 。但是两个工作组至今还没有会员。小型 Scheme 的目的描述如下:

该小型语言包含了 Scheme 的基础特性。它的目标用途包含教育,程序设计语言研究,小型嵌入式系统,嵌入式脚本语言(其适合于在语义级别以及 / 或者实现级别使用某种轻量级语言)。

大型 Scheme 的草案则描述如下,

该大型语言需要解决主流软件开发中的实际问题…

由第二工作组开发的语言必须支持宏、模块和库。

一旦确定了包含哪些特性以后,第二工作组应该考虑 R6RS 包含的所有 Scheme 特性以及对这些特性的评价。

第二工作组也要考虑加入其他新特性是否可行,比如支持网络、线程、国际化,外部功能接口,等等。第二工作组也在积极地推荐新的工作组来负责其他新特性。这些特性都是倍受期待的,但是如果全部由第二工作组负责的话有可能影响他们的主要任务。

两个工作组正在协调彼此的工作,小型 Scheme 的最终提案将会在 18 个月后完成,大型 Scheme 的会在 25 个月后完成。语言的名字届时会最终确定。

查看英文原文 The Scheme Language Is to Be Split in Two

2009-08-23 18:019769
用户头像

发布了 53 篇内容, 共 12.6 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

Intel首次公布11代酷睿桌面处理器性能:8核i9斩落锐龙12核

科技新消息

自动驾驶汽车的发展史

anyRTC开发者

人工智能 自动驾驶 AI

量化交易系统开发

威掂l8929545452

区块链 系统开发 量化交易系统 交易所

Java Optimizing 读书笔记(一)

绝影-大数据

微信视频号的排版,怎样才好看 | 视频号 28 天 (07)

赵新龙

28天写作

OpenYurt v0.3.0 重磅发布:全面提升边缘场景下应用部署效率

阿里巴巴云原生

阿里巴巴 开源 容器 云原生 k8s

流行的后台管理系统模板总结

老魚

程序员 建站 web全栈

GaussDB(DWS)性能调优系列实现篇六:十八般武艺Plan hint运用

华为云开发者联盟

数据库 性能优化 sql GaussDB 算子

【HTML】已经废弃的align(图像对齐方式)

德育处主任

html html5 Web html/css 28天写作

BI项目失败?看看是不是缺少了这几项闭环!

博文视点Broadview

数据库表数据量大读写缓慢如何优化(2)「查询分离」

我爱娃哈哈😍

数据库 大数据 架构 后端 优化

开发更便捷 阿里云推出一站式应用研发平台EMAS 2.0

移动研发平台EMAS

阿里云 Serverless AI 低代码 移动研发平台

一个奇怪的 Elasticsearch 节点

escray

elasticsearch elastic 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

TypeScript 渐进迁移指南

LeanCloud

JavaScript typescript nodejs

开发老人笔记:Git 常用命令清单

华为云开发者联盟

git 代码 bug

红牛交易所app系统开发

威掂l8929545452

区块链 系统开发 APP开发 红牛交易所

关于“面试造火箭,入职拧螺丝” Jan 14, 2021

王泰

28天写作

浅析Mysql数据库优化设计规范的“度”

三石

MySQL 28天写作

需求条目化:一个让用户故事有效落地的套路

华为云开发者联盟

敏捷 项目 需求条目化

区块链轻节点:“身”轻,责任重

华为云开发者联盟

区块链 数据 数据隐私 轻节点

Redis 学习笔记 03:字典

架构精进之路

redis 七日更 28天写作

项目管理系列(2)-如何写好一份报告

Ian哥

项目管理 28天写作

HDFS SHELL详解(7)

罗小龙

hadoop 28天写作 hdfs shell

量化对冲搬砖套利交易APP开发|量化对冲搬砖套利交易系统软件开发

系统开发

读《快手要上市了》,一起了解快手

李忠良

开源 技术 28天写作

两种常见的减少信息不对称的办法

熊斌

学习 成长 28天写作

碎碎念之「被误会的佛系,被遗忘的疯魔」

Justin

碎碎念 心灵鸡汤 28天写作 佛教

百度智能小程序打造购票观影一站式体验,影视宣发新玩法助力行业复苏

DT极客

解决Windows2012 R2下安装PostgreSQL报错的问题

PostgreSQLChina

数据库 postgresql 开源

避免短信接口被黑客刷取的方法

香芋味的猫丶

短信防刷 接口安全 短信验证码 短信防轰炸 短信防火墙

区块链双仓合约交易所系统开发

Scheme语言即将被一分为二_编程语言_Abel Avram_InfoQ精选文章