編譯原理開坑中……

編譯原理


簡介前端

  • 編譯器和解釋器後端

    /*
    
    input --> C --> output  可執行的程序       offline
    
    input --> I --> output 結果           online
  • /* 編譯器的結構
    
    I --> 前端 --> 後端 --> O
    
    詳細:
    
    I --> 【詞法 --> 語法】-->【指令生成 --> 優化】 --> O

  • 棧式計算機post

    /* 
    
    兩條指令 push add
    
    僞代碼
    // push 是壓棧的意思
    
    push 1
    push 5
    push 6
    
    add {
      x = pop();
      y = pop();
      z = x + y;
      push z
    }
    
    
    
    任務:編譯程序 1 + 2 + 3 到棧式計算機
    
    「1 + 2 + 3」 --> 語法分析 --> (+)  --> 代碼生成(樹的 post order) --> stack
                            /    \
                           (+)   (3)
                          /   \
                          1    2
    
      n 表明數字
    (1)   n: push n
     (2)   +: add
    
    
    
     總結:
      --> 前端 --> 語法樹 --> 後端 --> 代碼生成
    
      優化:
    
      --> 前端 --> 語法樹1 --> 優化 --> 語法樹2 -->後端 -->
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息