50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

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

关注

评论

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

定级备案、差距分析、安全建设、等级测评、监督检查

等保测评

鸿蒙Next文件读写操作支持写入汉字等符号

auhgnixgnahz

鸿蒙Next

【HarmonyOS NEXT】鸿蒙目前最好用的路由管理 HMRouter (一)

GeorgeGcs

HarmonyOS

Go 语言中如何处理并发错误

左诗右码

鸿蒙Next文件下载RCP单线程和多线程使用对比

auhgnixgnahz

鸿蒙Next

【HarmonyOS5】Stage模型应用程序包结构详解

颜颜yan_

HarmonyOS Harmony5

【HarmonyOS5】掌握UIAbility启动模式:Singleton、Specified、Multiton

颜颜yan_

架构 HarmonyOS Harmony5

【HarmonyOS】鸿蒙应用蓝牙功能实现 (二)

GeorgeGcs

HarmonyOS

HarmonyOS 组件复用 @ReusableV2 装饰器的基本使用

万少

harmoyos

一站式等保服务:合规无忧之选

等保测评

行业分享丨虚拟原型技术如何革新重型装备设计?

Altair RapidMiner

机器学习 AI 仿真 CAE 重型机械

鸿蒙开发笔记:PDF Kit实现新闻电子报的高效阅读体验

chengxujianke

HarmonyOS开发实战:Reader Kit打造新闻阅读舒适体验

chengxujianke

深入解析HarmonyOS5 UIAbility组件:从核心架构到实战应用

颜颜yan_

架构 HarmonyOS Harmony5

【HarmonyOS5】UIAbility组件生命周期详解:从创建到销毁的全景解析

颜颜yan_

HarmonyOS 构架 Harmony5

鸿蒙Next使用ArkUI-X跨平台开发体验

auhgnixgnahz

鸿蒙Next

鸿蒙Next地图服务Map在露天矿山中的使用分享

auhgnixgnahz

鸿蒙Next

大数据-21 Sqoop 数据迁移 ETL工具 MySQL与Hive数据互相迁移 导入导出

武子康

大数据 hadoop spark hive sqoop

【HarmonyOS 5】ArrayBuffer转Base64,Base64转ArrayBuffer,Uri转ArrayBuff,PixelMap转ArrayBuffer,图片Uri转为PixelMap

GeorgeGcs

harmoyos

鸿蒙开发笔记:Scenario Fusion Kit实现新闻场景智能联动

chengxujianke

【HarmonyOS】深入理解@Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化

GeorgeGcs

harmoyos

【HarmonyOS】鸿蒙应用蓝牙功能实现(一)

GeorgeGcs

Harmony5

HarmonyOS开发实战:Payment Kit在新闻付费墙中的安全集成

chengxujianke

HarmonyOS开发实战:Preview Kit实现新闻附件快速预览

chengxujianke

Flutter驱动的小程序化开发范式:跨端组装式App的高效实践路径

xuyinyin

鸿蒙Next层叠布局使用Stack还是RelativeContainer?

auhgnixgnahz

鸿蒙Next

抢赚万元政策红利,中小企业数字化转型的破局之道

禅道项目管理

数字化转型 企业管理 项目管理软件 数字化转型咨询

鸿蒙Next动态添加删除布局

auhgnixgnahz

鸿蒙Next

HarmonyOS开发实战:Share Kit打造新闻社交裂变引擎

chengxujianke

【HarmonyOS】鸿蒙应用蓝牙功能实现 (三)

GeorgeGcs

HarmonyOS

鸿蒙开发笔记:Push Kit构建新闻实时推送系统

chengxujianke

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