顯示廣告
隱藏 ✕
※ 本文為 MindOcean 轉寄自 ptt.cc 更新時間: 2019-04-22 09:48:28
看板 Gossiping
作者 jserv (松鼠)
標題 Re: [問卦] C語言編譯器用哪個才夠專業?
時間 Mon Apr 22 05:00:53 2019


※ 引述《qazStarStar (我不是派大星)》之銘言:
: 鄉民好像很不推DevC欸
: 那
: 專業的鄉民都推什麼編譯器
: Netbeans還是微軟的VS還是啥的
: 點解?

我只聽過 Dev-C++ [1],不知何謂 DevC。

衛生棉的廣告台詞:「做自己,好自在」,當然要自幹開發工具,才會「自在」呀。
媽祖托夢要我自幹編譯器 (compiler),然後我順便連編輯器 (editor) 也寫好了,
原始程式碼更新於 GitHub,歡迎指教:


* MazuCC (媽祖 C 語言編譯器): https://github.com/jserv/MazuCC
GitHub - jserv/MazuCC: A minimalist C compiler with x86_64 code generation
[圖]
A minimalist C compiler with x86_64 code generation - jserv/MazuCC ...

 
* Mazu Editor (媽祖程式碼編輯器): https://github.com/jserv/mazu-editor
GitHub - jserv/mazu-editor: a minimalist text editor with syntax highlight, copy/paste, and search
[圖]
a minimalist text editor with syntax highlight, copy/paste, and search - jserv/mazu-editor ...

 

其中前者程式碼約為兩千行,後者約為一千行,Mazu 編輯器可編輯 Mazu 編譯器
原始碼,但 Mazu C 語言編譯器還不能編譯 Mazu 編輯器 (好饒舌),不過應該會
持續進化。


現在 MazuCC 可編譯八皇后問題求解 [2] 這樣的小型程式,畢竟媽祖是國民女神,
超越 N 個皇后。西洋棋中的皇后可以直線前進,吃掉遇到的所有棋子,若棋盤上有
8 個皇后,則這 8 個皇后如何相安無事地放置在棋盤上呢?1970 年與 1971 年,
電腦科學家 E.W.Dijkstra 與 N.Wirth 曾用這個問題來講解程式設計之技巧,遞迴
程式設計是常見的技巧,而 MazuCC 也支援。


然而如何減少遞迴的次數,是更關鍵的問題,在八個皇后的問題中,不必要所有的
格子都檢查過,例如若某列檢查過,該該列的其它格子就不用再檢查,此法稱為分支
修剪。「Linux 核心設計」[3] 開放課程第一週的測驗題 [4] 用這題目來檢驗學員
對遞迴和 bitwise 操作的認知。

感謝媽祖,讓我有勇氣挑戰系統軟體的開發。

[1] https://sourceforge.net/projects/orwelldevcpp/
Dev-C++ download | SourceForge.net
[圖]
Download Dev-C++ for free. A free, portable, fast and simple C/C++ IDE. A new and improved fork of Bloodshed Dev-C++ ...

 
[2] https://en.wikipedia.org/wiki/Eight_queens_puzzle
[3] http://wiki.csie.ncku.edu.tw/linux/schedule
[4] https://hackmd.io/s/SyrZMGYr4
2019q1 第 1 週測驗題 - HackMD
[圖]
# 2019q1 第 1 週測驗題 :::info 目的: 檢驗學員對 [bitwise operator]( 及遞迴程式設計的認知 ::: ...

 

