如今,不少人對他們如今天天使用的編程語言感到困惑和不解,他們都有各自的需求,不管你是一名職業的 IT 人員仍是普通的開發愛好者,你可能曾經想要創造一門新的編程語言。下面就來告訴你如何創造一門編程語言,若是你可以作到這 14 點的話,說不定那時候的你真的已經成功了呢!編程
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 發佈這門語言的同時加上它的說明書和一些附屬例子
不要忘記註明你是如何整合這些庫和語言的,如何使用運行時間的特性和標準類庫。
其實作爲一個開發者,有一個學習的氛圍跟一個交流圈子特別重要這裏我推薦一個C語言C++交流Q羣951726787,無論你是小白仍是轉行人士歡迎入駐,你們一塊兒交流成長。