2014-01-19 46 views
0

我最近开始学习编程原理。目前有一些概念对我来说是抽象的。 我想知道什么是“机器”在编译方面。或者一台机器的例子对我来说也是有好处的。如何理解机器是“它本身就是其他东西必须站立的基础”?在编译方面什么是“机器”?

+0

可能你问的是一个*抽象机*,它是一个常用于描述编译器使用的中间代码语义的术语(参见例如“Warren Abstract Machine”)。 –

回答

4

在这种情况下,机器是执行代码的最广义的任何代码。这突出地包括物理计算硬件(从微控制器到智能手机到台式计算机到超级计算机),还包括执行相同功能的软件,例如虚拟机/模拟器/解释器/你拥有什么。

+0

我不知道如果将解释器作为机器'编译',不会混淆初学者。 –

2

在这个意义上的机器将是实际的物理计算机。在编译方面:您编写的每个代码最终都需要编译到机器代码中。更准确地说,它是计算机的微处理器,并且CPU的所有输入都必须使用机器语言。当您使用高级语言(C,Java等)进行编程时,编译器(或通过虚拟机/仿真器)为您处理所有机器代码。

由于CPU是进行所有计算和程序执行的CPU,因此它和它理解的语言是构建其他语言的基础。从更广泛的意义上讲,机器也可以是在物理机器上运行的虚拟机,并且取决于视角。

相关问题