自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Colm語言簡介

開發(fā) 開發(fā)工具
本文主要介紹了一種新的計算機語言處理Colm,這種語言被設(shè)計用來對計算機語言進行分析和轉(zhuǎn)換,希望對你有幫助,一起來看。

編程語言最近(再次)成為研究的主要題目,并且,這次人們仔細地關(guān)注它們的語義基礎(chǔ):

程序就是帶有語義的結(jié)構(gòu)化對象。結(jié)構(gòu)讓我們可以對程序做轉(zhuǎn)換。而語義則為我們提供了比較程序以及推斷轉(zhuǎn)換有效性的方法。語義包括程序的外延和內(nèi)涵行為。

程序轉(zhuǎn)換(Program Transformation)也得益于這種新的研究浪潮,并且已經(jīng)有公司成功發(fā)布了商業(yè)化的產(chǎn)品。

程序轉(zhuǎn)換是把一種程序轉(zhuǎn)換為另一種的操作。而術(shù)語“程序轉(zhuǎn)換”也被用于描述實現(xiàn)程序轉(zhuǎn)換的算法。程序中被轉(zhuǎn)換的語言和編寫得到的程序所用的語言分別被叫做源語言和目標語言。

Adrian Thurston最近發(fā)布了Colm(計算機語言處理)的***個版本,這種語言被設(shè)計用來對計算機語言進行分析和轉(zhuǎn)換。

Adrian是在皇后大學(xué)(ON,Canada)讀博士期間開發(fā)了Colm。他解釋說:

一種轉(zhuǎn)換語言會擁有基于正規(guī)語言的類型系統(tǒng)。它不會定義類或是數(shù)據(jù)結(jié)構(gòu),而是會定義語法。根據(jù)語法會自動構(gòu)造解析器,而這個解析器會用于兩種目的: 解析輸入語言,并解析執(zhí)行分析的程序中的結(jié)構(gòu)模式。在這種設(shè)定中,基于語法的解析非常重要,因為它確保輸入和結(jié)構(gòu)化模式都從同樣的類型系列解析為樹狀結(jié)構(gòu),從而讓我們可以進行比較。
Colm的主要貢獻在于解析方法。

Colm的解析引擎是廣義上的,但是它也考慮到了對二進制全局數(shù)據(jù)結(jié)構(gòu)的構(gòu)建,那種結(jié)構(gòu)可以在解析過程中查詢。在其它廣義的方法中,對全局數(shù)據(jù)的構(gòu)建需要慎重的考慮,因為在解析方法中會存在固有的并發(fā)操作。這是一種非常巧妙的方法,經(jīng)??梢栽诳傮w上避免問題的發(fā)生,并把問題延遲到對解析森林在解析之后的后續(xù)處理中。 

使用Colm,我們可以在對輸入的***次遍歷過程中就獲得正確的解析樹,并確保某些回溯操作是可接受的。Colm讓我們不需要推斷對全局數(shù)據(jù)的并發(fā)更新,也不需要獲取很多可能的解析樹,只是把錯誤的拋棄即可。

元編程(也叫做面向元模型的編程)取得了很大進展,這多虧有了對語言工作臺和像Colm這樣強大的轉(zhuǎn)換技術(shù)的開發(fā)。你可能會使用一種嗎? 你已經(jīng)使用一種了嗎?你選擇的是哪種呢?

英文原文:http://www.infoq.com/news/2011/05/colm

【編輯推薦】

  1. PHP愛好者請堅定你們的信念!
  2. Java為什么如此深受廣大開發(fā)者的青睞?
  3. Javascript閉包(closure) 深入淺出
  4. 詳解各種編程語言,看看哪種語言最有“錢”圖
  5. 幾十種計算機語言簡介 你知道幾種?
責(zé)任編輯:于鐵 來源: Infoq
相關(guān)推薦

2010-01-13 17:04:36

C++語言

2011-05-11 11:20:26

Objective-C

2010-01-18 16:27:26

C++語言

2009-08-11 08:46:21

Snow動態(tài)編程語言

2011-05-30 08:42:59

D語言

2010-08-10 10:32:02

Flex語言

2010-06-10 18:27:00

UML語言

2009-07-15 17:27:30

Jython入門

2010-07-19 16:47:54

Perl

2009-10-28 17:44:31

VB.NET語言

2009-11-09 10:55:16

ibmdwUML

2010-03-15 16:12:34

Python編程語言

2009-09-02 17:10:45

C#語言入門

2014-06-04 10:52:56

Swift蘋果iOS

2010-03-12 10:48:22

Python編程語言

2014-06-03 10:44:20

Swift開發(fā)語言

2024-09-18 09:50:00

大模型AI

2020-05-25 09:06:58

Julia語言Python

2009-02-06 09:08:04

Scala函數(shù)語言輕量級

2010-01-14 17:18:17

C++語言
點贊
收藏

51CTO技術(shù)棧公眾號