如果我想用两种不同的语言打印“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编译相同的输入,生成两个不同的代码(第二个错误)