如果我想用兩種不同的語言打印「HELLO」,請說C++和java,代碼的二進制輸出是否也可能不同。用兩種不同編程語言編寫的相同代碼是否具有相同的二進制輸出?
0
A
回答
0
是的,代碼的二進制輸出是不同的。
此外,當使用不同編譯器選項的相同語言時,生成的輸出可能不同(帶/不帶調試信息,帶/不帶優化)。
以你例如:
- 在C++編譯器產生用於CPU的直接執行的機器代碼
- Java中的編譯器生成將通過字節代碼解釋器或JIT(只是運行的字節碼在編譯器中)
但是在等效的程序中,程序輸出應該是相同的(在你的情況下爲HELLO
)。
0
這取決於很多因素(源語言,目標平臺,硬件,編譯器標誌,執行環境等)。
編程語言規範通常描述語言結構和語義,而不需要深入研究將實現細節留給編譯器供應商。
某些語言有很不同的方言(如C#和Visual Basic),但編譯爲相同的managed code。
根據目標平臺,用某種語言編寫的程序可以編譯爲完全不同的二進制文件。
爲了提供最大的靈活性compilers設計時考慮到了模塊性,並且由不同部分(詞法分析器,解析器,IL優化器,代碼生成器)和編譯階段組成。這就是爲什麼例如擴展GCC以支持未來的平臺可以附加新的代碼生成器而不觸及其他部分的原因。
相關問題
- 1. base64編碼的相同類型的二進制數據是否具有相同的頭文件?
- 2. 避免使用多種不同的語言編寫相同的算法
- 3. 相同的程序代碼與相同的編譯器導致不同的二進制文件
- 4. 兩個程序具有大致相同的代碼,但輸出爲不同
- 5. 相同Ruby代碼的不同輸出?
- 6. 與XlsxWriter是否可以進行二進制相同的輸出?
- 7. 使用兩種不同語言的相同Apache Thrift服務器
- 8. 相同的Java源編譯爲二進制不同的類
- 9. 兩種不同語言的相同圖像但不適用於其他語言
- 10. 將具有相同的源,編譯器和庫版本結果編制完全相同的二進制
- 11. 顯示兩個幾乎相同的代碼的不同輸出
- 12. HTML - 兩個相同的代碼運行不同的輸出?
- 13. 兩個文件,完全相同的代碼,不同的輸出?
- 14. 不同語言的程序和功能在每種編程語言中的概念不相同
- 15. 相同的代碼,不同的服務器,不同的輸出
- 16. ldd不同的輸出。相同的二進制發行版不同
- 17. 針對兩個不同的程序集引用編譯相同的代碼?
- 18. 線程具有相同的編號
- 19. 兩個文件是二進制相同的,但表現出不同的行爲
- 20. 使用相同的代碼生成2種語言的文檔
- 21. 兩個不同的表單,輸入具有相同的名稱和編號
- 22. 檢查具有相同ID的輸入文本是否具有相同的值
- 23. 不同的JNI調用的相同參數是否具有相同的值?
- 24. 具有相同FormGroup的兩種形式?
- 25. 兩個字符似乎相同,但UTF-8編碼不相同
- 26. 具有相同ID的Android兩種不同的SharedPreference類型
- 27. 這兩個代碼是否相同?
- 28. Windows上是否有相同的htm源代碼編輯擴展?
- 29. 這兩個查詢是相同還是相同的輸出?
- 30. 兩個GCC編譯相同的輸入,生成兩個不同的代碼(第二個錯誤)