日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
自創(chuàng)一門編程語言的14步

英文原文:How to Create a Programming Language

10年積累的成都網(wǎng)站制作、做網(wǎng)站經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先做網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有青銅峽免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

現(xiàn)在,很多人對他們現(xiàn)在每天使用的編程語言感到困惑和不解,他們都有各自的需求,無論你是一名職業(yè)的 IT 人員還是普通的開發(fā)愛好者,你可能想要創(chuàng)造一門新的編程語言。下面就來告訴你如何創(chuàng)造一門編程語言。

Step 1 對專業(yè)術(shù)語十分熟悉

寫編譯器的人通常會使用一些你不是那么熟悉的術(shù)語,所以你一定要在開發(fā)前先了解編譯器,確保你知道編譯的所有事情。

Step 2 確定這門語言的應(yīng)用領(lǐng)域

你要知道你的這門語言是用來解決某個特定領(lǐng)域的問題,還是通用目的的語言?

Step 3 思考這門語言的語義和概念

(1)允許直接的指針訪問嗎?

(2)這門語言提供哪些數(shù)據(jù)類型?

(3)這是一門靜態(tài)語言還是動態(tài)的語言?

(4)使用什么內(nèi)存模型?是有自動的垃圾回收機制還是需要手工管理內(nèi)存?

(5)如何處理并發(fā)性?你準備使用單進程/鎖模型,還是復(fù)雜一些的,像 Linda 或 actor 模型?

(6)語言中提供一些內(nèi)嵌的簡單函數(shù)還是所有的內(nèi)容都來自于類/函數(shù)庫?

(7)這門語言的范式是什么?是函數(shù)式的,面向?qū)ο蟮模嫦蚍矫娴?,模板式的,還是一種原型,或就是徹頭徹尾全新的?

(8)這門語言和現(xiàn)存的庫或函數(shù)的接口是如何的?如果你是在創(chuàng)建某一領(lǐng)域特定的語言,這點就尤其重要。

(9)***,這里面的一些問題如果想有很好的答案,需要先做好第二步。

Step 4 思考人們想用這門語言做的事情

比如說,一些人想利用它指揮機器人,一些人想用它開發(fā)移動端的桌面程序或是用它開發(fā) Web 應(yīng)用。

Step 5 利用上面的例子測試語法

注意應(yīng)該讓你的語言屬于上下文無關(guān)范疇或是它的子類別,這在以后對你和你的語法分析程序都是件好事。

Step 6 寫出正式的語法規(guī)則

Step 7 確定這是一門解釋型語言還是編譯型語言

它意味著如果這是一門解釋型語言,你的用戶通常會在編輯器里寫程序,然后直接在解釋器中運行。但是對于編譯型語言,你的用戶會寫代碼,編譯,然后將可執(zhí)行程序存到別的地方,單獨運行。

Step 8 寫好語法分析器或借助工具幫助你

想好如果用戶的程序出現(xiàn)語法錯誤,你的編譯器或解釋器將給出什么樣的警告?

Step 9 使用語法分析器信息寫目標代碼

Step 10 寫好執(zhí)行程序或代碼生成器

Step 11 寫出足夠多的測試程序來檢測這門語言

你希望創(chuàng)造出一門正規(guī)的語言,它的編譯器可以明確的接受定義范圍內(nèi)的所有的內(nèi)容,而拒絕這之外的一切內(nèi)容。

Step 12 考慮用戶如何調(diào)試自己的程序

Step 13 如果你的語言使用標準類庫,你要寫好它

特別是,如果你寫一個編譯器,你需要這么一段代碼,讓操作系統(tǒng)執(zhí)行它從而開始運行用戶程序。

Step 14 發(fā)布這門語言的同時加上它的說明書和一些附屬例子

不要忘記注明你是如何整合這些庫和語言的,如何使用運行時間的特性和標準類庫。


本文標題:自創(chuàng)一門編程語言的14步
鏈接分享:http://www.5511xx.com/article/cciisde.html