编程语言最近(再次)成为研究的主要题目,并且,这次人们仔细地关注它们的语义基础:
创新互联建站主要从事成都网站建设、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务甘肃,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
程序就是带有语义的结构化对象。结构让我们可以对程序做转换。而语义则为我们提供了比较程序以及推断转换有效性的方法。语义包括程序的外延和内涵行为。
程序转换(Program Transformation)也得益于这种新的研究浪潮,并且已经有公司成功发布了商业化的产品。
程序转换是把一种程序转换为另一种的操作。而术语“程序转换”也被用于描述实现程序转换的算法。程序中被转换的语言和编写得到的程序所用的语言分别被叫做源语言和目标语言。
Adrian Thurston最近发布了Colm(计算机语言处理)的***个版本,这种语言被设计用来对计算机语言进行分析和转换。
Adrian是在皇后大学(ON,Canada)读博士期间开发了Colm。他解释说:
一种转换语言会拥有基于正规语言的类型系统。它不会定义类或是数据结构,而是会定义语法。根据语法会自动构造解析器,而这个解析器会用于两种目的: 解析输入语言,并解析执行分析的程序中的结构模式。在这种设定中,基于语法的解析非常重要,因为它确保输入和结构化模式都从同样的类型系列解析为树状结构,从而让我们可以进行比较。
Colm的主要贡献在于解析方法。
Colm的解析引擎是广义上的,但是它也考虑到了对二进制全局数据结构的构建,那种结构可以在解析过程中查询。在其它广义的方法中,对全局数据的构建需要慎重的考虑,因为在解析方法中会存在固有的并发操作。这是一种非常巧妙的方法,经常可以在总体上避免问题的发生,并把问题延迟到对解析森林在解析之后的后续处理中。
使用Colm,我们可以在对输入的***次遍历过程中就获得正确的解析树,并确保某些回溯操作是可接受的。Colm让我们不需要推断对全局数据的并发更新,也不需要获取很多可能的解析树,只是把错误的抛弃即可。
元编程(也叫做面向元模型的编程)取得了很大进展,这多亏有了对语言工作台和像Colm这样强大的转换技术的开发。你可能会使用一种吗? 你已经使用一种了吗?你选择的是哪种呢?
英文原文:http://www.infoq.com/news/2011/05/colm
网站题目:Colm语言简介
标题网址:http://www.36103.cn/qtweb/news47/11197.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联