为什么编译器的输出称为目标代码?


13

摘自Paul Graham 解释的论文《编程语言》,发表在Hackers&Painters上

您向编译器提供的高级语言也称为 源代码,其生成的机器语言翻译称为目标代码

摘自Wikipedia关于目标代码的文章

目标代码或有时是目标模块是计算机编译器生成的。

根据“编译器”的定义

传统上,编译的输出称为目标代码或有时称为目标模块。(请注意,此处的“对象”一词与面向对象的编程无关。)

那么,什么涉及到长期目标?


2
请注意,编译器不必生成机器代码。通常具有较低的抽象级别,否则通常称为翻译器。

2
前两个不得不就目标 代码进行交流的人不知道该怎么称呼,因此他们采用了一个非常通用的术语。
semaj 2012年

RetroComputing.SE中的优秀人才可能对此有更好的了解。
罗杰

Answers:


10

目标代码有时也称为目标代码,因为它是编译器执行的翻译过程的目标结果。因此,“目标代码”与“源代码”相反。

编译器世界中还有其他奇怪的名称:例如,包含程序二进制代码的文件段通常称为“文本段”。


1
知道为什么将其称为“文本”吗?如历史渊源?
nielsbot

@nielsbot:我认为这仅仅是与存储变量的“数据段”相反,“文本段”包含的是原始(在编译之前)文本,即程序的代码。
Michael Borgwardt

8

它是“目标”中的对象。不反对作为“事物”。

类似于dasblinkenlight关于被称为“目标代码”的答案。它是编译器的目标。


1
不确定我是否同意。
马丁·约克

1
听起来对我来说是正确的。始终在编译器目标的上下文中引用它。
泰德罗斯勋爵'12

是的,这是正确的答案。它反映了它在句子中的工作方式,其中动词表示编译器(doer),主题是源代码,而对象是该动作(编译)的目标或结果。因此,“主题代码”是源(经过编译,称为“主题”),而“目标代码”是目标(编译的“目标”)。
BarbaraKwarc '18

1

在编译源代码时会生成目标代码。该目标代码尚不能执行,因为它没有运行所需的库。因此,您链接了多个目标代码和库,它便成为可执行文件。

在我的理解中,“ 对象 ”与您通过编写源代码开发的“事物”有关。它可以是模块,类,函数或其他任何东西。


-1

目标代码属于目标文件

术语对象在早期的计算机科学不是指“客观”(又名“目标”),而是强调对象的属性是很容易辨认,彼此不同。普通对象易于定义和讨论,因为它们具有边界。不像雾...

虚拟对象是数据容器。

不是您坐下来写一些代码,而是某种程度上讲对象代码。不,您会坐下ELF,COFF,XCOFF(通用目标文件格式)的读取要求,如果您的代码符合这些要求,它将变成您所说的目标代码


-3

通常,学生会理解低级语言或用低级语言编写的程序称为“目标代码”。要理解为什么将编译器的输出称为目标代码是一个问题。通常,输出称为目标,由编译器编译。这是源代码的目标。这并不意味着目标代码是低级语言程序。只是生成目标,所以目标与编译器编译的源代码的目标和目的相关,这就是为什么编译器的输出通常称为“目标代码”的原因。因为低语言不能由编译器编译。诸如“汇编器”或“解释器”之类的翻译器具有低级语言。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.