写点什么

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

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

关注

评论

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

爆测一周!22年必看最细致代码托管工具测评

阿里云云效

阿里云 云原生 代码管理 代码托管 Codeup

Spring的底层实现机制

编程江湖

Spring JPA

带你读AI论文丨RAID2020 Cyber Threat Intelligence Modeling GCN

华为云开发者联盟

网络威胁情报 CTI 异构信息网络 GCN HINTI

研效优化实践:WeTest提效测试

WeTest

老牌安全厂商海泰方圆加入龙蜥社区

OpenAnolis小助手

Linux 开源 社群运营

【云成本】降低云成本三大技巧你知道吗?

行云管家

云计算 企业上云 云成本

操作指南|最详尽文档翻译志愿指南

Apache Pulsar

开源 翻译 云原生 Apache Pulsar 社区

Flume日志采集框架构成组件

编程江湖

flume

基于 PTS 压测轻松玩转问题诊断

阿里巴巴云原生

阿里云 云原生 压测 问题 PTS

SPARK 应用如何快速应对 LOG4J 的系列安全漏洞

明哥的IT随笔

spark CDH

深入浅出Apache Pulsar(2):Pulsar消息机制

云智慧AIOps社区

博文推荐|基于 Apache Pulsar 的分布式锁

Apache Pulsar

开源 分布式 云原生 中间件 Apache Pulsar

【实时渲染】3DCAT实时渲染云在BIM领域的应用

3DCAT实时渲染

云计算 渲染 BIM 建筑

架构训练营 week5 课程总结

红莲疾风

「架构实战营」

【行业云说】云数底座赋能基层治理现代化

云计算运维

网络安全kali渗透学习 web渗透入门 Kali系统的被动信息收集

学神来啦

APP违法使用个人信息?不用怕,华为云VSS为你保驾护航

华为云开发者联盟

移动应用 安全 漏洞 隐私合规 华为云VSS漏洞扫描服务

在线XML转HTML工具

入门小站

工具

netty系列之:channel和channelGroup

程序那些事

Java Netty 程序那些事 1月日更

线程的生命周期,真的没那么简单

华为云开发者联盟

Java 线程 生命周期 编程语言线程

博文推荐|Apache Pulsar: 统一消息流平台

Apache Pulsar

开源 云原生 broker Apache Pulsar 消息中间件

Linux之date命令

入门小站

Linux

易用好用的云管平台看这里!行云管家杠杠的!

行云管家

云计算 企业上云 混合云 云管平台

前端开发之样式调试

@零度

前端开发

一文看懂:工程项目管理软件有哪些?怎么选?

优秀

项目管理软件

Committer 郭吉伟专访:做开源不是搞慈善,用开源也不是薅羊毛

Apache Pulsar

开源 架构 云原生 中间件 Apache Pulsar

大数据开发之Flink SQL建设实时数仓实践

@零度

大数据 flink sql

技术干货 | NeCodeGen:基于 clang 的源到源转译工具

网易云信

前端 Clang

视频智能生产及内容分析应用工具开源了!​

百度大脑

人工智能

Form 表单在数栈的应用(下):深入篇

袋鼠云数栈

前端

详解 Flink 中 Time 与 Window

五分钟学大数据

flink 1月月更

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