2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

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

关注

评论

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

深度剖析:KWDB SQL 编译与优化策略

KaiwuDB

数据库 sql KaiwuDB 分布式多模数据库 KWDB开源数据库

百分点科技发布中国首个AI原生GEO产品Generforce,助力品牌决胜AI搜索新时代

百分点科技技术团队

重磅 | Cloud Ace 宣布正式代理云安全平台 Wiz !

Cloud Ace 云一

云安全 谷歌云 企业云服务 Wiz

Sppring集成Quartz简单案例详解 包括(添加、停止、恢复、删除任务、获取下次执行时间等)

刘大猫

人工智能 云计算 算法 物联网 大模型

一款基于 .NET 开源、配置灵活的工作流引擎

追逐时光者

C# .net 微软

浅谈 C# 13 中的 params 集合

追逐时光者

C# .net 微软

Figma MCP如何配置?MCP+Cursor实战教程分享!

职场工具箱

产品设计 figma AIGC ui设计 MCP

排查 EF 保存数据时提示:Validation failed for one or more entities 的问题

追逐时光者

.net ef

C# 中比较实用的关键字,基础高频面试题!

追逐时光者

C# .net 微软

C#之 Dictionary 详解

追逐时光者

C# .net

凌晨零点,一个TODO,差点把我们整个部门抬走

大厂码农老A

前端 故障分析 故障 #java #后端

2025 年全面且实用的 Visual Studio 插件推荐,开发效率提升利器!

追逐时光者

微软 Visual Studio

.NET 10首个预览版发布:重大改进与新特性概览!

追逐时光者

.net 微软

新手如何高效使用 Zulu 智能体?从入门到提效全指南

Comate编码助手

AI 编程 文心快码Zulu AI编程助手

C# 13 中的新增功能实操

追逐时光者

C# .net 微软

一个基于 .NET 开源免费的异地组网和内网穿透工具

追逐时光者

.net 微软

工作面试必备:SQL 中的各种连接 JOIN 的区别总结

追逐时光者

数据库 sql

企业应用开发中.NET ORM EF常用哪种模式?

追逐时光者

C# .net ORM

搞定低代码视图只需 2 步!接口参数 + 列表展示,新手也能会

引迈信息

单线程如何撑起百万连接?I/O多路复用:现代网络架构的基石

poemyang

RPC IO多路复用

时序数据库 Apache IoTDB 等你“打卡”!2025 OSCAR 开源产业大会完整版议程揭晓

Apache IoTDB

有趣评测小程序系统:开启视频与答题变现新创业风口

微擎应用市场

看图猜成语达人小程序:一站式趣味与变现解决方案

微擎应用市场

Nginx Tracing 最佳实践

观测云

nginx

设备点检 设备维护经验总结(9)

万里无云万里天

工业 工厂运维 设备点检

朴智平台“上新”:金融风控模型对抗时代到来

极客天地

在 Blazor 中使用 Chart.js 快速创建数据可视化图表

追逐时光者

C# .net 微软

面试官问:你知道 C# 单例模式有哪几种常用的实现方式?

追逐时光者

C# .net 微软

在 ASP.NET Core 中创建中间件的 4 种方式

追逐时光者

C# .net 微软

全面的 .NET 操作 SQLite 入门实战(包含选型、开发、发布、部署)!

追逐时光者

C# sqlite .net 微软

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