写点什么

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

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

关注

评论

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

苹果电脑pdf文档大小压缩推荐 PDF Squeezer激活中文最新版

胖墩儿不胖y

Mac软件 pdf编辑器 pdf处理工具

如何用装饰者模式代理final方法

程序员万金游

spring aop #java #程序员 #Spring #后端

得物API元数据中心探索与思考

得物技术

API管理 元数据中心 自动解析

JAVA OOM异常最佳实践

Yestodorrow

Java 运维 监控 可观测性 系统性能

阿里云易立:以云原生之力,实现大模型时代基础设施能力跃升 | KubeCon 主论坛分享

阿里巴巴云原生

阿里云 容器 云原生 KubeCON

一种通过延迟事务提升数据库性能的方法

天翼云开发者社区

数据库

“开放原子开源大赛”来袭, inBuilder低代码开发创新赛火热报名中!

inBuilder低代码平台

什么是API商品数据接口?该怎么使用?

Noah

API 安全 API 文档 API 开发

全面解读 SQL 优化 - 统计信息

KaiwuDB

sql 优化 KaiwuDB

与创新者同行!Doris Summit Asia 2023 完整议程公开,首届线下峰会邀你报名!

SelectDB

大数据 数据分析 Doris 峰会 数据库、

<em> 和 <strong> 标签的区别

Lee Chen

html 前端

华秋DFM新功能丨可焊性检查再次升级,抢先体验!

华秋电子

深圳华秋电子有限公司与共熵服务中心缔结战略合作伙伴关系

华秋电子

合作伙伴

[分组聚合]基于Lucene8进行多值字段分组聚合(多属性字段)

alexgaoyh

lucene Spring Boot 分组聚合 单字段 多属性

支持信创系统的数据库审计系统有哪些?用哪家好?

行云管家

数据库 信创 数据安全 国产化 数据库审计

一种提升SQL改写效率的方法

天翼云开发者社区

数据库

4点策略调优!智能外呼助力汽车行业盘活客户价值

中关村科金

智能外呼系统

EOS系统合约链账户介绍

BSN研习社

三个要点,掌握Spring Boot单元测试

互联网工科生

Spring Boot 分层架构 单元测试 JUnit Mockito

Spring Boot 中常见且必备的注解解析

Liam

Java 程序员 Spring Boot 后端 注解

DApp区块链公链智能合约质押挖矿系统开发

l8l259l3365

What's new in Pika v3.5.1

apache/dubbo-go

redis redis sentinel Pika

供应链透明度的代币开发

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 NFT开发

文心一言 VS 讯飞星火 VS chatgpt (102)-- 算法导论9.3 8题

福大大架构师每日一题

福大大架构师每日一题

探索古彝文AI识别技术:助力中国传统文化的传承与发扬

颜淡慕潇

人工智能 算法 AI识别技术 前言技术

长沙企业采购云管平台选哪家厂商?联系电话多少?

行云管家

云计算 云服务 云管理平台 云管平台

前端首屏优化 | 提升首屏的 8 个很简单的手段

Yestodorrow

可观测性 网站性能

基于Java开发的企业人力资源管理系统(招聘、绩效、考勤、酬薪管理)

金陵老街

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