计算机基础知识2.3 源程序是如何被翻译成目标程序的?.ppt
Throughout: CPE, Competitive, Partner, Other? 2.3 编译test.c源程序生成目 标程序test.obj 杨俊生 Email: yjsm@cuc.edu.cn Telephone:源程序是如何被翻译成目标程序的? 计算机只能直接执行用机器语言编制的程序,为使计算机能识别用汇编语言和高级语言编制的程序,要有一套预先编好的起翻译作用的翻译程序把它们翻译成机器语言程序,这个翻译程序就称为语言处理程序。 被翻译的原始程序称为源程序 翻译后生成的低级语言程序称为目标程序 汇编程序 分为两个阶段 汇编 执行 目标程序执行时,不再需要汇编程序 编译程序 分为两个阶段 编译 执行 目标程序在执行时不再需要编译程序 解释程序(interpreter) 解释程序 不生成目标程序 执行方式(两种) 每次解释执行一条源语句 先将源程序转变成一种中间源程序形式,然后再来解释执行该中间源程序(VB) C语言上机过程 编辑 编译 连接 执行 C语言编译过程 编辑 编译 输入:源程序 输出:目标程序(扩展名为.obj) 连接 执行 词法分析 将字符串形式的源程序分解为具有独立语法意义的单词符号(Token) 语法分析 从词法分析程序取得源程序(单词串形式的),并将一个或多个单词组合为语言的各种语法类。 语义分析 确定源程序的意义 生成源程序的中间形式 代码生成 将源程序的中间形式转换为汇编语言或者机器语言 代码优化 要获得更高效的目标程序 C语言的优化做得比较好 语言处理程序相关术语小结 源程序 目标程序 汇编程序 编译程序 解释程序 词法分析 语法分析 语义分析 语言处理程序相关术语小结 代码生成 代码优化 中国传媒大学计算机与网络中心 汇编程序(assembler) 汇编 语言 源程序 汇编程序 目标 程序 执行 计算机 结果 数据 编译程序(compiler) 源程序 编译程序 目标 程序 执行 计算机 结果 数据 源程序 解释程序 结果 数据 源程序 目标 程序 词法 分析 语法 分析 语义 分析 代码 生成 代码 优化 a=2; a = 2 ; 赋值 语句 a = 2 ; (=,a,2) a=2; (=,a,2) pushbp movbp,sp subsp,2 movword ptr [bp-2],2 movsp,bp popbp * ? 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. * ? 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.