Re: [請益] 資工碩士專攻編譯器台灣找得到工作嗎?
※ 引述 《ttucse》 之銘言:
: 想請教大家的是
: 如果資工碩士專攻compiler編譯器
: 在台灣有公司有這樣的工作嗎?
: 好像沒有台灣公司的產品是編譯器
: 那有公司是內部需要編譯器的嗎?
你應該是想問 compiler 這條路出路如何嘛?
限定台灣的話,努力找,應該還是找得到 (104 搜一下嘛)
底下容小弟依經驗幫忙分析幾個你可能也會想知道的面向:
1. 做 compiler 門檻高不高?
想像一下高階的語法到低階的指令,例如:
python -> C++ /C -> 組語
同樣用途的一支程式,用 python 寫,轉換成用 C 怎麼寫、甚至熟悉某個 ISA 的話,多花
些精力,轉換到組語也多少寫的出來。一般來說 "人" 來做應該不算難做到。
Compiler 的角色就是替換這個 "人",變成一隻程式,要把 "人" 怎麼分析語法、語法檢查
?怎麼轉換出組語?一步步拆解,寫演算法來完成。
而且最好要有條理、高效的來做這件事,順便做些優化,那自然是有不低的門檻的。
2. 做 compiler 是不是要很強?
能夠達到前面說的門檻,從高階語言可能各種亂七八糟的寫法都要能編譯,error msg
能清楚,到編譯出來的程式有優化、效能好,那自然是要很強的!
但也不是說一定要強者才能做,舉個例子:有個 ISA 可以做加減乘除,已經有強者做好
加減怎麼生指令了,那...照著把乘除做出來...稍微不那麼強的人也做的到,而且,也總是
有這些事可以做的。
所以,前面說的門檻高,不至於不到門檻就洗洗睡,只收菁英的程度啦XD
達到門檻的自然強,不到的也能生存。
3. 做 compiler 爽不爽?
爽啊!當然爽!
假設你改善了某個演算法的複雜度,讓編譯速度快 10 倍好了,像我一天多的時候可能
compile 個 100 次,原本等 10 分鐘變成等 1 分鐘就好,那代表我今天可以更早下班耶!
那如果是做個優化,編譯出來程式快 10%、提前一分鍾能出結果,這隻程式將來可能要
跑一萬次,你幫大家省了 7 天耶!!這都還只是單純就省的時間來說。
這麼有成就感的事情,要是做得到,能不爽嗎?
(不過如果說是看錢的話...在台灣可能還是 HW design 才是王道!)
---
所以,我們總結一下:做 compiler 呢,門檻高,不過只要夠強,就會爽!
...恩?到哪不是都是這樣嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.177.3.135 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Tech_Job/M.1713919482.A.A9E.html
推
04/24 09:19,
1周前
, 1F
04/24 09:19, 1F
→
04/24 09:20,
1周前
, 2F
04/24 09:20, 2F
→
04/24 09:34,
1周前
, 3F
04/24 09:34, 3F
→
04/24 09:35,
1周前
, 4F
04/24 09:35, 4F
不會...所以我其實...有點難過
推
04/24 09:47,
1周前
, 5F
04/24 09:47, 5F
→
04/24 09:47,
1周前
, 6F
04/24 09:47, 6F
推
04/24 10:28,
1周前
, 7F
04/24 10:28, 7F
噓
04/24 10:32,
1周前
, 8F
04/24 10:32, 8F
舉例嘛...不然我要講些晦澀難懂的東西直接勸退嗎?
→
04/24 10:32,
1周前
, 9F
04/24 10:32, 9F
→
04/24 11:03,
1周前
, 10F
04/24 11:03, 10F
※ 編輯: Lipraxde (114.137.175.102 臺灣), 04/24/2024 11:09:13
推
04/24 11:12,
1周前
, 11F
04/24 11:12, 11F
→
04/24 11:13,
1周前
, 12F
04/24 11:13, 12F
推
04/24 11:48,
1周前
, 13F
04/24 11:48, 13F
確實,如果是 target-independent 或是成熟的 backend 裡再做什麼優化,那都是撿到寶
推
04/24 12:30,
1周前
, 14F
04/24 12:30, 14F
→
04/24 12:30,
1周前
, 15F
04/24 12:30, 15F
→
04/24 14:38,
1周前
, 16F
04/24 14:38, 16F
→
04/24 14:43,
1周前
, 17F
04/24 14:43, 17F
AI compiler 紅歸紅,但...還是 SW 職缺...
要是他 ASIC 正在開發中,要幫他 codegen,生些奇妙的用法,還要優化,隨便一個異想
天開的特殊作法,可能整個 pipeline 都要調整過,有時間限制的欸...操死
※ 編輯: Lipraxde (114.137.175.102 臺灣), 04/24/2024 14:54:20
→
04/24 15:01,
1周前
, 18F
04/24 15:01, 18F
→
04/24 15:07,
1周前
, 19F
04/24 15:07, 19F
→
04/24 15:07,
1周前
, 20F
04/24 15:07, 20F
→
04/24 15:11,
1周前
, 21F
04/24 15:11, 21F
→
04/24 15:11,
1周前
, 22F
04/24 15:11, 22F
→
04/24 15:11,
1周前
, 23F
04/24 15:11, 23F
推
04/24 15:12,
1周前
, 24F
04/24 15:12, 24F
→
04/24 16:38,
1周前
, 25F
04/24 16:38, 25F
→
04/24 16:38,
1周前
, 26F
04/24 16:38, 26F
→
04/24 16:38,
1周前
, 27F
04/24 16:38, 27F
→
04/24 21:22,
1周前
, 28F
04/24 21:22, 28F
→
04/24 21:23,
1周前
, 29F
04/24 21:23, 29F
→
04/24 21:24,
1周前
, 30F
04/24 21:24, 30F
→
04/24 21:25,
1周前
, 31F
04/24 21:25, 31F
→
04/24 21:27,
1周前
, 32F
04/24 21:27, 32F
驅動程式說的比較是偏 runtime 嗎?也算是 compiler 的範圍,通常立即能發現的都還
好修,怕的是 user 拿到才發現某版 release 壞了,找到問題看一看才發現原來不能這
樣用...半個月能解決都要謝天謝地了
推
04/24 22:43,
1周前
, 33F
04/24 22:43, 33F
→
04/24 22:44,
1周前
, 34F
04/24 22:44, 34F
我反而覺得 codegen 那是最有趣的地方,了解硬體才能做的好,這地方就可以看到誰願
意實打實的把硬體的特殊能力相關的優化用 low-level IR 做出來,反應在演算法裡,把
硬體能力榨乾。
不過有些人可能會更想抽象化到更 high-level,乾乾凈凈漂漂亮亮的做...只是刻個殼
子叫別人處理底層細節的那種...我常常覺得這樣有點不夠水準,阿不,是不夠有趣!
→
04/25 00:06,
1周前
, 35F
04/25 00:06, 35F
→
04/25 00:06,
1周前
, 36F
04/25 00:06, 36F
推
04/25 01:59,
1周前
, 37F
04/25 01:59, 37F
→
04/25 01:59,
1周前
, 38F
04/25 01:59, 38F
用 C 硬刻...太硬了啦,不過印象中有些語法 lex & yacc 不太好刻,直接硬刻可以不受
限 LALR 這種難懂的東西,也不是說沒有好處
※ 編輯: Lipraxde (180.177.3.135 臺灣), 04/25/2024 05:58:44
推
04/25 09:52,
1周前
, 39F
04/25 09:52, 39F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):