写点什么

Colm 语言简介

  • 2011-05-30
  • 本文字数:849 字

    阅读完需:约 3 分钟

编程语言最近(再次)成为研究的主要题目,并且,这次人们仔细地关注它们的语义基础:

程序就是带有语义的结构化对象。结构让我们可以对程序做转换。而语义则为我们提供了比较程序以及推断转换有效性的方法。语义包括程序的外延和内涵行为。

程序转换(Program Transformation)也得益于这种新的研究浪潮,并且已经有公司成功发布了商业化的产品

程序转换是把一种程序转换为另一种的操作。而术语“程序转换”也被用于描述实现程序转换的算法。程序中被转换的语言和编写得到的程序所用的语言分别被叫做源语言和目标语言。

Adrian Thurston最近发布了 Colm(计算机语言处理)的第一个版本,这种语言被设计用来对计算机语言进行分析和转换。Adrian 是在皇后大学(ON,Canada)读博士期间开发了 Colm。他解释说:

一种转换语言会拥有基于正规语言的类型系统。它不会定义类或是数据结构,而是会定义语法。根据语法会自动构造解析器,而这个解析器会用于两种目的: 解析输入语言,并解析执行分析的程序中的结构模式。在这种设定中,基于语法的解析非常重要,因为它确保输入和结构化模式都从同样的类型系列解析为树状结构,从而让我们可以进行比较。

Colm 的主要贡献在于解析方法。

Colm 的解析引擎是广义上的,但是它也考虑到了对二进制全局数据结构的构建,那种结构可以在解析过程中查询。在其它广义的方法中,对全局数据的构建需要慎重的考虑,因为在解析方法中会存在固有的并发操作。这是一种非常巧妙的方法,经常可以在总体上避免问题的发生,并把问题延迟到对解析森林在解析之后的后续处理中。

使用 Colm,我们可以在对输入的第一次遍历过程中就获得正确的解析树,并确保某些回溯操作是可接受的。Colm 让我们不需要推断对全局数据的并发更新,也不需要获取很多可能的解析树,只是把错误的抛弃即可。

元编程(也叫做面向元模型的编程)取得了很大进展,这多亏有了对语言工作台和像Colm 这样强大的转换技术的开发。你可能会使用一种吗? 你已经使用一种了吗?你选择的是哪种呢?

查看英文原文: Introducing the Colm Programming Language

2011-05-30 09:073557
用户头像

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

关注

评论

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

Partisia Blockchain 质押 APR 教程一览,可以随时取消

西柚子

“用嘴编程”时代来了,百度Comate将是开发者必备的“新工具”

Alter

AI

事业-最佳实践-架构-概要设计模版

南山

架构设计 技术方案 概要设计 技术方案模版 概要设计模版

当实时互动遇上新硬件:GIAC 全球互联网架构大会「新硬件」专题论坛

声网

矩阵起源全面拥抱AIDC开源软件生态,世纪互联领投千万美元Pre A轮融资

MatrixOrigin

一文读懂Partisia Blockchain 质押教程,质押 APR 高达 49%

股市老人

超前预热|博睿数据将应邀出席双态IT用户大会,分享《构建云原生时代的一体化智能可观测性》

博睿数据

Bonree ONE 技术带动「新质」可观测

博睿数据

字节跳动豆包大模型发布,火山引擎全栈 AI 服务助力企业智能化转型

新消费日报

Partisia Blockchain 质押 APR 高达 49%,教程一览

石头财经

字节跳动打响大模型价格战;苹果将在 iPhone、iPad 上推出眼球追踪功能丨 RTE 开发者日报 Vol.205

声网

Pencils Protocol 再获 OKX Ventures 投资,全新征程

石头财经

Partisia Blockchain 质押 APR 教程一览,可以随时取消

BlockChain先知

全新征程,Pencils Protocol 再获 OKX Ventures 投资

加密眼界

事业-最佳实践-架构-架构边界争议决策

南山

架构 架构决策 架构边界

谱写云智融合新篇章,天翼AI云电脑引领产业变革!

编程猫

碳课堂|ISO 14064-3 温室气体核查规范与指南

AMT企源

双碳 碳管理 ISO 14064

云3D渲染在汽车虚拟仿真中的优势体现

3DCAT实时渲染

实时云渲染 云3D渲染 汽车虚拟仿真

Pencils Protocol 再获 OKX Ventures 投资,全新征程

西柚子

客户案例|博睿数据助力上海证券App实现业务增长

博睿数据

XEOS 对象存储深度结合 Alluxio 分布式缓存系统, GPU 利用率提高至 90% 以上

XSKY星辰天合

AI 数据基础设施

一键自动化博客发布工具,用过的人都说好(掘金篇)

程序那些事

工具 程序那些事 自动发布

德国 Industrial AI Podcast 聚焦 Apache IoTDB:探索使用 AINode 进行时序数据管理

Apache IoTDB

通义千问 2.5 “客串” ChatGPT4,你分的清吗?

阿里巴巴云原生

阿里云 云原生

不能忽视的数据治理

凌晞

数据治理

What's new in PikiwiDB(Pika) v3.5.4

apache/dubbo-go

redis Redis 可视化工具

美团面试:如何实现线程任务编排?

王磊

Java

Colm语言简介_架构_Jean-Jacques Dubray_InfoQ精选文章