在如今,做爲一個程序猿不可能不知道編譯原理的大名,編譯原理能夠說是一個計算機科學的縮影,是計算機專業的一門重要專業課,旨在介紹編譯程序構造的通常原理和基本方法。內容包括語言和文法、詞法分析、語法分析、語法制導翻譯、中間代碼生成、存儲管理、代碼優化和目標代碼生成。正則表達式
編譯原理是計算機專業設置的一門重要的專業課程。若是可以熟練的運用編譯原理,不管是對於咱們的生活仍是工做都有極大的促進做用。工具
雖然只有少數人從事編譯方面的工做,可是這門課在理論、技術、方法上都對學生提供了系統而有效的訓練,有利於提升軟件人員的素質和能力。學習
有人可能認爲編譯原理並無什麼用,可是其思想會讓你受益終生,讓你可以運用編譯原理去實現「上帝」的感受,可以對本身寫的程序有更加深入的認識。flex
其實編譯原理不學看起來也好像並無什麼,但之後你估計成爲一生碼農,想要有更大的進步空間是沒有多大可能了,雖然編譯原理在工做中不經常使用,但也不是必定用不到,任何事物都有其存在的必要,要否則編譯原理也不可能存在於世,等真正要用到編譯原理的時候,臨時抱佛腳,也不知道來不來得及,學多一門技術防身也是不錯的,畢竟編譯原理對於咱們程序猿來講也有不小的啓發和幫助。優化
不少人以爲學編譯原理很難,我也查了一下資料,在剛開始的時候就不要去看什麼《龍書》、《虎書》之類的高難度編譯原理方面的書籍,那樣會嚴重打擊本身的耐心和信心,選一些比較簡單的書籍進行學習,最簡單的應用,能夠放下詞法、語法分析等概念,直接用你會的語言去實現,有時你會發現寫得很」繞「,雖然有了正則表達式會方面很多,而後你能夠試着用各類工具:yacc/lex, ANTLR, flex/bison, parsec, ply..用什麼無需計較,順手、達到目標就行。這些工具一般只是方便詞法、語法分析, 語義上的要本身處理,不滿於處理簡單的文本,想分析真正意義上的程序語義,或者但願深刻理解本身所用工具的原理,這時候你能夠去看那些理論的書了。翻譯
若是真的說如何學習編譯原理,我想最好的辦法就是練習、實踐。雖然編譯原理被冠以原理二字,可是我認爲這也是一個高度實踐的課,並且編寫的代碼是每一步都須要當心處理的,如你編寫的Parser的產生式,只要修改一個小地方,都會如同蝴蝶效應般影響很是大。總的來講,我認爲學習編譯原理的一個辦法就是安靜下來,耐耐心心的讀一本經典的編譯原理教材,而後作完每一道習題,隨後再本身編寫一個玩具編譯器,你能夠藉助LLVM的力量輕易達到這一點兒。get
仍是那句話,一切走心,雖然現階段編譯原理對咱們來講還很陌生,但對於科技日益發展的今天,等咱們出去工做了以後所不定就廣泛運用了,編譯原理仍是很重要滴。編譯器