Re: [問題] C4拿來入門適合嗎?
※ 引述《Matz (void (*一資米)())》之銘言:
: 各位前輩大神好。
: 本魯最近想自己寫一個精簡C語言的編譯器。
: 看惹很多書,但都感覺有點拿以下手,中間卡住超多次。
: 最近看到C4 C in four function,程式碼很少大概500多行而已。
: 想問C4拿來入門合適嗎???
Robert Swierczek 最初撰寫 C4 [1] 的動機,是提取 swieros [2] 裡頭的 C 語言
編譯器程式碼,成為「火力展示」專案。swieros 這專案從自行定義的虛擬 CPU 及
指令集開始,一路撰寫組譯器、C 語言編譯器、開發工具程式、移植 MIT xv6 [3]
作業系統核心,甚至透過 para-virtualization 的手段,支援網路通訊和遠端 OpenGL
存取 (!) —— 全部 swieros 原始程式碼僅一萬餘行,但著實不好理解。北京清華
大學的陳渝教授 [4] 曾經跟我合作,嘗試擴充 swieros 作為作業系統課程教材,但
我們奮鬥一陣子後就放棄了,實在太難改了。
自 swieros 抽取出來的 c4 編譯器 (更多的實作在於解譯器) 支援更少的 C 語言
特徵,像是 struct 則付之闕如,而且程式碼過於精簡,閱讀起來頗為困難。基於教學
目的,我和成大的學生合作擴充 c4 編譯器,成為 AMaCC [5] (讀音是「阿嬤 CC」,
既然淡水阿嬤可讓朱立倫先生改變心意參選總統,我相信淡水阿嬤亦可鼓勵廣大的學子
勇於挑戰編譯器設計和開發),不僅支援更多 C 語言特徵,原始程式碼也有進行補強,
甚至能夠產生 ARM/Linux 的執行檔和支援 JIT 編譯 ——原始程式碼控制在 1500 行。
關於 AMaCC 的導讀可見:
https://hackmd.io/@sysprog/c-compiler-construction
搭配 Warren Toomey 整理的 A Compiler Writing Journey [6] 研讀,效果更佳。
[1] C4: https://github.com/rswier/c4
[2] swieros: https://github.com/rswier/swieros
[3] xv6: https://pdos.csail.mit.edu/6.828/2019/xv6.html
[4] 陳渝: http://soft.cs.tsinghua.edu.cn/~chen/
[5] AMaCC: https://github.com/jserv/amacc
[6] A Compiler Writing Journey: https://github.com/DoctorWkt/acwj
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.246.163 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/CompilerDev/M.1592671973.A.0D9.html
推
06/21 08:05,
5年前
, 1F
06/21 08:05, 1F
推
06/21 12:12,
5年前
, 2F
06/21 12:12, 2F
推
06/25 17:50,
5年前
, 3F
06/25 17:50, 3F
推
06/28 03:12,
5年前
, 4F
06/28 03:12, 4F
討論串 (同標題文章)