編譯器 -- C 語言實作

編譯器設計

編譯器簡介

高階語言

語法理論

剖析器

語意理論

符號表

直譯器

型態系統

中間碼

目標語言

最佳化

錯誤處理

進階議題

原始碼下載

程式實作

C 語言

案例研究

JavaScript

V8

Lua

Oberon

NeoPascal

pcc

tcc

gcc

C--

Lex

YACC

AntLR

LLVM

CLang

訊息

相關網站

參考文獻

最新修改

簡體版

English

  1. 使用 C 生成運算式
  2. expc 運算式編譯器 (字元版) — 只能有一個字母的數字,例如:3+5*8-7
  3. exp 編譯器 — 數字與變數長度可多字,例如:32+5*(182+degree*4-20)
  4. assign 編譯器 — 指定式編譯器,例如:result=32+5*(182+degree*4-20)
  5. base 編譯器 — 連續指定式編譯器,例如:a = 3*5+8;b=4;c=a+b;
  6. if 編譯器 — 有 if, exp, set, block 的編譯器。
  7. for 編譯器 — 有 for, while, if, exp, set, block 的編譯器。
  8. def 編譯器 — 有函數,for, while, if, exp, set, block 的編譯器。
    • def2 編譯器 — 開始轉向 type 編譯器,將原本 tag 為字串型轉為 enum。
  9. type 編譯器 — 有形態宣告的編譯器,可宣告函數型態。
    • type2 編譯器 — 有形態宣告的編譯器,可宣告變數型態。
    • type3 編譯器 — 有形態宣告的編譯器,可連續宣告變數型態 (EBNF 語法)。
  10. type3bnf 編譯器 — 有形態宣告的編譯器,可連續宣告變數型態 (BNF 語法)。
    • bnf2 編譯器 — 有形態宣告的編譯器,可連續宣告變數型態 (BNF 語法)。
    • bnf3 編譯器 — 完全 BNF 化,沒有 EBNF 了。
  11. cc0pcode 編譯器 — 加入 pcode Structure。
    • cc0psem — 加入 pcode 語意結構。
    • cc0psem2 — 加入 pcode 語意結構。
  12. cc0 編譯器 (0.5 版) — 幾乎就是 C 語言的簡單版了。
  13. cc0 編譯器 (0.6 版) — 加上 pcode 虛擬機,可直接執行 (未完成、會當)。
  14. cc0 編譯器 (1.0 版) — 加上 pcode 虛擬機,可直接執行 (單一 C 語言檔 cc0v1.c)。
  15. cc0 編譯器 (1.1 版) — 掃描器獨立出來 (開始變成多程式檔了 cc0.h, cc0.c, scanner.c, cc0lib.c)。

Facebook

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License