写点什么

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

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

关注

评论

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

3月寒窗!啃透美团保姆级分布式进阶技术手册,4月终入美团定L8

Java你猿哥

Java 分布式 SSM框架 分布式数据 分布式消息

准备2023金三银四的Java程序员注意:40+文档5000+页面试资料来啦

会踢球的程序源

Java java面试 面试资料 Java大厂面试

多云转晴:Databend 的天空计算之路

Databend

Redis删除键命令: 新手用del,老手用unlink,有何区别?

Java你猿哥

Java redis SSM框架 Java工程师 delete

从「搭子」文化,看融云如何助力垂类社交应用增长

融云 RongCloud

融云 Z世代 通讯 交友 搭子

Unity 之 月签到累计签到代码实现(ScriptableObject应用 | DoTween入场动画)

陈言必行

Unity 三周年连更

Alibaba最新神作!耗时182天肝出来1015页分布式全栈手册太香了

Java你猿哥

Java 分布式 SSM框架 分布式核心原理解析 分布式开发

阿里全新推出:微服务突击手册,把所有操作都写出来了

Java你猿哥

微服务 微服务架构 Spring Cloud SSM框架

小红书社区反作弊探索与实践

小红书技术REDtech

防作弊 小红书

小红书广告智能创意能力构建过程详解

小红书技术REDtech

人工智能 广告 小红书

Oracle 23c 新特性实操体验优质文章汇总

墨天轮

数据库 oracle sql 新版本/特性解读

SpringBoot2.x系列教程——整合使用JPA

会踢球的程序源

Java

关于ChatGPT,我们请小红书技术人和NLP专家聊聊原理和潜力

小红书技术REDtech

自然语言处理 openai ChatGPT

开源正当时,共赢新未来 OpenHarmony开发者大会成功召开

科技汇

【FAQ】关于华为推送服务因营销消息频次管控导致服务通讯类消息下发失败的解决方案

HarmonyOS SDK

HMS Core

90%的Java开发人员都会犯的5个错误

小红书2024届实习生招聘一直在等着你!

小红书技术REDtech

招聘 实习 小红书

【七千字】教你如何用MySQL分析查询语句Explain

会踢球的程序源

Java MySQL

中船互联与嘉为科技共同打造“IT运维管理”融合解决方案

嘉为蓝鲸

自动化运维 IT 运维 中船集团

揭秘云原生时代企业可观测体系落地实践

嘉为蓝鲸

云原生应用 云原生(Cloud Native) 可观测宇宙

互联网工程师Java面试八股文及答案整理(2023最新版)

会踢球的程序源

Java springboot java面试

开屏广告=让用户等?小红书如何兼顾用户体验和广告投放效果

小红书技术REDtech

推荐 广告 小红书

如何一招搞定PCB阻焊过孔问题?

华秋PCB

工具 电路 阻抗 PCB PCB设计

改写同事代码——血压操作集锦第一弹

Java你猿哥

Java IDEA java编程 SSM框架 表单设计

字节跳动正式开源分布式训练调度框架 Primus

字节跳动开源

开源 算法 流批一体

我在 20 年的软件工程师生涯中学到的 20 件事

宇宙之一粟

翻译 软技能

测试工程师为什么要关注研发效能?

思码逸研发效能

软件工程 研发效能 测试工程师

把脉分布式事务的模型、协议和方案

小小怪下士

Java 分布式 分布式事务 后端

python统计程序耗时 | python小知识

AIWeker

Python python小知识 三周年连更

FastAPI 快速开发 Web API 项目: 连接 MySQL 数据库

宇宙之一粟

Python FastApi 三周年连更

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