如果我想用两种不同的语言打印“HELLO”,比如c ++和java,那么代码的二进制输出也可能不同...... ??
答案 0 :(得分:0)
是的,代码的二进制输出是不同的。
当使用具有不同编译器选项的相同语言时,生成的输出可能不同(有/无调试信息,有/无优化)。
举个例子:
但在等效程序中,程序输出应相同(在您的情况下为HELLO
)。
答案 1 :(得分:0)
这取决于很多因素(源语言,目标平台,硬件,编译器标志,执行环境......)。
编程语言规范通常描述语言结构和语义,而不是深入研究实现细节,而是将其留给编译器供应商。
某些语言的方言非常不同(例如C#和Visual Basic),但编译为相同的managed code。
根据目标平台,用某种语言编写的程序可以编译成完全不同的二进制文件。
为了提供最大的灵活性compilers在设计时考虑了模块性,并且由不同的部分(词法分析器,解析器,IL优化器,代码生成器)和编译阶段组成。这就是为什么有可能扩展GCC以支持未来平台附加新代码生成器而不触及其他部分。