回覆列表
  • 1 # 呼號BI1DXB

    很簡單,學完《計算機組成原理》、《編譯原理》、《資料結構和演算法》、《設計模式》、《彙編》等,並掌握一門高階語言,差不多就可以開始搞了。

    如果真的有興趣的話,先看看Lua直譯器(編譯器)原始碼,總共才不到2萬行。看懂別人了的自己再仿照著寫。

  • 2 # 崟嶽論軟體

    編譯器分為詞法分析、語法分析、語義分析、根據你獲取的語義轉換成目標語言的實現。這些步驟可以分階段處理,也可以混合處理。

  • 3 # 哼哼online

    編譯器分幾個部分,都需要一些計算機基礎知識,具體不說了。

    1、語法分析器、語義分析器,將你設計的語言的語法、語義分析後瞭解程式設計師的用意。

    語法語義分析等網上有很多開源專案,可以參考。

    將程式的意思分析後用目標語言描述一遍,於是需要程式碼生成器。

    2、程式碼生成器,將源語言的程式,用目標語言寫出來。目標語言最終是彙編,通常先做成中間語言,然後將中間語言翻譯成機器語言,這樣便於不同平臺之間的移植。

    最後

    自己寫編譯器,現在肯不是為了掙錢,就是學習為目的,那麼有個偷懶的辦法,就是目標語言用比熟悉的一種高階語言寫,如C語言,編譯器分析後用程式碼生成器將源語言程式用C語言寫一遍,然後C語言透過C的編譯器編譯連結後執行,對比程式執行結果,驗證編譯器的正確性。

    開始可以設計一個簡單語言,整個過程完成了,就可以增加語言的語法難度,使之有一定的實用性。進一步就是編寫更有效的目的碼,形成自己的支援庫,從而發展成一種獨立有效的程式語言。

  • 4 # 噴子來啦好熱鬧

    首先要懂得編譯原理,之前需要造輪子,現在有輪子就是llvm,可以在此基礎上做自己的編譯器,clang、swift就是在此基礎上開發的編譯器

  • 中秋節和大豐收的關聯?
  • 責無旁貸的貸意思?