王垠博客 linux,前段时间花了一个通宵把王垠(Yin Wang)博客的所有文章看完了...
前段時間花了一個通宵把王垠的博客看完了,覺得還是受益匪淺的,所以也給大家談談感想。
首先說起王垠這個人嘛,最早了解他的是因為他那篇神一般的傳教洗腦文章《完全用Linux工作》,雖然后來被噴成狗。這篇文章在國內的Linux圈子里面非常有名,甚至可以說是國內Linux宗教里的一面旗幟了。雖然我不是完全因為這篇文章入的Linux大坑,但是不可否認當時的我也成功被煽動成了一個Linux腦殘粉…甚至到了現在我依然是一個VIM死忠(僅僅是習慣了)……后來隨著自己能力和思維的成熟,也慢慢摒棄了當年的偏執,變得更客觀更理性。
最近剛好又在自己折騰Lexer和Parser,而且剛好王垠還是PLT領域的專家,所以就想著順便看看他的文章,結果一看就停不下來了。看完了他所有的文章依然意猶未盡……
王垠文章吸引我的有兩點,其一是王垠這個人本身。從他身上讓我看到了一個真正的學者科學家該有的特質。他真正熱愛思考,熱愛自己的鉆研的領域,而不像很多人那樣只是混口飯吃而已。第二點就是他的文章給我了一個更高的視野去看待編程語言,同時點醒了我程序代碼是什么。
程序代碼本質就是格式化的數據,這跟xml或者json這種東西其實沒什么太大差別,然后依靠Parser把代碼解析成計算機可讀的數據結構。xml被解析成了dom樹,json被解析撐了hash表,而代碼被解析成了AST。
代碼的語法并不是程序語言本身,代碼的語法只是規定了一種數據的編碼格式,所以從AST開始,編程語言才真正的開始。在AST之前的Lexer、Parser干的事情都非常簡單,就是把代碼解碼成AST,讓計算機能讀懂。
最后,很多高深的語法分析,其實只是在解決一個自己創造出來的問題。設計過于復雜的語法,導致了需要非常復雜的語法分析來分析復雜的語法。而像Lisp這種語言,根本不需要復雜的語法分析,順序讀下來就是AST,這也是為什么王垠會那么喜歡Lisp。
當我想清楚這些問題以后,我就嘗試完全把代碼就當成一種結構化的代碼來解析,發現思路變得非常簡單清晰,根本不需要什么復雜的算法,不需要什么高深的知識就能非常輕松地解析代碼了。
我現在決定先不去抱著書看高深的理論,而是自己先用自己的頭腦來解決。等解決完了,再去看書。
總結
以上是生活随笔為你收集整理的王垠博客 linux,前段时间花了一个通宵把王垠(Yin Wang)博客的所有文章看完了...的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 最新软件测试面试题,常见面试题及答案汇总
- 下一篇: 图形学进阶——移动端TB(D)R架构基础
