Soft_Job 板


LINE

※ 引述《dragoncfe168 (梅長蘇)》之銘言: : 請問一下 : 為何直譯器將source code轉譯成機器碼, : 不會產生不同電腦的機器語言不同 而無法執行的問題??? : 反觀同樣把source code轉譯成機器碼的編譯器 : 卻會有此類問題呢??? 雖然大家已經回很多了,但再回一篇應該也沒關係吧。 試試看能不能用簡單的方式來類比,當然因為是類比,所以不是那麼精確, 例如轉成機器碼這件事本身還牽扯到 Linker 等等的,就先不管了啦。XD 從後續的推文來看,原 PO 提到的其實有三種東西: 1. 編譯成機器碼的編譯器模式 (Ex. 傳統的 C/C++ 編譯器) 類比: - 書面講稿翻譯,從中文翻成英文,管你講者唸不唸,我全部一次 翻譯好給你。 - 聽眾語言(目標平台)不同,下一場的聽眾是法國人怎麼辦?找個 懂中文和法文的翻譯者唄。 - 所以通常說 C / C++ Compiler,其實省略了目標平台的描述。 就算同樣是 C 編譯器,也不一定每種目標平台都支援,可以說 是不同的程式。 - 因為是書面翻譯,翻譯完的東西可以給會唸英文的人幫你唸,翻譯 者翻完就可以滾蛋了。 2. Python 等直譯式語言 類比: - 現場口譯,從中文翻成英文。但只有當你講的時候我才一句一句 翻譯,就算你中文講稿上有,但講者沒講出口的字句,口譯者就 不會去翻譯。 - 聽眾語言(目標平台)不同,下一次的聽眾是法國人怎麼辦?找個 會從中文翻成法文的口譯者唄。 - 所以通常說某種語言的直譯器,其實省略了目標平台的描述。就 算同樣叫做 Python 直譯器,但他們懂的目標語言可能不同,可 以說是兩隻不同的程式。 - 因為是口譯,所以演講的時候翻譯者 (Python 直譯器) 一定要在場。 3. .NET / Java 等編譯成中介語言的編譯模式 類比: - 書面翻譯後再口譯。我通通先翻成某種為了特殊目的而創立的語言, 例如邏輯語[1],然後再找個邏輯語的口譯來現場翻譯。 - 所以如果要從中文翻譯成英文,要做以下兩個步驟: 1. 先把中文翻譯成邏輯語 (Java Compiler / 你下 javac 時在做的事) 2. 把邏輯語翻譯成英文唸出來(Java Runtime / 你下 java Main 時在做的事) - 聽眾語言(目標平台)不同,下一次的聽眾是法國人怎麼辦?找個會 把邏輯語翻成法文的譯者唄。 - 所以我們說 Java / .NET 執行環境,其實省略了目標平台的描述。 就算同樣叫 Java 執行環境,他們懂的目標語言可能不同,可以說是 不同的程式。 - 因為某種程度上來說也是口譯,所以翻譯者 (Java Runtime) 一定要在場。 [1]: https://zh.wikipedia.org/wiki/%E9%80%BB%E8%BE%91%E8%AF%AD 至於這三種模式能不能跨平台,那就要看你怎麼去定義「跨平台」這件事了。 -- ~ 白馬帶著她一步步地回到中原。白馬已經老了,只能慢慢地走, 'v' Brian Hsu 但終是能回到中原的。江南有楊柳、桃花,有燕子、金魚…… // \\ ( 墳 墓 ) /( )\ 但這個美麗的姑娘就像古高昌國人那樣固執。 【白馬嘯西風】 ^`~'^ http://brianhsu.moe 『那都是很好很好的,可我偏不喜歡。』 --
QR Code



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.151.199
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1525831828.A.C97.html ※ 編輯: brianhsu (60.251.151.199), 05/09/2018 10:17:34
1F:→ pttworld: 蟒蛇用bytecode 05/09 11:26
2F:推 dragoncfe168: 太感謝你了!這篇解說堪稱經典~值得M起來供後世傳頌! 05/09 11:49
3F:推 dragoncfe168: 當今市面上尚無一教師與書籍能做如此卡通化的闡述.. 05/09 12:04
4F:推 dragoncfe168: 倘若補教老師皆能有如此統整歸納類比能力~ 05/09 12:09
5F:→ dragoncfe168: 天下萬千莘莘學子~又何愁學不會程式呢? 05/09 12:14
6F:推 koushimei: 這樣解釋稍微有點概念了! 05/09 12:41
7F:推 senjor: 其實如果有從計算機概論從頭學,應該還是會懂啦... 05/09 12:43
8F:推 peanut97: 因為能不能清楚解釋這個跟收入沒有太大關係XD 05/09 12:47
9F:推 senjor: 其實很多工作不懂或沒有記起來這個也沒有什麼影響 XD 05/09 12:56
10F:推 jojojen: 推 05/09 13:51
11F:推 gname: 推一個~ 05/09 17:10
12F:推 soheadsome: 有JIT的範例 有辦法在說看看AOT的範例嗎xde 05/09 20:01
13F:推 Awenwen: 厲害了 05/11 13:52







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP