2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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:0110156
用户头像

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

关注

评论

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

devops|中小公司效率为王,没必要度量

laofo

DevOps 研发效能 工程效率 效能度量 研发效能度量

终于可以彻底告别手写正则表达式了

Java你猿哥

Java ssm 表达式 GPT

设计模式的故事之三:责任链模式

Java你猿哥

Java 设计 ssm 责任链模式 责任链

人脸活体检测初识

六月的雨在InfoQ

人脸活体检测 三周年连更 人脸数据库 人脸辨识度

阿里技术官神作!大厂亿级流量性能调优学习手册,堪称保姆级教学

Java 性能优化 性能调优

华为云文字识别OCR-助力企业办公智能化不断发展

轶天下事

华为云云速建站,助力企业搭建网站省心又省力

YG科技

华为云搜索服务CSS,助力企业挖掘数据价值

轶天下事

华为云,用科技开启智慧化生活

轶天下事

本铯智能科技是家怎样的共享电动车厂家?

共享电单车厂家

共享电动车厂家 共享电单车厂商 本铯智能科技 本铯智能电动车厂家

裸辞底气!GitHub飙升“java面试笔记2023” 了解下八股文天花板

Java你猿哥

Java 面试 Spring Boot ssm 八股文

MD5 到底算不算一种加密算法?

架构精进之路

算法 后端 加密 md5 三周年连更

离散信源 R(D)计算及限失真信源编码定理

timerring

信息 信息论

华为云智能云接入ICA,让世界距离更近

YG科技

华为云医疗智能体,助力医疗健康加速智能化

YG科技

一文详解多模态认知智能

华为云开发者联盟

人工智能 华为云 AIGC 华为云开发者联盟 企业号 4 月 PK 榜

区块链基础设施 NFTScan 新增支持 Aptos 网络

NFT Research

区块链+ NFT

HashData认证云原生数据仓库管理工程师培训报名开启!

酷克数据HashData

AREX 流量回放实践分享

AREX 中文社区

自动化测试 回归测试 流量回放

爆肝Java九大核心专题,666页内容,我收割了5个大厂offer

Java你猿哥

Java MySQL JVM 消息队列

mac上好用的效率软件:Alfred 5 激活版

真大的脸盆

Mac Mac 软件 效率软件

Spring Boot 整合 Redis 基于 Stream 消息队列 实现异步秒杀下单

Java你猿哥

Java redis stream ssm 消息队列

逆天!腾讯大神纯手撸“架构师速成手册”Github狂获4.5kstar

Java你猿哥

Java 架构 ssm 架构设计 架构师

亿级日活业务稳如磐石,华为云CodeArts PerfTest发布

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

使用Pinia:让Vue状态管理更简单

格斗家不爱在外太空沉思

Pinia 三周年连更

华为云CDN助力企业网速腾飞!

轶天下事

算法题每日一练: 青蛙跳台阶

知心宝贝

数据结构 算法 前端 后端 三周年连更

从此脱离CRUD!Github热榜第三架构师速成手册成功颠覆了我的认知

Java你猿哥

架构 ssm 架构设计 架构师 微服务实战

阿里限量的性能调优+微服务+高并发设计,真的太香了!

Java 微服务架构 系统设计 性能调优 亿级并发

为什么选择华为云CDN?这些案例告诉你

轶天下事

openEuler NFS+协议全新发布:实现NAS存储性能与可靠性倍增

openEuler

Linux 操作系统 存储 openEuler

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