写点什么

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

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

关注

评论

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

Javva基础:多线程重点回顾

百思不得小赵

Java 多线程 7月月更

Kubernetes资源编排系列之一: Pod YAML篇

阿里云大数据AI技术

运维

直播回顾|当我们说微服务上容器时,我们在说什么?

BoCloud博云

云原生 容器云 应用

K8S探索之Service+Flannel本机及跨主机网络访问原理详解

网络 Kubernetes 集群 7月月更

Apache Pulsar 跨地域复制方案选型实践

移动云大数据

使用 ABAP 事物码 SAT 对从浏览器打开的 SAP应用进行性能监控和测量

汪子熙

SAP ERP abap Netweaver 7月月更

Yunikorn 在云上大数据平台中的应用

移动云大数据

目标、目的你分清了吗?

涛哥 数字产品和业务架构

企业架构 Archimate

沉浸式体验 罗技推出Zone Vibe 125无线耳机

Geek_2d6073

牛客基础语法必刷100题之基本类型2

京与旧铺

7月月更

一种基于 HiveMetaStore 的跨源查询方案实践

移动云大数据

hive JDBC

浅析 Region split 引入 HFileLink 优化子 Region 操作实现原理

移动云大数据

HBase

基于OpenHarmony的智能指南针

OpenHarmony开发者

OpenHarmony

Vue路由切换&Axios接口取消重复请求

南城FE

Vue 前端 接口 axios 7月月更

2022年1-6月墨天轮最受欢迎的25篇原创技术文章

墨天轮

MySQL 数据库 oracle postgresql 国产数据库

首个先进级!阿里云大数据+AI平台通过信通院数据平台整体解决方案最高等级评测

阿里云大数据AI技术

人工智能 机器学习 大数据 运维

浅尝不辄止系列之试试腾讯云的 TUIRoom(下)

为自己带盐

7月月更 TURRoom

都已经2022了,不会还有人觉得String不可变是因为 final 吧

了不起的程序猿

string Java’ java 编程

实战模拟│单点登录 SSO 的实现

经验分享 SSO 单点登录 7月月更

首批!博云信创云管理平台入选“金融信创解决方案”名单

BoCloud博云

云原生 cmp 云管理平台 云管理

小间距LED显示屏的技术分析

Dylan

LED显示屏

百度工程师教你玩转设计模式(观察者模式)

百度Geek说

设计模式 观察者模式

面向开发者的HarmonyOS 3.0 Beta发布

HarmonyOS开发者

HarmonyOS

欢迎走进"云原生专场",总有一款活动适合你 | 人人都可以参与开源

OpenAnolis小助手

开源 开发者 龙蜥社区 开发者激励 人人都可以参与

架构与算法创新,让分布式存储焕然一新!

Geek_2d6073

Android adb常用命令

沃德

android 程序员 7月月更

JavaWeb Dubbo使用

沃德

Java 程序员 7月月更

元宇宙主导的一个新时代正在到来

智捷云

元宇宙 智捷云 区块链技术开发 智捷云区块链BaaS平台

GPU管线概述

Finovy Cloud

gpu GPU服务器

文件管理-Linux系统VIM编辑

Albert Edison

centos 服务器 linux 文件权限控制 vim教程 7月月更

性能提升8450%,Linux内核函数获大幅改进!

冉然学Java

MySQL Linux 编程 java 14 程序员进阶

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