NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

聊聊阻容降压原理 和 实际使用的电路

矜辰所致

电路设计 8月月更

头脑风暴:一和零

HelloWorld杰少

算法 LeetCode 数据结构, 8月月更

易观分析:2022年Q2中国跨境进口零售电商市场规模为1171.0亿元

易观分析

报告 跨境进口 零售电商市场

大数据开发课程靠谱吗?

小谷哥

技术分享| 视频传输Simulcast与Svc

anyRTC开发者

音视频 Simulcast Svc 视频传输

产品说明丨 iOS端使用 MobPush 快速集成方法

MobTech袤博科技

ios sdk MobTech袤博科技 mobpush

学大数据需要具备什么基础知识点?

小谷哥

地址标准化服务AI深度学习模型推理优化实践

阿里云大数据AI技术

深度学习

知乎杀疯了,疯传2022Java面试八股文解析+大厂面经

程序知音

Java 程序员 java面试 后端技术 Java面试八股文

有关分库分表ShardingSphere-JDBC,这是我见过整理的最全的笔记了

Java全栈架构师

Java 数据库 程序员 面试 JDBC

拿捏了!火爆GitHub的字节内部1213页“数据结构与算法”面试手册

冉然学Java

Java 数据结构 面试 算法 构架

Spring-boot项目练习笔记(二)MybatisPlus实现公共字段自动填充

赵四司机

Java web MyBatisPlus 8月月更

Redis 介绍

武师叔

8月月更

Redis为什么这么快?

京东科技开发者

数据库 消息队列 redis'

案例复现,带你分析Priority Blocking Queue比较器异常导致的NPE问题

华为云开发者联盟

后端 开发

兆骑科创海内外高层次人才大赛平台,双创赛事活动举办

兆骑科创凤阁

Spring-boot项目练习笔记(一)JS处理Long型数据精度丢失问题

赵四司机

Java web spring-boot 8月月更

权威发布! 开发人员需要关注的11种顶级恶意软件

SEAL安全

网络安全 软件安全 恶意软件 软件供应链安全

leetcode 23. Merge k Sorted Lists 合并K个升序链表(困难)

okokabcd

LeetCode 数据结构与算法 栈和队列

HADOOP学习笔记之HDFS

openpark

hadoop hdfs

数读海南数字经济 | 2022海南数字经济发展指数发布

易观分析

数字经济 经济 海南

零基础web前端学习靠谱吗

小谷哥

Kubernetes Ingress 控制器讲解

CTO技术共享

开源 签约计划第三季 8月月更

【设计模式-前端】单例模式深刻理解和实现

归子莫

前端 设计模式 js 8月月更

基于 TLS 1.3的百度安全通信协议 bdtls 介绍

百度Geek说

安全

面试官:Redis Zset的实现为什么用跳表,而不用平衡树?

程序员小毕

Java redis 程序员 面试 后端

“纯C”实现——扫雷游戏(递归实现展开功能)

一介凡夫

c 开源 8月月更

免费云管平台有吗?咨询电话多少?

行云管家

云计算 企业上云 云管平台

和鲸科技创始人范向伟:大部分数据智能项目都面临着两个挑战

ModelWhale

工作流 数字化转型 数据智能 协同效应 8月月更

什么密码,永远无法被黑客攻破?

Authing

兆骑科创创投平台,创赛承办,投融资对接,项目落地孵化

兆骑科创凤阁

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