自創一門編程語言的14步

jopen 10年前發布 | 15K 次閱讀 編程語言

自創一門編程語言的14步

        英文原文:How to Create a Programming Language

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

        Step 1 對專業術語十分熟悉

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

        Step 2 確定這門語言的應用領域

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

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

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

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

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

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

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

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

        (7)這門語言的范式是什么?是函數式的,面向對象的,面向方面的,模板式的,還是一種原型,或就是徹頭徹尾全新的?

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

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

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

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

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

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

        Step 6 寫出正式的語法規則

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

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

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

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

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

        Step 10 寫好執行程序或代碼生成器

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

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

        Step 12 考慮用戶如何調試自己的程序

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

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

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

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

        譯文: http://www.php100.com/html/it/focus/2014/1202/7956.html
        翻譯:PHP100_Zeroing

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!