編譯原理是不是計算機基礎課程中最難的?

時間 2021-05-31 02:47:00

1樓:

國內985本科編譯能教的大約是半本龍書組成的前端加乙個基本的後端,不難。

但是實踐的工作量大。認真做乙個編譯器至少兩三萬行C++的工作量,只有半個學期的時間,壓力很大。當然,compiler的可玩性不錯,不那麼枯燥。

2樓:

編譯原理我覺得不是最難的,或者是讀得很淺所以不覺得難。在計算機基礎課中最難的我覺得是作業系統,很難很重要,但是很少人會去重視,基本都是草草的上課草草的學了,不得精髓;次之演算法也很難,不止是理論,實際用用也難。

3樓:馮東

計算模型的「能力 (strength)」的定量比較:LL(n), LR(n), LALR 等等。

在 parsing 中利用資料結構和避免 explicit 資料結構的 trade-off。

可以說,學習 parsing 之於學些計算理論就像學習 OS kernel 之於資料結構和演算法。雖然理論並不嚴密,但是更接近 real world。非常有趣。

後端的 code generation,理論並不成熟。所以一兩本初始的教材也就是勉強讓你能寫乙個功能完整的 compiler 而已。說實話,即使你不看教材,在學會 parsing 之後摸黑寫乙個 target to C 的 compiler 也並不難。

Target to assemble/byte-code 這樣的沒有 branch-block 結構的 flat 語言稍微難一些。不過也僅僅是一些定勢。高階的優化技巧就是各路研究和工程 hack 的奇技淫巧了。

個人推薦可以看看 Lua 的 comiler。純粹的 one-pass,沒有 explicit AST,中間的 temporary tree 都是利用 runtime stack 來構建。不強調過多優化。

自學計算機課程是不是特別難?

MaxwellGeng 開門見山的說,看天賦。天賦這東西就很神奇,我看到不止乙個同學學計算機就和我學英語一樣困難,從小到大,累計有至少14個英語老師說過 你以前學習方法不對所以學不好,真不是你笨 得嘞,以前可以說學習法子不對啊,不認真學啊,反正都是看起來挺有道理的原因。關鍵是,我在燈塔呆了幾年,日常...

學習計算機組成原理 編譯原理 作業系統對學習程式設計有哪些幫助呢?

雲天明 瀉藥別的先不說,編譯原理可是有大用的。僅就編譯器前端 parsing 來說,人造語言,文法,自動機這些知識在處理字串方面相當有用啊,更別說自動機這個應用很廣泛的東西了。另外parsing不僅對編譯器有用,也為通用的字串處理提供了正規化。想想正規表示式吧 另外兩個似乎沒有直接的應用,要是說僅僅...

計算機考研408為什麼沒有考慮過編譯原理

我覺得主要是太難,學的人又少,本來平均分就不高,加了這個更多人不會。再有就是資料結構,計算機網路和作業系統是程式設計師必懂科目,組成原理雖然偏硬體,對搞軟體的沒那麼重要,但408作為全國統考要全面,就選取了組成原理。資料庫系統,編譯原理都屬於食之無味棄之可惜的意思,選取4科的情況下就不如資料結構,計...