新聞中心
編程語言最近(再次)成為研究的主要題目,并且,這次人們仔細地關注它們的語義基礎:

創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站建設、成都網(wǎng)站制作、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務甘肅,10年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575
程序就是帶有語義的結構化對象。結構讓我們可以對程序做轉換。而語義則為我們提供了比較程序以及推斷轉換有效性的方法。語義包括程序的外延和內(nèi)涵行為。
程序轉換(Program Transformation)也得益于這種新的研究浪潮,并且已經(jīng)有公司成功發(fā)布了商業(yè)化的產(chǎn)品。
程序轉換是把一種程序轉換為另一種的操作。而術語“程序轉換”也被用于描述實現(xiàn)程序轉換的算法。程序中被轉換的語言和編寫得到的程序所用的語言分別被叫做源語言和目標語言。
Adrian Thurston最近發(fā)布了Colm(計算機語言處理)的***個版本,這種語言被設計用來對計算機語言進行分析和轉換。
Adrian是在皇后大學(ON,Canada)讀博士期間開發(fā)了Colm。他解釋說:
一種轉換語言會擁有基于正規(guī)語言的類型系統(tǒng)。它不會定義類或是數(shù)據(jù)結構,而是會定義語法。根據(jù)語法會自動構造解析器,而這個解析器會用于兩種目的: 解析輸入語言,并解析執(zhí)行分析的程序中的結構模式。在這種設定中,基于語法的解析非常重要,因為它確保輸入和結構化模式都從同樣的類型系列解析為樹狀結構,從而讓我們可以進行比較。
Colm的主要貢獻在于解析方法。
Colm的解析引擎是廣義上的,但是它也考慮到了對二進制全局數(shù)據(jù)結構的構建,那種結構可以在解析過程中查詢。在其它廣義的方法中,對全局數(shù)據(jù)的構建需要慎重的考慮,因為在解析方法中會存在固有的并發(fā)操作。這是一種非常巧妙的方法,經(jīng)??梢栽诳傮w上避免問題的發(fā)生,并把問題延遲到對解析森林在解析之后的后續(xù)處理中。
使用Colm,我們可以在對輸入的***次遍歷過程中就獲得正確的解析樹,并確保某些回溯操作是可接受的。Colm讓我們不需要推斷對全局數(shù)據(jù)的并發(fā)更新,也不需要獲取很多可能的解析樹,只是把錯誤的拋棄即可。
元編程(也叫做面向元模型的編程)取得了很大進展,這多虧有了對語言工作臺和像Colm這樣強大的轉換技術的開發(fā)。你可能會使用一種嗎? 你已經(jīng)使用一種了嗎?你選擇的是哪種呢?
英文原文:http://www.infoq.com/news/2011/05/colm
分享標題:Colm語言簡介
標題鏈接:http://fisionsoft.com.cn/article/cdsjegc.html


咨詢
建站咨詢
