Reactjs+BootStrap開發自制編程語言Monkey的編譯器:發刊詞

編譯原理幾乎是計算機專業中最晦澀難懂的課程。很多學生學這門課只不過是為了通過考試,學完后對編譯原理之精妙仍然是摸不著頭腦。而很多教這門課的老師,也只不過是混口飯吃,他自己未必對編譯原理有多少深入的了解和把握,于是與其昏昏,使人昭昭。畢業多年后,回過頭來反省我所承受的教育,我發現我們的教育總是流于表面的膚淺,給學生展示的始終是冰山的一角,對冰山下的巨大形體置若罔聞,于是整個系統雖然培養出大量的計算機專業人員,但有能力對計算機知識具備深入見解的人鳳毛麟角,很多人其實是走上工作崗位后,通過大量的生產實踐才開始對計算機知識有了一定程度的深入窺探的,我就是其中之一。

計算機始終是一門理論結合實踐的科學。光有理論卻不能實踐,那么理論看起來晦澀難懂,聽起來虛兒巴腦,于是美妙的智慧結晶在應試教育體制下變成了虛張聲勢的怪獸,讓學習它的人驚恐不慌,以為自己要被這只巨大的怪獸所吞滅。我是過來人,知道這種關說不練假把式的巨大危害,那種理論講起來頭頭是道,搞得我暈頭轉向,處處受挫的煎熬感真是不忍回憶,我真心希望通過動手實踐,能夠讓那些有志于在科技行業大展身手的年輕人不要再走我的老路。

如果人類只會談情說愛,那么早就滅絕了。因此愛的核心在做不在說,科學技術的理解和掌握更是如此。雖然我們處于技術大爆炸的時代,各種黑科技看似漫天飛舞,但無論外表如何變化,知識的底層邏輯都是一樣的,對于自然科技而言,它的底層邏輯是數學,而計算機科學它的底層邏輯是算法。你看當下最火熱的區塊鏈,人工智能,量子計算,其核心無一不是算法。當前很多人在技術領域碰到天花板,無法更上一層樓,說到底是因為自己熱衷于膚淺花哨的表面技術,不敢深入到更加復雜的技術內核去篤實自己的根基,致使后期乏力,很快就偃旗息鼓了。

編譯原理作為計算機科學的核心支柱,它集結了算法,架構設計,計算機硬件,形式語言等計算理論的核心要義,是計算機科學的集大成者,你看那些計算機的奠基性大牛,很多都是從編譯器的開發上打響名頭的,例如比爾蓋茨早期自己開發的basci編譯器,C++之父Bjarne Stroustrup,C語言之父丹尼斯.里奇,java之父James Gosling。當你聽到某個人是做編譯器的,你無需多想就知道這哥們肯定是個技術大牛,據說直到現在,能做出一個專業編譯器的人估計也就只能坐滿一間會議室大小的房間,我希望通過我的努力,能幫你在這個房間里擠出一個屬于你的座位!

我曾經花兩年的時間在網易云課堂上完成了一個編譯器的開發課程,我用java制作了一個C語言編譯器,這個編譯器不但能解釋執行C語言,同時還能把C語言編譯成java字節碼,使得C語言也能運行到java虛擬機上。視頻用java開發C語言編譯器

通過這個項目的開發,我獲取了不少經驗和教訓。一是原來課程過于糾結算法細節,這使得課程過度理論化,這使得不少人覺得門檻太高,學起來很吃力。第二,代碼運行在控制臺界面,缺乏圖形界面使得程序看起來很死板,缺乏活力。第三,代碼量過大,體系結構過于復雜,容易引發受眾的畏難情緒,因此課程加入的人多,能夠堅持的人很少。

為了彌補這些缺陷,我打算重新用Reactjs+BootStrap的方式開發一門新編程語言的編譯器,這么語言叫Monkey,它有點類似于javascript這種腳步語言,由于語法簡單,實現它的編譯器比實現C語言的編譯器要容易很多。Monkey語言具備編程語言的所有要素:
1, 有類似C語言的語法結構
2, 支持變量綁定
3, 支持整形和布爾型數據類型
4, 支持算術表達式的解析
5, 一級類定義(first-class)和高階函數(higher order functions)
6, 支持閉包,這點像javascript
7, 支持字符串數據類型
8,支持數組型數據類型
9, 支持哈希表型數據類型

之所以想到用Reactjs 和 Bootstrap 來開發,一來是前端開發能夠支持豐富多彩的用戶界面,這樣使得整個項目始終保持在生動活潑的狀態之下。而來當今前端開發,特別是基于Reactjs的前端開發炙手可熱,掌握該前端框架的工程師能夠在行業內獲取高薪就業機會。所以這么課程學下來能夠收獲一箭雙雕的效果,既能增加內在實力,又能增強外在的實踐技巧。金庸在《笑傲江湖》中,為令狐沖所在的華山派設置了兩個老死不相往來的分支,一支叫氣宗,以岳不群為首,氣宗講究內力心法,另一支叫劍宗,以馬云最喜歡的風清揚為首,劍宗講究運劍技巧的登峰造極。我們這么課程相當于把兩宗結合為一體,編譯原理的理解和掌握相當于氣宗,讓你內力深厚,具備穩若泰山之勢。Reactjs+Bootstrap的掌握相當于劍宗,技術的運用如行云流水,無往而不利。

自古華山一線天,成為高手沒有捷徑,只能是扎扎實實打基礎,勤學苦練增技能。消耗大量的心血和汗水必不可少,但我們完全可以讓這個過程有趣而又生動,沒有任何成就的取得是不用付出代價的,走捷徑將讓職業生涯是付出難以承受的代價,就如同你翻開葵花寶典后第一頁看到的那樣:欲練此功,必先自宮!

更詳細的講解和代碼調試演示過程,請點擊鏈接

如果您點擊鏈接后還沒有看到課程,那表明視頻還在審批中,盡情期待!

更多技術信息,包括操作系統,編譯器,面試算法,機器學習,人工智能,請關照我的公眾號:


這里寫圖片描述
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容