当所有编程语言都编译为1和0时,选择编程语言是否会决定性能
例如:printf(在C中)与cout(C ++)vs print(在Python中)
以上所有都有相同的二进制编译代码吗?
详细了解有关编程语言和硬件角色概念的任何帮助!提前致谢
答案 0 :(得分:1)
编程语言的选择可能会对代码的性能,代码的可移植性,可比性以及在目标中轻松实现目标产生多方面的影响。为了直接回答您的问题,如果C和C ++都是针对同一目标环境完成的,则它们在打印输出时可能会生成“相同的二进制文件”。 Python之所以与众不同,是因为它是一种解释型语言,这意味着该代码由以该体系结构本地代码编写的程序读取,并据此采取行动。在这方面,Python处于边缘情况,因为从技术上讲,它是在执行时进行编译的(并且可以在发布之前进行编译),但在原理上类似于仅由Python解释器理解的Java字节代码的中间代码。
您在较低语言(如C)与较高语言(如Java,Python甚至JavaScript)之间带来的区别是,它们的执行本质是由本机硬件或解释器完成的。通常,在裸机上运行语言比在解释器上运行要快得多,因为解释器需要时间来理解代码并使用其自己的系统资源。 Java倾向于违反此规则,因为Java的解释器是一个完整的虚拟机,它可以理解非常简单的字节码,因此其速度与C语言类似。
答案 1 :(得分:0)
将哪种二进制代码进行编译取决于编译器。对于C和C ++,有数十种不同的编译器可能会生成不同的二进制代码。除此之外,大多数编译器甚至都有优化标志,这些标志对生成的二进制代码有很大影响。
Python甚至没有直接编译为“机器代码”,而是被编译为python解释程序的字节码。 Python解释器本身是在计算机上运行的程序,然后读取python字节码并可能通过内部调用预定义函数(已存在于机器代码中)执行该程序。