【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

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

关注

评论

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

从一次排查ES线上问题得出的总结——熔断机制

罗琦

elasticsearch 源码分析 circuit break 熔断

如果你觉得学习 Git 很枯燥,那是因为你还没玩过这款游戏!

GitHubDaily

git GitHub 编程 程序员 开发者工具

松哥手把手带你入门 Spring Security,别再问密码怎么解密了

江南一点雨

Java spring Spring Boot spring security

MySQL常用权限说明

一个有志气的DB

MySQL 用户研究

让你高效工作与学习的免费工具(1)

石云升

高效工作 效率工具 工具

《后浪》产品经理篇(恶搞版)

静陌

产品经理 后浪

设计模式之观察者模式

设计模式

sync.Map源码分析

陈思敏捷

源码 源码分析 Go 语言

Mac 使用笔记

FeiLong

谈谈控制感(5):怎么破控制感损失的局

史方远

职场 心理 成长

Xtrabackup的安装使用

一个有志气的DB

MySQL 工具 数据的分片和备份

游戏夜读 | Scikit-learn迎来0.21之前

game1night

Java新技术:封闭类

X.F

Java 架构 编程语言

对于程序员,那些既陌生又熟悉的计算机硬件

架构师修行之路

微软 编程 程序员 cpu 架构师

Python 核心技术与进阶 list & tuple

Bonaparte

如何在一台计算机上安装多个 JDK 版本

mghio

Java jdk 版本管理工具

Harbor 2.0的飞跃: OCI 兼容的工件仓库

亨利笔记

Kubernetes 容器 k8s Harbor 镜像

OpenResty部署配置和日志切割

wong

nginx centos openresty

一文带你看清HTTP所有概念

cxuan

HTTP

Rust 与区块链四月月刊

Aimee 阿敏

区块链 rust 加密货币 crypto

面试官:小伙子,听说你看过ThreadLocal源码?(万字图文深度解析ThreadLocal)

一枝花算不算浪漫

源码 并发编程 ThreadLocal

松哥手把手教你定制 Spring Security 中的表单登录

江南一点雨

Java spring Spring Boot spring security

尽管HTTP/3已经来了,HTTP/2也得了解啊

清远

网络协议 HTTP

回“疫”录(18):536公里的路

小天同学

疫情 回忆录 现实纪录 纪实 返程

严选合伙人(二)

Neco.W

创业 重新理解创业 合伙人

业余前端的日常

顿晓

学习 大前端 日常 专家 知识体系

聊聊我对技术一些性质的认识

Tanzv

技术 思考 新人

Redis稳定性实践

心平气和

redis 缓存 稳定性

更聪明地学习,而不是苦读——《如何高效学习》

mzlogin

学习

《零基础学 Java》 FAQ 之 7-Java 中的内存是怎么分配的

臧萌

Java JVM

Android | Tangram动态页面之路(二)介绍

哈利迪

android

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