[爆卦]compiler課程是什麼?優點缺點精華區懶人包

為什麼這篇compiler課程鄉民發文收入到精華區:因為在compiler課程這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者pponywong (pony)看板Tech_Job標題Re: [請益] 學編譯器的出路好嗎?時...

compiler課程 在 工具王 阿璋 Instagram 的最佳解答

2021-04-04 20:32:18

【#程式教學】「想學會寫程式,必先練此功!」 新手必備✨C語言懶人包✨  大家千呼萬喚的C語言懶人包來啦🤟🏻一起看下去!!!!  1️⃣C語言:入門基本功💪🏻 C語言是個超~強大的程式語言,C語言靈活高效的運算和豐富的功能性,以及可以跨平台使用的特點,成為了近30年來用途最為廣泛的語言。...


※ 引述《sooge (喜歡小女友Yerin )》之銘言:
: 小弟不才現在資工研究所還沒有找到教授
: 小弟背景是學店電機系畢業
: 在校成績60%
: 期間只修了一堆爽課混畢業
: 沒有一項技能可以拿來說嘴
: 工數 電子 電磁 電路都很差
: 真要說也只有弄專題要用的arduino有學到東西而已
: 本人"極度"討厭硬體,超級無敵他媽討厭那種,單純覺得冰冷的電子元件很沒生命力很乏味
: 大二大三時每週最討厭的課就是電子學實驗,修課都修到快憂鬱症,超級G8討厭
: 大學選系因為不了解自己興趣所向才選了以後出路比較好的電機系就讀
: 沒想到這麼不合自己口味
: 現在有在網路上學ML的相關課程,會一點數據處理
: 雖然程式基礎不好學的慢但因為是自己喜歡的課程所以學起來滿有成就感的
: 如果有在做ML和DL的老師願意收我當然是很好
: 沒有的話就只好找專攻編譯器的老師當指導教授
: 其實我也不知道編譯器是在幹嘛
: 台灣做這個的人很少?
: 查了一下資料但還不是很懂
: 主要是在寫組合語言和LLVM是嗎?
: 學這個會很操嗎?聽說有學生修這個課期末的project程式碼都是上千行起跳
: 之前有修過微算機8051寫組合語言 不特別討厭和感興趣
: 但就是當時程式差程式碼又多修起來有點辛苦
: 現在只想學個一技之長
: 不排斥編譯器這個領域,只是以後畢業靠這個吃飯出路好嗎?
: 台灣學會編譯器容易找的到工作嗎?編譯器偏底層學起來是不是超難?
: 推薦我這個半路出家基礎爛爛的學生選嗎?
: 不知道這兩年會不會水深火熱
: 請求各位大大幫我解答個疑惑,有任何意見我都會聽的
: 謝謝~
: -----
: Sent from JPTT on my Asus ASUS_X00QD.

其實編譯器很多種 看你指的是哪一種
如果是單純 程式碼 轉成 executable machine code 的話
是最簡單的

軟體的程式語言 大部分都是 control flow
不外乎 if-else, for-while loop, function call/jump
好一點的就包含資料封裝 繼承 多型之類的

目前市面上的語言都有類似語法 去實作上述功能
我想一般公司也不會特地去發明一個語言 大概都是用現有的語言就好了

所以 compliler front-end parser 通常都不會碰到 因為別人早就做好了
而且技術不外乎是 LL LR LALR 之類的 (compiler很久以前學的, 有錯請更正)

至於 backend-end 範圍就很廣 一般人說做compiler 就是這種
有從語法樹(AST)分析的 也有從 control flow 做最佳化的
像是 peephole optimization, data-flow optimizations, loop unrolling
之類的 再進階就要看target machine的 pipeline 做平行運算之類的
或是使用 SIMD 指令

目前做 compiler 最夯的大概就是從 LLVM 開始著手 畢竟軟體架構好
文件也多 Apple也從 GCC 跳到 LLVM
也有人拿 LLVM 拿來做 數學軟體的 script language 像是 Julia (不是AV女優)

compiler 要做出有技術性的 通常都要搞出虛擬機之類的
做出虛擬機 表示可以訂出語言的獨特性 型態轉換, 記憶體配置, 線程 之類的
像是 C#, Java, Python, NodeJS
這要學只能去找 source code 來看了...

上述是軟體程式語言

硬體程式語言 也有所謂的compiler 或者叫 hardware synthesizer
比較合適 就是將硬體描述語言 生成硬體邏輯閘
這我沒學過 沒辦法給你甚麼有用資訊 只能給你科普一下


至於學生寫code破千行 就覺得很操 ...只能說 還不及格阿....

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.137.59.128 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Tech_Job/M.1563852530.A.804.html
※ 編輯: pponywong (220.137.59.128 臺灣), 07/23/2019 11:35:28
jun0325: 現在ic大廠很多都在徵AI chip compiler 07/23 11:32
miname: 硬體描述語言比較偏向EDA的floor planning 07/23 11:41
miname: 跟一般compiler最佳化不一樣 07/23 11:43
miname: AI那邊的compiler又是另一回事,最基本就是op實作 07/23 11:45
miname: 傳統compiler最佳化的du ud-chain基本上沒用 07/23 11:46
miname: 研究所真的只是過程,都有教授做硬體的過幾年上新聞自稱資 07/23 11:54
miname: 安專家,也有VLSI的教授轉醫療資訊系統的 07/23 11:54
a9228097: codegen一點都不簡單, 除非你指的是產生沒優化的code 07/23 12:17
a9228097: 另外有些資安會需要熟frontend的人,ex. obfuscation 07/23 12:18
miname: 我沒說簡單啊,我只說傳統的compiler優化用不上沒說不能有 07/23 13:20
miname: 其他優化方案 07/23 13:21
pponywong: a網友 應該是回我的話啦 我說的簡單是對比其他compiler 07/23 13:25
pponywong: 這種編譯器是比較直觀的 像是虛擬機 中間碼 硬體生成 07/23 13:26
pponywong: 會比直接生出 machine code 跟需要很多知識 07/23 13:27
pponywong: 我想讀過資工的都了解 compiler 一點都不好做 07/23 13:28
pponywong: 尤其是大部人人都只有求學階段碰過而已 在業界又是一回 07/23 13:29
pponywong: 事了 07/23 13:29
YAYA6655: 資工畢業,能寫compiler的不到1% 07/23 22:44
YAYA6655: 好比資工OS必修,有幾隻貓能深入? 07/23 22:44
kidbaby: 同意樓上 07/23 23:31
qazsedcft402: OS真的要深入真的是沒完沒了 07/24 00:46
shooter555: OS最主要還是針對kernel部份學 但kernel日新月異 07/24 09:36
shooter555: 一下子沒跟而已就差很多了 07/24 09:37
landattack : 感謝! 08/12 18:50

你可能也想看看

搜尋相關網站