写点什么

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

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

关注

评论

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

优雅地停止Spring Boot应用

韩斌

分页问题-Offset-based Pagination和Cursor-based Pagination

诸葛小猿

分页 Offset-based Pagination Cursor-based Pagination

简单脚本监控SSL证书,并到期提醒续签

运维研习社

开源镜像仓库Harbor的镜像安全

运维研习社

Docker 安全 Harbor CI/CD

万绿丛中一点红——雷斯多夫效应

Justin

心理学 交互设计 28天写作 游戏设计

无人机蜂群

冠冠

这道 Hard 到底难在哪里?大概是难在考察的全是违反“人性直觉”的内容吧 ...

宫水三叶的刷题日记

面试 LeetCode 数据结构与算法

28天瞎写的第二百四十五天:怎么样开始练习冥想?

树上

冥想 28天写作 正念

我看JAVA 之 基本数据类型与封装类型

awen

Java 源码 基本数据类型

翻译:《实用的 Python 编程》02_07_Objects

codists

Python

Nginx中常见header配置及修改

运维研习社

nginx Linux

如何探索自己的职业价值观,让工作更有动力

一笑

28天写作

Linux常见IO分析工具

运维研习社

微信公众平台-渠道二维码开发

Geek_247dae

收音机焊接

aaaaa

产品迭代最有力的工具:每周产品讨论会

boshi

产品策略 七日更

Elasticsearch 相关度评分

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

(28DW-S8-Day7) 比特币原始文献略读

mtfelix

比特币 区块链 白皮书 28天写作 工作量证明

写给 Go 初学者的指北

Rayjun

Go 语言

云主机配置微信公众号后台全记录

小jack

攀爬天梯的手机厂商,能从LG的滑落中学到什么?

脑极体

从萧何进入咸阳丞相府到数字化时代的决策

数列科技杨德华

28天写作

LiteOS:SpinLock自旋锁及LockDep死锁检测

华为云开发者联盟

死锁 LiteOS 自旋锁 SpinLock LockDep

第五周作业:用例流程图

克比

【LeetCode】猜字谜Java题解

Albert

算法 LeetCode 28天写作 2月春节不断更

前端170面试题+答案学习整理(良心制作)

我是哪吒

程序员 面试 大前端 28天写作 2月春节不断更

智能客服+智能助手,这波“数字员工”的业务能力太强了!

华为云开发者联盟

华为 AI 数字 智能客服 智能助手

分布式应用监控与链路追踪:SkyWalking

xcbeyond

微服务 监控 Skywalking 调用链 28天写作

元宵佳节快乐哦

Nydia

记忆这件“小事”「Day 7」

道伟

心理学 28天写作

我看JAVA 之 Thread & ThreadLocal

awen

Java 源码 多线程

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