在現在,作為乙個程式猿不可能不知道編譯原理的大名,編譯原理可以說是乙個電腦科學的縮影,是計算機專業的一門重要專業課,旨在介紹編譯程式構造的一般原理和基本方法。內容包括語言和文法、詞法分析、語法分析、語法制導翻譯、中間**生成、儲存管理、**優化和目標**生成。
編譯原理是計算機專業設定的一門重要的專業課程。如果能夠熟練的運用編譯原理,無論是對於我們的生活還是工作都有極大的促進作用。
雖然只有少數人從事編譯方面的工作,但是這門課在理論、技術、方法上都對學生提供了系統而有效的訓練,有利於提高軟體人員的素質和能力。
有人可能認為編譯原理並沒有什麼用,但是其思想會讓你受益終生,讓你能夠運用編譯原理去實現「上帝」的感覺,能夠對自己寫的程式有更加深刻的認識。
其實編譯原理不學看起來也好像並沒有什麼,但以後你估計成為一輩子碼農,想要有更大的進步空間是沒有多大可能了,雖然編譯原理在工作中不常用,但也不是一定用不到,任何事物都有其存在的必要,要不然編譯原理也不可能存在於世,等真正要用到編譯原理的時候,臨時抱佛腳,也不知道來不來得及,學多一門技術防身也是不錯的,畢竟編譯原理對於我們程式猿來說也有不小的啟發和幫助。
很多人覺得學編譯原理很難,我也查了一下資料,在剛開始的時候就不要去看什麼《龍書》、《虎書》之類的高難度編譯原理方面的書籍,那樣會嚴重打擊自己的耐心和信心,選一些比較簡單的書籍進行學習,最簡單的應用,可以放下詞法、語法分析等概念,直接用你會的語言去實現,有時你會發現寫得很」繞「,雖然有了正規表示式會方面不少,然後你可以試著用各種工具:yacc/lex, antlr, flex/bison, parsec, ply..用什麼無需計較,順手、達到目標就行。這些工具通常只是方便詞法、語法分析, 語義上的要自己處理,不滿於處理簡單的文字,想分析真正意義上的程式語義,或者希望深入理解自己所用工具的原理,這時候你可以去看那些理論的書了。
如果真的說如何學習編譯原理,我想最好的辦法就是練習、實踐。雖然編譯原理被冠以原理二字,但是我認為這也是乙個高度實踐的課,而且編寫的**是每一步都需要小心處理的,如你編寫的parser的產生式,只要修改乙個小地方,都會如同蝴蝶效應般影響非常大。總的來說,我認為學習編譯原理的乙個辦法就是安靜下來,耐耐心心的讀一本經典的編譯原理教材,然後做完每一道習題,隨後再自己編寫乙個玩具編譯器,你可以借助llvm的力量輕易達到這一點兒。
還是那句話,一切走心,雖然現階段編譯原理對我們來說還很陌生,但對於科技日益發展的今天,等我們出去工作了之後所不定就普遍運用了,編譯原理還是很重要滴。
對於產品抄襲的一些看法
關於抄襲,說點我自己的看法。首先我覺得 抄襲 本身並不可恥。乙個團隊 乙個企業,想偉大之前首先要確保自己能夠活到偉大的時候,而 抄襲 就是最好最安全的途徑。模仿是人類學習提高的最主要手段,這是自然規律。通過模仿,可以積累經驗,發現問題,最終找出優化的辦法來。乙個團隊如果一上手就大肆批判抄襲,號稱自己...
編譯原理的看法
編譯原理是什麼 對程式語言的翻譯,即對高階程式語言翻譯為低階語言 計算機所理解的語言 從源語言提取需要的資訊 把源語言翻譯成目標語言 自動生成滿足一定規範的文字。學習編譯原理有什麼好處?學了不一定知道怎麼用,但是不學就肯定沒用。享受上帝的感覺 1 可以更加容易的理解在乙個語言種哪些寫法是等價的,哪些...
個人對於套接字的一些理解!
本人還是一名在校大學生,最近在讀behrouz a.forouzan和firouz mosharraf寫的 計算機網路教程 自頂向下方法 今天剛剛看到講述套接字的部分,有一些感想,遂記錄下來。我們都知道,按照目前網路的分層方法,可以將計算機網路分成五層,應用層,運輸層,網路層,資料鏈路層,物理層。其...