0909走進編譯原理

1.編譯原理學什麼?程序員

   編譯原理這一學科,主要學習的是編譯器方面的原理與技術,咱們能從中學會各類算法與代碼的原理,明白計算機是如何「聽懂人話」,咱們的代碼是如何通過編譯器轉換成機器語言,這樣不只能實現本身去編寫簡單的小編譯器,也能經過此學科去接觸已有各編譯器的思想,認識到編程方面更多要注意的問題以及解決的方向,站在本質的角度看代碼,從而更能成就計算機專業人員的計算機邏輯思惟。算法

2.爲何要學編譯原理?編程

   說到編譯原理,人們喜歡把這門學科比做人體解剖和造輪子,是計算機中和代碼做鬥爭的一門學科。據本人理解,學編譯原理是爲了讓計算機專業人員更清楚計算機的工做過程,追溯更底層的編譯原理,令人再也不侷限於已有的死性代碼形式的約束,讓編程人員有更飽滿更獨立的編程思惟。就像畫家學解剖那樣,咱們學編程也許不是爲了作編譯器,而是從學習編譯的原理去掌握更多計算機本質的東西,這樣有利於咱們脫離對代碼的過分依賴,從而寫出更優質、更適合編譯器的代碼。按我的的理解是,沒學編譯原理,程序員只能是代碼的奴隸,學了編譯原理,代碼纔是你的工具,你才能真正明白代碼和編譯器是怎麼一回事,從而更好地利用它們,玩轉它們。此外,編譯原理做爲計算機中「追本溯源」的一門接地氣學科,掌握它還能提升本身對程序的檢查和分析能力,雖然說咱們不必定學了編譯原理都能作一個強大而創新的編譯器,但經過學習編譯原理,咱們能對編程有一種全新的認識,從徹底的被動到思想上的主動,這就是所謂工人與工程師的區別吧。工具

 

3.怎麼學編譯原理?學習

    編譯原理做爲一門本質性與理論性較強的學科,可能一開始入門的時候會略感枯燥難懂,於是須要作好心理準備,明白這一學科的實際上實用意義與重要性,從而提升本身的興趣,而後就是須要有必定的耐心,弄懂各類學術性詞句的意義與做用,這樣有利於對知識的透徹掌握。固然,任何理論都離不開實踐,尤爲是編譯原理,在學習的過程當中咱們更應該多動手,根據本身的想法去實踐,把課本上的知識轉換成屬於咱們本身的工具。設計

4.思考:在沒有學習本書理論以前,若是讓你寫一個編譯器,你是什麼思路?編譯器

      咱們都知道,機器語言其實只是0和1的組合,在不瞭解任何已有理論的狀況下,我以爲編譯器是將咱們編寫的代碼或命令轉化成不一樣的0、1組合,從而讓計算機實現工做。因此,若是我要作一個編譯器,我首先要知道我所編譯計算機的工做需求,而後把這些需求分類,從大分類到小分類,就像樹狀圖那樣越分越細。分類好工做需求後,又去分類二進制數字的組合,也是從大類到小類,最後把分類號的工做需求和二進制組合有規律地對應起來,舉個例子說,假如安排到00開頭是表示讓計算機輸出,那麼001是輸出數字,002是輸出個字符,後面數據越長,目的就越清楚,直到二進制數字長度足夠表達程序員的意思。就這樣,咱們就能成功地把二進制數據與工做需求創建起一個線性的關係,而這時候再去科學地制定代碼,根據有規律的語法讓咱們的代碼轉換成相應的二進制數據,二進制數據做爲計算機語言控制計算機的高低電頻率,從而實現不一樣的工做執行。編譯

設計過程:入門

     需求分類-->制定有規律二進制數據組合-->制定能編譯出相應二進制數據的代碼語法。編譯原理

運行原理:

     有規律的代碼-->有規律的二進制數據組合-->相應的高低電頻-->計算機實現工做。

相關文章
相關標籤/搜索