写点什么

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

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

关注

评论

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

AI Agent深入浅出——以ERNIE SDK和多工具智能编排为例

飞桨PaddlePaddle

百度 BAIDU 百度飞桨 开发者说 AI Agent

6个受欢迎的 Angular 库

伤感汤姆布利柏

万界星空科技电子机电行业MES系统,2000元/年起

万界星空科技

制造业 mes 电子 电子mes 电子行业

测试管理忠告|量力而行:避免成为替罪羊

霍格沃兹测试开发学社

金芮学院派的优秀践行者

Geek_2d6073

Google Adsense探索系列_第二弹(成功通过审核)

fkys

网站 Google 审核 adsense

WiFi7-IPQ9574 and WiFi6 IPQ8072 cpus respectively represent the highest performance in the WiFi phase.

wifi6-yiyi

wifi router

小程序生命周期解析(从概念、启动、运行、销毁场景的全面解析)

天津汇柏科技有限公司

小程序开发 开发小程序

即时通讯技术文集(第33期):IM开发综合技术合集(Part6) [共12篇]

JackJiang

网络编程 即时通讯 IM

Web3.0区块链技术开发方案:mint铭文铭刻制度开发

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

深耕人工智能技术创新,天翼云荣获AAAI 2024竞赛冠军

编程猫

2024年API经济的十大预测

幂简集成

API API经济

不懂技术也能轻松搭建网站!美国虚拟主机的简易指南!

一只扑棱蛾子

虚拟主机 美国虚拟主机

回顾 | E³CI效能认知与改进论坛,助力企业研发效能度量和提升

思码逸研发效能

TPC-H 基准测试:Databend Cloud 与 Snowflake 对比

Databend

墨天轮2023年度数据库获奖名单

墨天轮

数据库 opengauss oceanbase 达梦 polarDB

A Comprehensive Guide IPQ5018-IPQ6010-IPQ6018-IPQ8072-IPQ8074

wallyslilly

IPQ6010 ipq6018 IPQ8072

详解 API 设计最佳实践

Noah

测试管理进阶 | 量力而行:避免成为替罪羊

测吧(北京)科技有限公司

海上风电:2024智慧海上风电场数字孪生系统

2D3D前端可视化开发

智慧电力 三维可视化 智慧风电场 智慧海上风电场 数字孪生风电场

基于 Fluid+JindoCache 加速大模型训练的实践

阿里巴巴云原生

阿里云 云原生 Fluid

【论文解读】| 通过大语言模型实现通用模糊测试

云起无垠

测试管理进阶 | 量力而行:避免成为替罪羊

测试人

软件测试 测试开发 测试管理

Linux操作系统中软件安装

小魏写代码

思码逸荣获汽车数智未来创新峰会“年度数字化创新产品奖”

思码逸研发效能

【线上直播】KaiwuDB 分布式系统 Range Split & Merge 原理详解

KaiwuDB

数据库 数据分区

干货 | 汽车行业研发效能提升的挑战与实践案例

思码逸研发效能

AI给我们带来哪些方面惊喜呢?

小齐写代码

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