第一章绪论什么是编译
什 么 是 编 译 第一章 绪论
计算机程序设计语言及编译类似于数学定义或自然语言的简洁形式接近人类表达习惯高级语言X=2》不依赖于特定机器(High Level Language)编享效率高编译引入助记符(Compiling)依赖于特定机器编译汇编语言非计算机专业人员MOVX.2(AssemblyLanguage)(Compiling使用受限制编享效率依然很低汇编可以被计算机直接理解(Assembling)与人类表达习惯机器语言相去甚远C70600000002(Machine Language)难记忆》难编写、难阅读易写错
引入助记符 可以被计算机直接理解 计算机程序设计语言及编译 机器语言 (Machine Language ) 汇编语言 (Assembly Language ) 高级语言 ( High Level Language ) 汇编 (Assembling) 编译 (Compiling) C706 0000 0002 MOV X, 2 x = 2 接近人类表达习惯 不依赖于特定机器 编写效率高 类似于数学定义或 自然语言的简洁形式 与人类表达习惯 相去甚远 难记忆 难编写、难阅读 易写错 依赖于特定机器, 非计算机专业人员 使用受限制 编写效率依然很低 编译 (Compiling)
计算机程序设计语言及编译高级语言X=2(HighLevel Language)编译(Compiling)编译汇编语言MOVX.2(AssemblyLanguage)(Compiling)汇编(Assembling)机器语言C70600000002(MachineLanguage)编译:将高级语言翻译成汇编语言或机器语言的过程源语言目标语言
编译:将高级语言翻译成汇编语言或机器语言的过程 源语言 目标语言 计算机程序设计语言及编译 机器语言 (Machine Language ) 汇编语言 (Assembly Language ) 高级语言 ( High Level Language ) 汇编 (Assembling) 编译 (Compiling) C706 0000 0002 MOV X, 2 x = 2 编译 (Compiling)
编译器在语言处理系统中的位置源程序预处理器(Preprocessor)经过预处理的源程序把存储在不同文件中的源程序聚合在一起编译器把被称为宏的缩写语汇编语言程序句转换为原始语句汇编器(Assembler)可重定位的机器代码链接器(Linker)/加载器(Loader)目标机器代码
编译器在语言处理系统中的位置 预处理器 (Preprocessor) 源程序 编译器 经过预处理的源程序 汇编语言程序 链接器 (Linker) /加载器 (Loader) 可重定位的机器代码 目标机器代码 把存储在不同文件中 的源程序聚合在一起 把被称为宏的缩写语 句转换为原始语句 汇编器 (Assembler)
编译器在语言处理系统中的位置源程序预处理器(Preprocessor)经过预处理的源程序编译器加载器:可重定位(Relocatable):汇编语言程序修改可重定位地址;在内存中存放的起始将修改后的指令和数据位置L不是固定的汇编器(Assembler)放到内存中适当的位置可重定位的机器代码链接器(Linker)/加载器(Loader)目标机器代码起始位置+相对地址一绝对地址
可重定位(Relocatable): 在内存中存放的起始 位置L不是固定的 起始位置 +相对地址=绝对地址 预处理器 (Preprocessor) 源程序 编译器 经过预处理的源程序 汇编语言程序 链接器 (Linker) /加载器 (Loader) 可重定位的机器代码 目标机器代码 汇编器 (Assembler) 编译器在语言处理系统中的位置 加载器: 修改可重定位地址; 将修改后的指令和数据 放到内存中适当的位置