看板 Soft_Job 關於我們 聯絡資訊
※ 引述《dragoncfe168 (梅長蘇)》之銘言: : 請問一下 : 為何直譯器將source code轉譯成機器碼, : 不會產生不同電腦的機器語言不同 而無法執行的問題??? : 反觀同樣把source code轉譯成機器碼的編譯器 : 卻會有此類問題呢??? 我猜你想說的是 c++ 的程式要分別用 windows 的編譯器轉成機器碼才能在 windows 執行,或是用 Linux 的編譯器轉成機器碼才能在 Linux 上執行。 但是像 Python, PHP 或 Javascript 這種用直譯器的語言,為什麼就可以只用一個 PHP 就能達到跨平台? 其實也是有分啦。你在 Windows 裝的 PHP 直譯器程式,跟在 Linux 上裝的 PHP 直譯器程式就是不一樣的了。跟機器相依的部分,就是那個專屬平台的直譯器幫你解決掉了。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.194.7.13 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1525787038.A.7DC.html
dragoncfe168: 我的疑問是針對java的jvm透過直譯器轉成的機器碼.. 05/08 22:13
dragoncfe168: 卻可以跨平台 感到不解 05/08 22:14
dragoncfe168: jvm的編譯器把source code轉成byte code來跨平台 05/08 22:15
dragoncfe168: 這我可以理解 但是當jvm再把byte code直譯成機器碼 05/08 22:16
dragoncfe168: 來讓任何實體主機電腦可以run 達成跨平台 感到不解 05/08 22:18
dragoncfe168: 所以 我歸納出一個假設結論:直譯器是可以跨平台 05/08 22:20
dragoncfe168: 而編譯器是無法跨平台的... 05/08 22:20
dragoncfe168: 不知我的結論是否正確呢?? 05/08 22:21
taffy128s: 不同平台有不同的jvm 我記得是這樣 05/08 22:24
eddie55020: bytecode跨平台,但轉出來的機械碼不是啊,所以要針 05/08 22:27
eddie55020: 對不同的機器寫不同的jvm 05/08 22:27
ripple0129: 直譯器本身你覺得有跨平台嗎。沒有的話是不是直譯器是 05/08 22:28
ripple0129: 各系統各自編自己的直譯器。 05/08 22:28
er230059: 不同平台的JVM是不同的JVM阿 05/08 22:37
weiyucsie: http://0rz.tw/YOhgp 右圖 05/09 10:39
weiyucsie: 看到"jvm的編譯器"之類的文字感覺怪怪的XD 05/09 10:40
weiyucsie: 因為感覺是在說javac之類的,但是那不在 jvm 05/09 10:41