--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.246.163
※ 文章代碼(AID): #1SlDeBKb (Gossiping)
※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1555880459.A.525.html
kindaichitom: XD1F 04/22 05:04
kindaichitom: 宅色夫推!
kindaichitom: 老師該不會又是coding到天亮吧!?
jserv: 正在為 Mazu Software Foundation (MSF) 打造相關軟體4F 04/22 05:06
sammoon: 推5F 04/22 05:06
TaoKappa: 推6F 04/22 05:07
jserv: @kindaichitom, 我只是忘了調時差7F 04/22 05:07
lauly: Jserv 我佩服你持續的熱情!8F 04/22 05:08
jserv: @lauly, 教別人寫程式的人當然要寫程式,這沒什麼9F 04/22 05:10
Hnash: 大神都不用睡覺的!?10F 04/22 05:12
stw0975: 推11F 04/22 05:19
stw0975: 十推內
jeffery95099: 推13F 04/22 05:22
jerry0715no1: 推14F 04/22 05:22
jahfone: 老師最近很常回文喔15F 04/22 05:27
ephraim13825: 不明覺厲16F 04/22 05:29
jserv: @jahfone, 為課程寫教材,借題發揮打廣告17F 04/22 05:29
zxc1234529: 推18F 04/22 05:31
twngbm: 推19F 04/22 05:31
abram: 這個跟其他編譯器比較有什麼特點嗎?請教20F 04/22 05:36
jserv: @abram, 原始程式碼簡潔,課堂時間可抄寫完畢 (咦?)21F 04/22 05:44
L1ON: 老師好厲害22F 04/22 05:44
sbya2222: 推老師  睡醒再看23F 04/22 05:45
jserv: 正經的說法是,體會前人篳路藍縷,才會珍惜所處的資訊世界24F 04/22 05:45
jserv: 進而找到自己可投身到llvm/gcc等專案的空間,我不相信沒有
dostey 
dostey: 不推不行 連電梯控制 紅綠燈控制 都26F 04/22 05:45
jserv: 開發MazuCC這樣的「前置作業」,可直接投入llvm/gcc的貢獻27F 04/22 05:46
greensaru: 推28F 04/22 05:47
LeoJhou: 老師,你是還沒睡還是剛醒29F 04/22 05:48
silentence: 好有靈性的清早(?)對談30F 04/22 05:51
fragmentwing: 好羨慕 不知道fortran有沒有推薦的編譯器 gfortran31F 04/22 05:56
fragmentwing: 不會顯示行數,學校電腦的能顯示行數但還是得開程式
fragmentwing: 碼來改 聽到別的語言能直接在編譯器上改超羨慕的
FJHS: 這個真的值得推,太猛了34F 04/22 05:57
fragmentwing: 話說編譯器都是直接包翻譯(執行)功能在內嗎 那有35F 04/22 05:58
fragmentwing: 沒有沒編譯但有翻譯(執行)功能的工具啊,純粹好奇
ZhouGongJin: 推37F 04/22 05:59
lspss93191: 早安啊38F 04/22 06:00
shotgun31239: 推39F 04/22 06:06
number543: 推40F 04/22 06:06
fragmentwing: 原來之前問的被大神回了41F 04/22 06:08
fragmentwing: 到那個地步距離還有點遙遠啊
adm123: XDDDD43F 04/22 06:14
tony10231999: 但是我都用vscode外掛linux的編譯器44F 04/22 06:18
umum29: 推大神一個45F 04/22 06:19
emptie: 神46F 04/22 06:23
ethos: 快來推,這樣才能與神同行!XD47F 04/22 06:23
fragmentwing: 再推大神48F 04/22 06:24
b0920075: 每次專案名字都很好笑49F 04/22 06:27
anions: 有託夢下載模式嗎?50F 04/22 06:28
sarsman: 推大神51F 04/22 06:30
Amanz: 清流52F 04/22 06:32
mdkn35: 媽我在這53F 04/22 06:32
Wangdy: 假理組跟風推54F 04/22 06:32
Daichiuri: 先推55F 04/22 06:34
DivineSX: 媽祖要我推56F 04/22 06:34
ElrosHsun: 都用vim而已QQ57F 04/22 06:36
tony02258: 推58F 04/22 06:38
amethystboy: 感恩 讚嘆59F 04/22 06:41
bluu: 百推內60F 04/22 06:42
vviiccttoorr: 跪了61F 04/22 06:43
riker729: 唸資工應該都要寫過編譯器或組譯器62F 04/22 06:44
newprimer: Good job63F 04/22 06:46
kipi91718: XDDD64F 04/22 06:52
CodingMan: 想說這高手是誰,原來是 jserv 跪了65F 04/22 06:52
nanako81240: 先跪66F 04/22 06:52
Brabus700G: 看id先推 等等配早餐67F 04/22 06:53
chayoung: 跪推68F 04/22 06:55
coware: 有神快拜,先別管嬤組了69F 04/22 07:02
love52697: 推70F 04/22 07:04
eric2057: 百推內!71F 04/22 07:05
xxian: 推。只是已經有輪子了,為什麼還要自己再造輪子?72F 04/22 07:07
mazii: XD73F 04/22 07:08
EJblue: 跨謀@@74F 04/22 07:11
sppmg: 35F,tcc -run 可以直接執行。75F 04/22 07:21
dean040510: 推76F 04/22 07:24
oratik: 推!77F 04/22 07:25
ginstein: 非推不可!78F 04/22 07:29
fragmentwing: sppmg 收到 會去了解看看79F 04/22 07:30
choosin: 哇 推80F 04/22 07:30
jingo: 推81F 04/22 07:32
neiolin: 只能推了82F 04/22 07:35
hgs1906: 推83F 04/22 07:40
nfsong: 跪84F 04/22 07:42
nova06091: 老師的系統軟體課會放到youtube嗎85F 04/22 07:42
g30f68: 跪了86F 04/22 07:46
thegreatlcx 
thegreatlcx: 可以87F 04/22 07:48
Rickyyy: 原來是大神,push88F 04/22 07:53
DDG114514: 真厲害89F 04/22 07:53
a5245242003: 推90F 04/22 07:53
twofoot: 推91F 04/22 07:54
rltc: 跟風推92F 04/22 07:55
firose: 推93F 04/22 07:57
tank123zzz: 推94F 04/22 07:59
seel: 大神~95F 04/22 07:59
helloxin: 老師好96F 04/22 08:01
Cyuhsuan: 推97F 04/22 08:04
ATND: 推98F 04/22 08:10
PRODUCER18: 神推99F 04/22 08:11
RishYang: 請問cmake會不會很難用100F 04/22 08:15
WayThuz: 推101F 04/22 08:16
XzV5573g: 推102F 04/22 08:22
chang564: 只能推103F 04/22 08:22
ShittyFace: 推104F 04/22 08:25
ddoy7: 推105F 04/22 08:25
tom83615: jserv 大大必推106F 04/22 08:25
abb123456: 推107F 04/22 08:26
HAHADEAD: 大神 推108F 04/22 08:27
kaworu0612: 推109F 04/22 08:28
biolive30: 老師保重身體啊啊110F 04/22 08:28
observer0117: 推111F 04/22 08:29
chouchienyu: 推推112F 04/22 08:30
omegajoker: 推113F 04/22 08:33
ya4971: 推114F 04/22 08:38
wang2346581: 抱歉 我還是選擇vscode115F 04/22 08:42
Raymond0710: XDDD116F 04/22 08:42
harrybbs: 你見過凌晨5點的天色嗎?——jserv117F 04/22 08:45
GaryMatthews: 推118F 04/22 08:47
smallcar801: 用輪子要買大廠質量保障的輪子,不過要研究輪子的理119F 04/22 08:49
smallcar801: 論和改進當然要先掌握製作輪子的技術啊…
max0616: 總之我是推了121F 04/22 08:50
danadanad: 八個皇后在棋盤上不重複 跟數獨不是一樣的道理嗎? 直122F 04/22 08:54
danadanad: 橫排都不重疊
grimmq52156: Tui124F 04/22 08:55
LierX: 推125F 04/22 08:55
snow10725: QAQ推 收下我的膝蓋126F 04/22 08:56
eric21489: 百推內127F 04/22 09:00
misomochi: 跪128F 04/22 09:04
wilson85771: 跪推129F 04/22 09:04
silverzeus: 推一個大神130F 04/22 09:05
d92001314: 推媽祖131F 04/22 09:07
q10242: 太強了132F 04/22 09:09
dic1911: cd中樓下推133F 04/22 09:13
tengentoppa: 推推134F 04/22 09:14
houting: XDDDD135F 04/22 09:14
octopuz: 推136F 04/22 09:18
koi074: 神137F 04/22 09:18
zxc17893: 狂138F 04/22 09:21
bobo8347: 推139F 04/22 09:23
ccinptt: 朝聖,推國民女神140F 04/22 09:26
lovelycateye: 有神!快拜!141F 04/22 09:27
iwtwin086051: 推142F 04/22 09:30
wayneduke: 大神快推143F 04/22 09:31
s94055: 推144F 04/22 09:33
pd3mnd: 推145F 04/22 09:34
antele: 推146F 04/22 09:37
johnnyivw: 推大神147F 04/22 09:38
xiefengan: 推148F 04/22 09:40

