AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

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

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

关注

评论

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

我的2023年终总结

南哥

一文解释JS如何获取当前系统电量

伤感汤姆布利柏

Java 低代码 js

服务宕机灾难预防手段:混沌工程

腾讯云混沌演练平台

混沌工程 服务宕机

与 Team Finance 整合,Casper Network 让 Token 的创建、发行更加高效

股市老人

中小型企业怎么选SD-WAN?

Ogcloud

网络 SD-WAN 组网

SD-WAN组网:企业网络的首选

Ogcloud

网络 SD-WAN 组网 WAN

如何正确使用缓存来提升系统性能

伤感汤姆布利柏

后端

Gemini 自曝中文用百度文心一言训练丨 RTE 开发者日报 Vol.109

声网

什么是动态ip代理,动态ip代理有哪些特点?

巨量HTTP

代理IP 动态IP http代理

利用GitLab快速搭建一个代码托管平台

想要飞的猪

Redis故障演练-主从切换

腾讯云混沌演练平台

混沌工程 Redis主从切换

软件测试/测试开发|Ubuntu系统入门教程

霍格沃兹测试开发学社

腾讯云向开放原子开源基金会捐赠OpenTenBase,推动关键数字基础设施加速突破

极客天地

软件测试/测试开发|Ubuntu虚拟机打不开Ubuntu software

霍格沃兹测试开发学社

软件测试/测试开发|一文教会你使用npm

霍格沃兹测试开发学社

持续集成平台搭建(jenkins)

想要飞的猪

你真的会写 Prompt ? 剖析 RAG 应用中的指代消解

Zilliz

Zilliz AIGC ChatGPT Prompt rag

SD-WAN组网案例:异地组网跨境访问

Ogcloud

网络 SD-WAN 组网

一个有点东西的后台管理系统,基于vue3+vite。

23朵

Vue Element Plus

淘宝获得商品详情 API:打开电商精细化运营的大门

技术冰糖葫芦

API

解除Java反复编译的困扰方法,优化开发效率

互联网工科生

Java 编译

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