【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

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

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

关注

评论

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

注意,你所做的A/B实验,可能是错的!

字节跳动数据平台

大数据 测试 AB 增长黑客

盘点2021 | 也无风雨也无晴-转行三年,再度出发

翊君

程序员 转行 人生修炼 盘点2021 盘点 2021

大数据SQL优化之数据倾斜解决案例全集

安第斯智能云

数据

Linux之目录结构

入门小站

书单 | 2021年度经典畅销佳作盘点!

博文视点Broadview

邮储银行新一代个人业务核心系统国际汇款业务上线,openGauss核心应用再创新高度

openGauss

使用JDBC进行openGauss的读写分离及负载均衡

openGauss

深度揭秘openGauss分区表如何实现大数据量的快速转移

openGauss

在线JSON转HTML,TABLE表格工具

入门小站

工具

微服务架构 | 如何让接口权限继续继承下去?

码农架构

Auth2 OAuth 2.0 SpringCloud Alibaba spring aop Java 开发

开源堡垒机是什么?开源堡垒机的优缺点是什么?

行云管家

开源 网络安全 堡垒机 开源堡垒机

图解MongoDB集群部署原理(3)

Tom弹架构

全新缓存组件,大幅加速云上飞桨分布式训练作业

百度开发者中心

飞桨

MariaDB 到 MySQL 整库迁移(qbit)

qbit

MySQL MariaDB 数据导入 数据导出

鸿鹄元数正式加入openGauss社区

openGauss

构建测试的体系化思维(基础篇)

BY林子

软件测试 测试思维

荣获中国专利金奖!百度连续四年AI专利申请和授予量全国第一

百度大脑

人工智能

云基华海正式加入openGauss社区

openGauss

政法委多部门联防联控平台,重点人员联防联控平台建设

a13823115807

呼和浩特市等保测评公司在哪里?联系电话多少?

行云管家

等保 等级保护 等保测评

关于 Apache Flink 和实时计算的最新动态、未来方向,你想知道的都在这里

Apache Flink

大数据 flink 编程 后端 实时计算

格创东智选择TDengine,实现海量数据实时全生命周期管理

TDengine

数据库 大数据 tdengine

GBASE南大通用加入openGauss社区

openGauss

多种网络设备的优缺点及网络故障的排除方法

恒生LIGHT云社区

故障 网络设备

2021年我读过的52本书

SkyFire

c++ 个人成长 总结 读书 计算机

谈B端产品技术团队的核心价值(1/100)

hackstoic

团队建设

程序员非常实用的十个工具网站,值得收藏

AlwaysBeta

7.3万字肝爆Java8新特性,我不信你能看完!(建议收藏)

冰河

程序员 java8 编程基础 Lamdba表达式 Stream API

linux学习零基础教学课程:Linux文件系统结构

侠盗安全

Linux 运维 运维工程师 云计算架构师

“千言”开源数据集项目全面升级:数据驱动AI技术进步

百度大脑

人工智能

性能提升一个数量级,Java大杀器来了!Java冷启动问题的成因与解决

华章IT

Java

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