
【计】 compiler target machine
【计】 APL compiler APL; BASIC compiler; compile routine; compiler
compiling program; compiling routine
【经】 compiler
【计】 target machine
编译程序目标机(Target Machine of Compiler)是编译原理中的核心概念,指编译器生成的目标代码所针对运行的计算机系统或执行环境。以下从汉英词典角度分层解释其详细含义与技术要点:
编译程序(Compiler)
将高级语言源代码(如C/C++)整体翻译为等效的低级语言(如汇编或机器码)的程序。
英文对照:Compiler - A program that translates source code written in a high-level language into object code.
目标机(Target Machine)
指最终执行生成代码的硬件平台或虚拟机环境,其指令集架构(ISA)、操作系统和运行时库决定了编译器的代码生成策略。
英文对照:Target Machine - The hardware/software environment for which the compiler generates executable code.
核心定义
编译程序目标机是编译器后端设计的基准平台,其特性(如寄存器数量、内存寻址模式、指令集约束)直接影响代码优化策略和可执行文件格式(如ELF、PE)。
示例:针对ARM架构的目标机需生成Thumb指令,而x86目标机则生成IA-32机器码。
与宿主机的区别
跨平台编译(Cross-compilation)即宿主机与目标机不同的场景。
指令集架构(ISA)
包括RISC(精简指令集)或CISC(复杂指令集),决定编译器如何选择指令序列。
来源:计算机体系结构标准(如IEEE-CS教材)
操作系统与ABI
应用程序二进制接口(ABI)规范函数调用约定、系统调用号等,影响链接库与系统交互。
来源:System V ABI文档(x86-64架构)
内存与寄存器约束
寄存器数量(如x86仅有16个通用寄存器)和内存对齐要求,驱动编译器的寄存器分配算法。
来源:《编译原理》(龙书)第8章
类型 | 实例 | 编译器适配示例 |
---|---|---|
物理硬件平台 | x86-64 CPU, ARM Cortex-M | GCC的-march=armv8-a 编译选项 |
虚拟机环境 | JVM, WebAssembly VM | Java编译器生成字节码 |
模拟器环境 | QEMU, ROS模拟器 | 嵌入式开发交叉编译至虚拟目标机 |
编译原理经典定义
“目标机是编译器后端代码生成所依赖的机器模型,其指令集和系统特性决定了输出代码的形式。”
——《Compilers: Principles, Techniques, and Tools》(龙书),
工业标准实践
GCC编译器的目标机配置通过--target
参数指定,支持200+种目标架构(见GNU官方文档)。
来源:GCC Manual, Target Configuration Section
学术机构解释
剑桥大学计算机实验室定义目标机为“编译器输出代码的运行时执行环境”。
来源:University of Cambridge, Compiler Design Lecture Notes
编译器将中间表示(IR)映射到目标机指令的过程可抽象为:
$$ begin{aligned} text{IR} xrightarrow{text{指令选择}} & text{目标机指令序列} xrightarrow{text{寄存器分配}} & text{物理寄存器映射} xrightarrow{text{指令调度}} & text{流水线优化代码} end{aligned} $$
推导自《现代编译器的代码生成技术》(ACM Computing Surveys)
“编译程序目标机”这一表述需要拆解为两个核心概念来理解:
编译程序(Compiler) 指将高级编程语言源代码转换为计算机可执行代码的翻译程序。其工作流程分为词法分析、语法分析、语义分析、中间代码生成、优化和目标代码生成等阶段。
目标机(Target Machine) 指编译生成的可执行代码最终运行的计算机环境,包含两个维度:
二者关系: 编译程序在代码生成阶段会根据目标机的特性进行适配,例如:
扩展说明: 当进行交叉编译时,编译程序的运行平台(宿主机)与目标机不同,例如在x86电脑上生成树莓派(ARM架构)的可执行程序。这种情况下,编译器需要特殊配置来识别目标机参数。
不孕症材料低估调整超氧物歧化酶初步措施储存程序逻辑初始化循环程序大茴芹带锯机副刀豆氨酸干预个人隐私个人不法行为规定尺寸溅砂金属导体扩大器链式分配六角鼻机头木熟虫胶平衡砂心清除梯杠取消定货肉托果油三值逻辑差声控编码器视网膜反射实用系统说明物调速器突发噪声信号玩耍