下一版本編程語言Dem應該具有的功能

前言

關於自制的編程語言的設計,我已經在lang:使用BNF範式設計一個文法lang:總結9種編程語言的語法來設計自己的編程語言Suatin-langlang:談談自制編程語言1 這幾篇中,寫下了諸多矛盾的要求。單單看語句結尾是什麼這一點,開始想做成lua那樣的可用分號可不用,後來改成必須用換行,到製作中因爲不想處理\n了,乾脆又全改成了分號結尾——

一開始意氣風發打算提供一堆炫酷的功能,想隨便花一個月就把一門功能完備的類C語言給做出來,現在卻是三個月已過,雖然代碼有6000行,但是邏輯混亂不堪,使用的方法特別愚蠢。現在語言也只能做分支和循環,,,,,,難受,做完後也沒有什麼成就感!我之前一直陶醉在自我滿足中嗎?果然累不能代表真做事了!做人要輕鬆點,,,,,

雖然很差,但是這門語言我還是打算做,當然是重做啦!先給來一手豐富的編譯原理知識,做一堆百度知道上別人提的問題——百度知道挺好用的,比如有些人和我一樣學到了某個程度,他問的問題就給我來了一次測驗,共同進步——

這次花了這麼多時間,我證明了沒有編譯原理的知識也能做編程語言!但是如果有了編譯原理的知識的話,做的會更好,也會走的更遠,不會像現在這樣早早停下腳步!

  \;
  \;

Dem要求:

GUI編程,能直接操控窗口。沒這個真活不下去,做了好久沒有效果能行嗎?需要給自己一點刺激,提供給自己一點滿足感。之前只想着把IO和文件處理做了,反正什麼東西都能用文件表示。現在我的知識沒法驗證之前想的對不對,畢竟我還沒做到那個地方。

字節碼,根據大佬@碼農翻身
的漫畫,字節碼部落中和了編譯和解釋,是發展最好的方式了。既可以根據字節碼解釋運行,也可以編譯成PE文件運行。之後要研究下java虛擬機和java字節碼了,自己設計自己的字節碼吧。

WebAssembly,聽說很牛逼,我就立個旗。(吹牛逼就是要放肆的吹)

支持中文,這點我之前都沒試過。。。。

Meta-programming,程序更改程序?之後認真去了解了解,我覺得有趣(也許就是操控文件吧)

靜態數據類型,避免錯誤的類型推導。

大數計算,直接支持特別大的數字的運算,不用像Java裏的BigDecimal一樣還要特別搞成對象!大數不止是數目大,可能小數也大,反正處理起來相似,區別是各自的精確度不同,要省略的位數和位置也不同。

安全性不重要,速度才重要,速度一定要快,爲此可以捨去空間和安全。

異常信息定位準確,這個太讓人難受了,很多錯誤都描述不清楚。描述不清楚的東西就沒意義了。

捕獲異常,這個沒試過,我僅僅給Suatin增加了一個assert;單步調試,捕獲異常該怎麼做?之後再瞭解吧。

語法直接抄C++和LUA吧,反正語言的設計也沒什麼好設計的,設計語言不是個事。像C++一樣提供命名空間和類,類的實現只能寫在類裏面,這點和processing一樣。

,很方便的功能,我上次項目裏使用了好幾個宏,直接替換就不會涉及什麼類型檢查。

再修改一下,比如語句塊不用花括號,而是使用end。

所有的源碼文件都是.dem類型

去掉必須從main函數開始的要求,而是像python一樣提供一個__main__的屬性,表示是否從此文件開始運行的。

數據結構就設計一個vector。同時也就說明Suatin語言需要模板,需要模板也就需要類型推導,,,,,算了,反正類型推導只在模板處使用。
有了vector還不行,還要有字典。。。。不說了,按這個的話,那就沒完沒了了

分支是if-elif-else,循環do-while改成do-until,和上一個項目一樣,滿足條件退出循環!
函數調用時,允許不接受返回值。判斷時,允許非布爾量,允許賦值——這也是爲了速度,減少安全性!減少檢查步驟!

支持多線程,提供了GUI能不提供多線程嗎?

簡單來說

  1. 完整的功能
  2. 有趣的語法
  3. 方便高效
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章