Re: [問題] C4拿來入門適合嗎?

看板CompilerDev作者 (松鼠)時間5年前 (2020/06/20 16:52), 編輯推噓4(400)
留言4則, 4人參與, 5年前最新討論串2/4 (看更多)
※ 引述《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
jserv大大出現了 <(_ _)>
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
文章代碼(AID): #1UxZxb3P (CompilerDev)
討論串 (同標題文章)
文章代碼(AID): #1UxZxb3P (CompilerDev)