為什麼這篇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