写点什么

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

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

关注

评论

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

MongoDB 双活集群在运营商的实践

tapdata

数据库

丽江等级保护测评机构有几家?在哪里?

行云管家

等保 丽江 等保测评

【理论篇】关于聚合根,领域事件的那点事---深入浅出理解DDD

京东科技开发者

堡垒机啥意思?怎么简单理解?

行云管家

网络安全 堡垒机

【解决方案】Java 互联网项目中常见的 Redis 缓存应用场景

EquatorCoco

Java redis 缓存

Cisco Jabber 15.0 发布下载 - 面向企业的多合一通信工具

sysin

Cisco 通信 思科 即时消息

DApp开发入门指南:从概念到实践!DApp开发流程+DApp 经济模型

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

资深ETL工程师经验分享:ETL项目的5大挑战与策略

RestCloud

数据处理 ETL 数据集成 集成工具

机构加仓生态良好 比特币牛市延续有戏

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 NFT开发 代币开发

NetFlow Analyzer:精准流量洞察,引领网络安全新纪元

Geek_a83400

抖音商品SKU数据接口深度解析:解锁Dy.item_sku的电商新纪元

代码忍者

API 测试 pinduoduo API

如何保持telegram电报群活跃?

区块链项目一站式包装孵化

总裁,这是一份覆盖50家媒体的区块链发文套餐,请您收下!

区块链项目一站式包装孵化

Revolutionizing Long-Range Wi-Fi: How IPQ5010 Series Tackles Point-to-Point Transfer Challenges!

wallyslilly

ipq5018 IPQ5010 ipq9574

NFTScan | 09.16~09.23 NFT 市场热点汇总

NFT Research

NFT\ NFTScan

一位架构师的自述:在尚未踏入的世界成为你自己

京东科技开发者

《中国移动算力网络数据库白皮书》正式发布,NineData叶正盛分享

NineData

数据库 中国移动 叶正盛 NineData 算力网络数据库白皮书

2024开放原子开源生态大会 | 双轮驱动,开源生态建设从“幼苗”成长为“大树”

Geek_2d6073

Cellebrite UFED 4PC 7.70 下载 - Android 和 iOS 移动设备取证软件

sysin

ios android UFED 移动取证 手机取证

币圈项目为什么要做cmc+cg(双c)?

区块链项目一站式包装孵化

AI赋能美好生活,OpenVINO™技术成果助力多领域发展

E科讯

“AI+Security”系列第3期(一):AI 安全智能体,重塑安全团队工作范式

云起无垠

数据结构与算法之间有何关系?

不在线第一只蜗牛

数据结构 算法

中文区块链媒体自媒体哪些发起来最有性价比?(非权威勿喷)

区块链项目一站式包装孵化

Web3 星探 a16z 新加速器启动,盘点入围的「未来之星」

TechubNews

高并发设计之细粒度锁 : 5种细粒度锁的设计技巧图解(高并发篇)

肖哥弹架构

Java 乐观锁 悲观锁 高并发

信创里程碑:TapData 与海量数据达成产品兼容互认证,共同助力基础设施国产化建设

tapdata

数据库

macOS Sonoma 14.7 (23H124) Boot ISO 原版可引导镜像下载

sysin

macos ISO Sonoma

VMware Tanzu Kubernetes Grid 2.5.2 发布下载,新增功能概览

sysin

Kubernetes 云原生 vmware Tanzu

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