每次做
程式設計實驗都有這種感覺:1.不會啊,真的不知道從何處下手啊,讓我死吧!!!
2.拿到了別人做好的。好開心啊,我來改改,肯定能改好
3.怎麼改來改去就是不對呢,好煩啊,應該有點小問題,問問大神吧
4.大神說:你這是什麼鬼,全都不對啊,很不對啊,你咋改的,我的天……
5.我不做了,好想死,大神,求求你,順便幫我改改吧
我們在之前的幾篇文章裡學習了compiler的全流程,從lexer到parser再到compiler都學習了一遍。
更重要的是,我們學習了計算機語言處理的四種形式:
1. pure interpreter
2. interpreter
3. compiler
4. incremental compiler
明白了並不是所有的情況下都需要嚴格按照lexer->parser->compiler這樣的方式來process計算機語言。
實際上我們在日常的寫**過程裡,很多時候已經在不經意間自己寫了很多"lexer","parser","interpreter"。比如我們可能有時候會手寫一段**,讀取文字,然後處理文字。
首先,讀取文字和查詢模式的過程落入lexer的範疇。這種情況下,我們要想想,是不是應該用正規表示式來做這件事情,而不是手寫**。
然後,處理文字也包含多種情況,比如:根據某種規則替換文字。這時我們要想想是不是應該用`sed`,`awk`以及類似的文字處理工具,結合`grep`和其它文字匹配工具來完成相關工作,再用shell指令碼將不同的工具粘連在一起。
處理文字還有一種形式就是把讀入的文字當作某種命令形式,根據讀入的內容執行相關的動作。這其實就落入了interpreter的範疇,遇到這種情況,我們就需要想想,自己是不是應該用flex+bison或者antlr這種工具來寫乙個小型的dsl,而不是自己造輪子。
因此學習的邊界是很重要的,把自己的邊界擴大,完善自己的工具箱,有時可以解決好多時間,把機械勞動的成本轉化成學習成本,進入更高階,可以使得自己的視野更加開闊。
最近的狀態不是特別好,太閒適了,2個禮拜沒看書。。。乙個越美看
程式設計了。。。不行。這狀態不好。這樣吧以後每天看一節程式設計課,睡前半個小時看一下**分析的書,每天做到早睡。買了艾草泡腳應該有助於睡眠。第4本詞書開始背了。希望在年前背完。過年前暫時就想那麼多了。。。。thx2016滿滿當當的一年
如何快速學會程式設計
最近一段時間都在忙著教新人如何進行程式設計。目前來看效果不盡理想。但是對於小公司而言,建立一套行之有效的培訓方式,是至關重要的。同時不得不說一下,現在學校剛畢業的學弟學妹們,學到的東西還真不敢恭維。在一開始的時候,我就犯了乙個致命的錯誤。假設新人都有一定的基礎了。然後以戰帶練的方式進行,結果是慘不忍...
十年學會程式設計
我很少在自己的blog上推薦什麼。一則是怕推薦錯了,二者是怕耽於自己的個人喜歡,擾了別人的視聽。所以我的鏈結裡頭,除了老婆 自己,就剩下乙個hello world了。文章不長,甚至都可以嫌它短。但第一段就給人耳目一新的感覺。事實上,我從 年開始第一次為商業產品書寫 到現在也正好十年。我以前覺得自己 ...
十年學會程式設計
我很少在自己的blog上推薦什麼。一則是怕推薦錯了,二者是怕耽於自己的個人喜歡,擾了別人的視聽。所以我的鏈結裡頭,除了老婆 自己,就剩下乙個hello world了。文章不長,甚至都可以嫌它短。但第一段就給人耳目一新的感覺。事實上,我從 年開始第一次為商業產品書寫 到現在也正好十年。我以前覺得自己 ...