看板
[ Soft_Job ]
討論串[請益] 想不通直譯器vs編譯器vs機器碼的問題
共 9 篇文章
內容預覽:
Update:. 睡前簡單弄個小更新. 把我回文中說的code cache的hashtable快速弄出來了. 第一次呼叫時會emite code,第二次因為hashtable查找成功則直接呼叫. 另外就是把mmap要記憶體時的可讀可寫可執行,改成僅可讀可寫. 後面再透過mprotect改成可讀可執行
(還有4930個字)
內容預覽:
查了一下原po背景...姑且最可能的假設是. 資管系考上資管所已畢業學生.... 我覺得滿嚴重而且好奇的是. 現在資管系是都不用上基本計算機概論了?. 為啥這種大一必修科目的東西 會用完全無知的態度提出發問. 是教育出問題還是資管系已經拿掉計概這科了?. 還是資管系有些學校的計概連最基本直譯編譯在做
(還有1514個字)
內容預覽:
呃,我覺得你沒有搞清楚一件事,原始碼、中間碼、機器碼的差異。. 首先,編譯器的目的,不是轉成機器碼用的。. 編譯器的目的,是把語言 A 的原始碼,轉成語言 B 的原始碼用的。. 例如 LLVM 或者是 GCC,它們把 C/C++ 轉過後,不是直接變成執行檔,. 而是先變成一個特殊語言的中間碼 (IR
(還有373個字)
內容預覽:
雖然大家已經回很多了,但再回一篇應該也沒關係吧。. 試試看能不能用簡單的方式來類比,當然因為是類比,所以不是那麼精確,. 例如轉成機器碼這件事本身還牽扯到 Linker 等等的,就先不管了啦。XD. 從後續的推文來看,原 PO 提到的其實有三種東西:. 1. 編譯成機器碼的編譯器模式 (Ex. 傳統
(還有1386個字)
內容預覽:
分享一點個人淺見. 直譯指的應該是一種逐行執行的方式. 而編譯會將你的整個程式碼跑過一遍檢查錯誤並優化成另一種code(Byte code). 直譯式語言如Python,JS. 你可以輸入一行後馬上看到結果. 而像JAVA屬於先編譯後直譯的語言. 他會先將你的source code跑過一遍確認沒錯之
(還有344個字)