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