簡介:
編譯原理是計算機專業的一門重要專業課,旨在介紹編譯程式構造的一般原理和基本方法。內容包括語言和文法、詞法分析、語法分析、語法制導翻譯、中間**生成、儲存管理、**優化和目標**生成。
編譯原理是計算機專業設定的一門重要的專業課程。雖然只有少數人從事編譯方面的工作,但是這門課在理論、技術、方法上都對學生提供了系統而有效的訓練,有利於提高軟體人員的素質和能力。
編譯:就是將程式語言進行翻譯,生成可供使用者直接執行的二進位制**,即可執行檔案。
全部內容大致如課程目錄所示。
課程主講人: 廖力。個人感覺這個老師講的很不錯,條理清晰,邏輯分明。推薦一下。
編譯原理究竟難在**?筆者的體會,主要在這幾點:
1.錯誤認識: 很多人以為編譯原理只能應用在寫程式語言的編譯器上,覺得用處不大,學習興趣不高.而且可能覺得寫編譯器就必須完全手工來寫.
2.自動機理論: 象nfa,dfa之類,比較抽象,要費些腦子,特別如果學離散數學時沒有學自動機理論的話,更是需要多花點時間.
3.集合論的推演: 主要是一些閉包運算之類,數學基礎不好的話,學起來也會感到吃力.
4.lr文法: 主要是又引入了自動機
不管哪本編譯教材,即使是絕對經典」龍書」也不例外,都要涉及到這幾個難點.由於這些內容本身不好懂,作者有再大的本事,也很難把書寫得象**那麼流暢好懂. 明確了難點,接著想對策.大致有這麼幾種:
1.端正認識: 編譯原理在靜態文字處理上有廣泛的應用,舉個簡單的例子,把html檔案轉化為純文字,利用編譯原理來實現」非常」簡單.理解了編譯原理的實用性,大概可以提高學習興趣.
2.反覆看書: 這個辦法看起來最笨,卻是基本的方法.忘了是哪位名人說過,書只要多看,總能看得懂的.
3.結合原始碼來看: 這是經典教材compiler design in c的作者allen hollub建議的方法.這本教材的特色就是包含了大段yacc,lex的**.這也是個好方法,而且,只有看懂了**,才能說在根本上理解了理論.當然,要完全看懂yacc的**,工作量是很大的,而且同樣要先理解理論.
4.刪繁就簡,避重就輕.網上流傳較廣的一篇《編譯原理學習導論》(作者四川大學唐良)就基本是這種思路,對於詞法分析,作者避免了自動機理論和集合論推演的介紹,直接搬出原始碼來,大大降低了理解難度,對於語法分析,作者介紹了遞迴下降和ll文法及相應的原始碼,而對lr文法,只說」理解理論就可以了」.雖然這種方法迴避了對於難點的學習,但是用這種方法學習,可以在較短時間內編寫出乙個能夠執行的詞法分析器和語法分析器,可以大大提高學習積極性.
來自為知筆記(wiz)
《東南大學 編譯原理 64講》 學習筆記
簡介 編譯原理是計算機專業的一門重要專業課,旨在介紹編譯程式構造的一般原理和基本方法。內容包括語言和文法 詞法分析 語法分析 語法制導翻譯 中間 生成 儲存管理 優化和目標 生成。編譯原理是計算機專業設定的一門重要的專業課程。雖然只有少數人從事編譯方面的工作,但是這門課在理論 技術 方法上都對學生提...
10 16東南大學微軟招聘筆試經過
下面是考試內容.a卷 i basic 這個部分有近二十道多項選擇題和若干填空題,內容繁多零散,大部分是關於資料結構和c c 語言,還有關於軟體工程,測試方法,無狀態網路的一些題目 填空題是讀程式填結果,當然最後還有一道比較複雜的邏輯題目.回憶一下讀程式的題目和邏輯題目 int s int v ret...
東南大學 C 何潔月 教程內容
東南大學 c 何潔月 教程內容 目錄 上部內容簡介 第1講 語言的發展與簡介 第2講 物件導向 第3講 系統分析,進製 第4講 程式開發過程,二進位制補碼 第5講 c 概述,資料型別 第6講 常量與變數 第7講 接第6講,運算子 第8講 運算子 第9講 接第8講,控制結構 第10講 控制結構 第11...