--
※ 看板: Gossiping 文章推薦值: 0 目前人氣: 0 累積人氣: 1442 
作者 jserv 的最新發文:
  • +38 Re: [問卦] 有GNU/Linux那有BSD/Linux嗎? - Gossiping 板
    作者: 140.116.246.163 (台灣) 2022-06-12 12:30:49
    回答這問題之前,我們應該先思考「什麼是 BSD?」 依據 FreeBSD 網站 的描述,FreeBSD 衍生自 BSD,後者則是 "the version of UNIX developed …
    49F 38推
  • +404 Re: [問卦] 要怎麼用針在光碟上戳出一個作業系統 - Gossiping 板
    作者: 140.116.246.163 (台灣) 2021-09-04 04:54:37
    「既然你誠心誠意地發問了,我們就大發慈悲地告訴你」(語出「火箭隊」) 這則笑話在 2010 年就出現巴哈姆特電玩資訊站 ,內容改寫自中國網友的創作, 已有十餘年,不過該笑話的弊端在於「針」。DVD 燒 …
    499F 407推 3噓
  • +83 Re: [問卦] 如何在Linux底下自幹win3.1系統? - Gossiping 板
    作者: 140.116.246.163 (台灣) 2021-09-03 12:41:58
    我是跟鄉民進來看熱鬧的,我跳進來了,我又跳出去了,打我啊笨蛋! (取自方唐鏡 名言) 學校老師應該忙著開學事宜,我幫他們回覆你的提問。 原題「在 Linux 系統底下要怎麼自己搞 win3.1 呢?」 …
    101F 83推
  • +230 Re: [問卦] 在卡上打洞寫程式是什麼感覺 - Gossiping 板
    作者: 140.116.246.163 (台灣) 2021-04-23 06:37:27
    剛好我需要跟學生解釋為何 Linux 核心原始程式碼的風格規範 中,限制一行至多 80 個字元,其典故跟「打孔卡」(punched card) 有關。 1890 年代,美國人口普查就使用新發明的穿孔卡 …
    247F 230推
  • +439 Re: [問卦] 原來上 ptt 可以學 linux 操作.. - Gossiping 板
    作者: 140.116.246.163 (台灣) 2021-04-23 00:01:26
    這恰好連結台灣特有的 BBS (電子布告欄) 文化及早期 Linux (和 BSD) 文字編輯器的 關聯。也讓我想起一年前過世的陳昇瑋博士,他的舊名是陳寬達,並以 Xshadow 的名號 馳名於早期的 …
    512F 444推 5噓
點此顯示更多發文記錄
分享網址: 複製 已複製
1樓 時間: 2019-04-22 14:11:02 (台灣)
  04-22 14:11 TW
這年頭還在寫C compiler ? 真是魯呀
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