写点什么

.NET 下类似 Smalltalk 的语言 SABLE

  • 2009-04-24
  • 本文字数:724 字

    阅读完需:约 2 分钟

Kuler 软件工具的创始人 Keith Robertson 在.NET 平台下编写了一门类似 Smalltalk 的语言,名为 SABLE 。该语言具有 Smalltalk 语法提供的高质量,同时又能运行在 CLR 上。

SABLE 是一门通用而又必要的面向对象编程语言,它的语法与 Smalltalk 相似,但其对象与部署模型则与.NET 关系更为紧密。SABLE 程序运行在 ECMA CLR 上。SABLE 有望成为 Web 开发中的 Smalltalk,它保留了 Smalltalk 语言的可读性与类型安全,但类型信息却包含在程序集中,在进行 Web 应用程序部署时,可以输出短小的二进制文件。

Robertson 声称,SABLE 的最终目的是:

创建一个可变的、灵活的 Smalltalk 风格的开发环境,而一旦程序编写完成,应用程序则会被编译为普通的程序集……无需动态运行时,它却能给你深刻的动态编程体验。

SABLE 的其中一个好处就是 Smalltalk 的消息传递语法,它允许组成消息链或级联消息。该语言会在编译时执行类型检查,甚至支持消息链的类型转换,而不仅仅是:

<p>|typeDecl| := nodeStack pop.</p><p>nodeStack peek ~ {BLOCK_NODE} argumentNodes last~ {ARGUMENT_NODE} typeDeclNode: typeDecl.</p>该语言能够进行双向类型推断,从表达式类型中解析出变量或方法的类型(对外推断),或者从期望的类型中解析出表达式的类型(对内推断)。

SABLE 使用方法、类和程序集的结构定义,但不同于 Smalltalk 的是,它的元数据仍然保留在程序集中。宏则总是内联方法。关于宏的一个有趣用法是扩充已有的封装好的库。

SABLE 并没有预留关键字,但包含了许多预先定义的标识符。其余的重要特性包括:类扩展,契约,以及完全支持 CLR 的特性如泛型、嵌套类型、元数据特性等。

一个基本的“Hello World”例子如下所示:

有用的链接包括: SABLE 编译器(ZIP), SABLE 语言的网站

2009-04-24 08:521565
用户头像

发布了 109 篇内容, 共 44.8 次阅读, 收获喜欢 14 次。

关注

评论

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

风口之下,音视频应用出海的三大机遇

融云 RongCloud

音视频 通信 出海

如何处理工作与生活之间的冲突?

石云升

28天写作 职场经验 12月日更

焱融 YRCloudFile 连获两项重量级认证,展现强劲存储实力!

焱融科技

云计算 分布式 云原生 高性能 文件存储

搭积木一样实现语音社交软件开发

融云 RongCloud

开发者 通信云 语音社交

网络安全之SQL注入深入分析

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 SQL注入

视镜:华为云媒体质量管理最新实践

华为云开发者联盟

音视频 华为云 媒体质量 视镜

清空数组的几个方式

CRMEB

7个连环问揭开java多线程背后的弯弯绕

华为云开发者联盟

Java 多线程 工作内存 主内存

为什么说泛娱乐出海离不开这家公司

融云 RongCloud

音视频 通信云 社交 泛娱乐 出海

前端领域的数据状态统一管理机制

鲸品堂

大前端

漏洞检测方法如何选?详解源代码与二进制SCA检测原理

华为云开发者联盟

安全 漏洞 软件成分分析 源代码SCA检测 二进制SCA检测

【架构实战营】模块六

衣谷

架构实战营

愿当传播通信技术火种的普罗米修斯

融云 RongCloud

通信云 技术大会

低代码平台是伪需求?不好意思,你的同行已经靠它完成转型升级了!

J2PaaS低代码平台

低代码 低代码开发 低代码开发平台 低代码平台

如何对Android 11进行网络状态监听

Changing Lin

12月日更

华为云数据库GaussDB(for Influx)揭秘第二期:解密GaussDB(for Influx)的数据压缩

华为云开发者联盟

数据库 时序数据库 GaussDB(for Influx) 时序数据 数据压缩

实用机器学习笔记六:数据清理

打工人!

机器学习 算法 学习笔记 12月日更 实用机器学习

架构实战营:模块一作业

Geek_93ffb0

「架构实战营」

安全第二话

张老蔫

28天写作

基于RPA的自动化优先,正在成为广大组织的主流管理思维

王吉伟频道

RPA 机器人流程自动化 业务流程管理 自动化优先 业务流程自动化

基于云的技术架构设计实践 - 第3篇

hackstoic

签约计划第二季 业务安全

架构训练营-模块一作业

zhongwy

架构实战营

TypeScript 之模板字面量类型

冴羽

JavaScript typescript 翻译 大前端

直播:开发者如何抵达元宇宙

融云 RongCloud

开发者 元宇宙

复杂场景下,通信云服务商如何赋能开发者

融云 RongCloud

音视频 通信云 语音社交

选课排课软件原生开发选课排课小程序模式源码开发

风行无疆

如何建成有效的前端效能度量体系

benyasin

大前端 研发效能 研发度量 研发提效

青藤:一招制敌!微隔离,让勒索软件不再横行

青藤云安全

想在 KubeSphere 中进行自定义监控?来瞧瞧这

API7.ai 技术团队

云原生 API网关 监控工具 KubeSphere Apache APISIX

6.《重学JAVA》--数据类型

杨鹏Geek

Java 25 周年 28天写作 12月日更

浪潮云跻身中国政务大数据管理平台市场领导者位置

云计算 云计算运维

.NET下类似Smalltalk的语言SABLE_.NET_Abel Avram_InfoQ精选文章