写点什么

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

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

关注

评论

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

《深度工作》学习笔记(完)

石云升

读书笔记 时间管理 专注 深度工作

熬得住,人生路

shengjk1

随笔杂谈

害怕

shengjk1

随笔杂谈

你看脸吗?

shengjk1

随笔杂谈

SpringBoot系列(三):SpringBoot特性_SpringApplication类(自定义Banner)

xcbeyond

Java 微服务 springboot Banner

DSN 主流项目调研 3——Orbit数据库的故事

AIbot

区块链 分布式存储 IPFS 分布式文件 Orbit

DSN 主流项目调研 2——Sia和SAFE Network

AIbot

区块链 分布式存储 分布式文件存储 Sia SAFENetwork

我国开启“逆袭战”,区块链的盛夏来了?

CECBC

云计算 区块链技术

手抖了

shengjk1

随笔杂谈

数据平台、大数据平台、数据中台……你确定能分得清吗?

华为云开发者联盟

大数据 数据中台 开发者 数据湖 数据

每个大火的“线上狼人杀”平台,都离不开这个新功能

ZEGO即构

游戏 RTC 社交

JAVA位运算

彭阿三

Java 位运算

一文搞懂Flink rocksdb中的数据恢复

shengjk1

大数据 flink源码

Django中的session的使用

BigYoung

django session Cookie

Django查看操作数据库的执行命令

BigYoung

数据库 django 操作

普通工程师简史

郭华

解析中美数字货币竞争战略 | 构建属于“人类命运共同体”的货币体系

CECBC

数字货币 人民币

流量明星翻车的“直播卖房”,为什么众盟做成了?

脑极体

《深度工作》学习笔记(6)

石云升

读书笔记 专注 深度工作

Cobra 命令自动补全指北

郭旭东

cobra Go 语言

浅析Python中的列表和元组

王坤祥

Python python升级

奋斗在一线大城市的年轻人的生活工作实录(工厂蓝领篇)

Learun

程序员 软件开发 故事 企业信息化 短片小说

关于微服务架构的一些思考

俊俊哥

微服务

低/零代码会让程序员失业吗?

代码制造者

程序员 低代码 零代码 信息化 编程开发

流媒体云时代的声与色,融云铺就的桥与路

脑极体

SpringBoot系列(二):如何灵活使用SpringBoot

xcbeyond

Java 微服务 springboot

易观CTO郭炜:如何构建企业级大数据Ad-hoc查询引擎

易观大数据

LeetCode题解:88. 合并两个有序数组,for循环合并数组+sort排序,JavaScript,详细注释

Lee Chen

大前端 LeetCode

网站域名备案怎么做?有哪些快速备案的方法?

姜奋斗

网站 备案 网站搭建 域名解析 网站平台

别让非理性思维毁了你的人生

看山

随笔杂谈 非理性 认知偏差 自控术

美丑平等

shengjk1

随笔杂谈

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