怎樣才能學好編譯原理
Ⅰ 如何學習編譯原理
編譯原理是本科計算機課程中最難的一門了,因為它實在是太抽象了,而且學過之後很容易忘記,但是它又是非常重要的一門課程,起到了承上啟下的作用。
學習編譯原理,不要死看課本,課本都是翻譯國外的,讀起來有點吃力。結合習題是比較好的,可以理解一些概念。
另外,可以用lex和yacc實現一個詞法分析器和語法分析器,如果這兩個實驗跑通了,對你學習編譯原理的學習非常有幫助。
Ⅱ 想要自學編譯原理,需要先學好哪些先修課給點好的學習建議。
首先要弄清楚編譯原理的本質。
編譯本質上就是翻譯,將一種語言翻譯成另一種語言,並且保證含義不變。
而編譯軟體大致分為
詞語分析、語法分析、語義分析以及其他部分。
詞語分析就分析一串串字母哪些屬於一個詞。
語法分析就是分析一串串詞哪些符合語法規則, 哪些不符合語法規則。
語義分析就是分析符合語法規則的詞,在特定語法規則下表達了什麼含義。
這是編譯軟體的前端,後端就是將這些含義轉換相應的機器指令。
Ⅲ 如何學好計算機編程
1.扎實的基礎。數據結構、離散數學、編譯原理,這些是所有計算機科學的基礎,如果不掌握他們,很難寫出高水平的程序。據我的觀察,學計算機專業的人比學其他專業的人更能寫出高質量的軟體。程序人人都會寫,但當你發現寫到一定程度很難再提高的時候,就應該想想是不是要回過頭來學學這些最基本的理論。不要一開始就去學OOP,即使你再精通OOP,遇到一些基本演算法的時候可能也會束手無策。
2.豐富的想像力。不要拘泥於固定的思維方式,遇到問題的時候要多想幾種解決問題的方案,試試別人從沒想過的方法。豐富的想像力是建立在豐富的知識的基礎上,除計算機以外,多涉獵其他的學科,比如天文、物理、數學等等。另外,多看科幻電影也是一個很好的途徑。
3.最簡單的是最好的。這也許是所有科學都遵循的一條准則,如此復雜的質能互換原理在愛因斯坦眼裡不過是一個簡單得不能再簡單的公式:E=mc2。簡單的方法更容易被人理解,更容易實現,也更容易維護。遇到問題時要優先考慮最簡單的方案,只有簡單方案不能滿足要求時再考慮復雜的方案。
4.不鑽牛角尖。當你遇到障礙的時候,不妨暫時遠離電腦,看看窗外的風景,聽聽輕音樂,和朋友聊聊天。當我遇到難題的時候會去玩游戲,而且是那種極暴力的打鬥類游戲,當負責游戲的那部分大腦細胞極度亢奮的時候,負責編程的那部分大腦細胞就得到了充分的休息。當重新開始工作的時候,我會發現那些難題現在竟然可以迎刃而解。
5.對答案的渴求。人類自然科學的發展史就是一個渴求得到答案的過程,即使只能知道答案的一小部分也值得我們去付出。只要你堅定信念,一定要找到問題的答案,你才會付出精力去探索,即使最後沒有得到答案,在過程中你也會學到很多東西。
6.多與別人交流。三人行必有我師,也許在一次和別人不經意的談話中,就可以迸出靈感的火花。多上上網,看看別人對同一問題的看法,會給你很大的啟發。
7.良好的編程風格。注意養成良好的習慣,代碼的縮進編排,變數的命名規則要始終保持一致。大家都知道如何排除代碼中錯誤,卻往往忽視了對注釋的排錯。注釋是程序的一個重要組成部分,它可以使你的代碼更容易理解,而如果代碼已經清楚地表達了你的思想,就不必再加註釋了,如果注釋和代碼不一致,那就更加糟糕。
8.韌性和毅力。這也許是"高手"和一般程序員最大的區別。Agoodprogrammingis99%sweatand1%coffee。高手們並不是天才,他們是在無數個日日夜夜中磨練出來的。成功能給我們帶來無比的喜悅,但過程卻是無比的枯燥乏味。你不妨做個測試,找個10000以內的素數表,把它們全都抄下來,然後再檢查三遍,如果能夠不間斷地完成這一工作,你就可以滿足這一條。
Ⅳ 覺得《編譯原理》這門課很無聊,又想學好它,有什麼建議嘛
完全不理解,在我看來,編寫程序員的原則,就像沒有畫家研究人體解剖學一樣,當然沒有說不能肯定的成功,但是如果你有一個更好的基礎,就可以提高成功的機會。在底層的情況下,上層的描述將更加真實和生動。
同時,在學習了這門課程後,對於開發者來說,他將開始使用自己的知識發展,享受「上帝」的感覺,嘗試創造一種語言,我想這種感覺不是每門課程都能帶給你的。完成這個過程之後,我相信,當你真的,你寫程序,編程語言對你將有一個深入了解這些知識的本質會讓你站的高度完全不同,如果你學習好,真的,我認為其他的人看到的是語法,你看到背後的實現,這種感覺真的很好,不信你試試。有這么多好處,無論如何都有充分的理由努力學習。
Ⅳ 編譯原理怎麼學啊
編譯原理很難學,必須自己動手編,而且不要想一口吃成胖子,從詞法分析開始寫,一步步來,下個龍書電子版看看。
Ⅵ 如何學好編譯原理
認真聽課,多動手編程
編譯原理肯定有大實驗的,到時候別偷懶,自己動手編程就行了
學習計算機不就是靠自己多動手嗎?
Ⅶ 編譯原理要怎麼才能學好啊,好難啊...
數學基礎要好一點。
Ⅷ 編譯原理應該怎麼學
離散數學-》數據結構-》操作系統-》匯編原理-》編譯原理
匯編原理之前還有們微機原理,要學的東西很多,這幾門都能
學好已經「很"不錯了
Ⅸ 學習編譯原理,需要什麼基礎
編譯原理內容包括語言和文法、詞法分析、語法分析、語法制導翻譯、中間代碼生成、存儲管理、代碼優化和目標代碼生成。
主要是講怎麼做程序的編譯器。
需要數學基礎和很強的邏輯思維。
編譯原理里的字元閉包是指有限循環。關於閉包這些名詞解釋,你們的課程應該有離散數學吧?會有對這些概念的解釋。
編譯原理這書啊。得花老大精力去看了。每一行都會是至關重要的。如果你漏看了哪一節,或許接下來看到的新字母就不知道是什麼意思了。
所以要反復看,反復用邏輯思維推敲。做習題,習題類型也就幾種,做熟了就很簡單