AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

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

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

关注

评论

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

直播预告丨看零售场,如何玩转 MaaS

京东科技开发者

需要监控的五个主要加密货币趋势

区块链软件开发推广运营

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

这些常见的python编码习惯,你都会吗

不在线第一只蜗牛

Python 编码 开发语言

外贸企业为何要选择Yandex推广?

九凌网络

SD-WAN对企业网络升级的价值

Ogcloud

网络 SD-WAN 组网 组网网络

知识图谱系统在人工智能领域的应用与前景

悦数图数据库

图数据库

星耀新春,集星探宝,卡奥斯开源社区双节活动上线啦!

Openlab_cosmoplat

开源 活动

SpringBoot3 WebFlux 可观测最佳实践

观测云

链路追踪 spring boot3

软件测试/测试开发/全日制/测试管理丨Pytest常用插件

测试人

软件测试 自动化测试 测试开发 pytest

ArcNeural: AI 时代的多模数据库丨技术专栏

Fabarta

人工智能 AI 大模型 多模态数据 AI基础设施

WebGL+H5 智慧充电站3D可视化运维平台

2D3D前端可视化开发

物联网 数字孪生 三维可视化 智慧充电站 智慧充电桩

软件测试/测试开发/全日制/测试管理丨Pytest 框架介绍与优势

测试人

Python 软件测试

EasyMR:为 AI 未来赋能,打造弹性大数据引擎的革命

袋鼠云数栈

AI 计算引擎 弹性计算 弹性伸缩

软件测试开发/全日制/测试管理丨Python 开发者的首选工具PyCharm

测试人

如何保护linux服务器远程使用的安全

德迅云安全杨德俊

SSH 远程

图扑物联 | WEB组态可视化软件

图扑物联

工业物联网 web组态软件 智慧污水处理 web scada 云组态

软件测试/测试开发/全日制/测试管理丨Allure测试报告特点与优势

测试人

软件测试

悦数图数据库助力电信运营商宽带业务提效

悦数图数据库

图数据库

BOE(京东方)位列2023 IFI专利授权排行榜全球第15位 创新驱动引领中国科技再飞跃

科技热闻

虾皮API在电商营销活动中的应用与创新

技术冰糖葫芦

API

低代码开发的困境与解药

飞算JavaAI开发助手

每日一题:LeetCode-198. 打家劫舍

Geek_4z9ami

面试 算法 LeetCode 动态规划 滚动数组

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