发布在即!企业 AIGC 应用程度测评,3 步定制专属评估报告。抢首批测评权益>>> 了解详情
写点什么

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

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

关注

评论

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

情感分析 | AI没有“心”,却能“读心”

澳鹏Appen

人工智能 自然语言处理 机器学习 nlp 训练数据

Scrum为何倡导固定迭代周期?

万事ONES

项目管理 Scrum 敏捷开发 Agile ONES

Hi,HarmonyOS!融云全系产品已成功适配鸿蒙 OS 2.0

融云 RongCloud

网络攻防学习笔记 Day40

穿过生命散发芬芳

网络攻防 6月日更

汽车之家:基于 Flink + Iceberg 的湖仓一体架构实践

Apache Flink

flink

百度大规模Service Mesh落地实践

百度Geek说

Service Mesh 软件架构

【布道API】API端点/资源命名最佳实践

devpoint

RESTful Rest API 6月日更

基于 Flink 打造的伴鱼实时计算平台 Palink 的设计与实现

Apache Flink

flink

一文你带快速认识Vue-Router路由

华为云开发者联盟

html Vue vue-router 路由 路由管理器

WebRTC 用例和性能

anyRTC开发者

音视频 WebRTC RTC sdk

我的编辑器能玩贪吃蛇,一起玩不?

华为云开发者联盟

大前端 编辑器 贪吃蛇 Blot Quill

液体测量技术:从水到血液

不脱发的程序猿

物联网 液体测量技术 测量技术 ADI

奇亚矿机系统,Bzz分币系统,云算力APP开发

【LeetCode】零钱兑换 IIJava题解

Albert

算法 LeetCode 6月日更

2021年马士兵老师1000道Java大厂面试真题视频解析+笔记+源码

Java架构追梦

Java 架构 面试 马士兵

5分钟带你玩转国内首款研发自动化工具PingCode Flow

PingCode研发中心

研发管理 研发效能 自动化管理 研发工具

36氪企服点评|中国企服软件金榜-项目管理系列榜单揭晓,Worktile夺魁!

PingCode

项目管理 研发管理 研发工具 项目管理工具

QCon演讲| 从团伙到团队,PingCode研发团队敏捷实践血泪史

PingCode

敏捷 研发管理 研发效能 开发

如何用Python快速的搜索邮件

IT蜗壳-Tango

6月日更

工厂管理没有头绪?那是你还没有可视化操控设备

一只数据鲸鱼

数据可视化 工业互联网 工业4.0 智慧工厂

并发王者课-青铜9:防患未然-如何处理线程中的异常

MetaThoughts

Java 多线程 并发

CloudQuery 的数据安全技术运用

BinTools图尔兹

Java 数据库 sql 数据安全

浪潮云说丨数据工场助力行业数据发挥生产要素新价值

浪潮云

云计算

「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之EXCEL数据导入(九)

crudapi

Vue crud crudapi qusar 数据导入

融合创新与头雁领路:通过北京人工智能产业联盟能读懂什么?

脑极体

一文回顾 Java 入门知识(下)

逆锋起笔

Java 面向对象 JAVA开发 java基础 javase

PHP ppa 不再支持过时的 Ubuntu 16.04,请立即升级 20.04

大龄程序员老羊

php ubuntu 架构 DevOps

并发王者课-青铜10:千锤百炼-如何解决生产者与消费者经典问题

MetaThoughts

Java 多线程 并发

6月18日华为云携手中科院上海药物所,深度解读AI药物研发技术

华为云开发者联盟

AI 华为云 药物 TechWave EIHealth

竞赛|数据竞赛Top解决方案开源整理

不脱发的程序猿

开源 数据竞赛

都啥年代了,求你别再说Redis是单线程了!

Java redis 编程 程序员

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