翻译程序的分类 翻译程序按所处理源语言不同分为两种 编译程序 汇编程序 高级语言 汇编或机器语宣 源程序 编译程序 且标程序 (*.C/*.PAS) (*OBT /*EXE) 汇编语言 机器语宣 源程序 汇编程序 且标程序 (*ASM) (*EXE) 悲
6 翻译程序的分类 翻译程序按所处理源语言不同分为两种 编译程序 汇编程序 高级语言 源程序 (*.C / *.PAS) 编译程序 汇编或机器语言 目标程序 (*.OBJ / *.EXE) 汇编语言 源程序 (*.ASM) 汇编程序 机器语言 目标程序 ( *.EXE)
编译程序和解释程序 Basic、Lisp、Sql解释程序、Unix命令语言 解释程序及很多脚本语言Javascript等都解 释执行的。 0 C、C+、Pascal等语言是编译执行的。 Java语言的处理环境既有编译程序,也有解 释程序,见图1.5(p9) Java→编译程序→Bytecode→解释程序 悲
7 编译程序和解释程序 Basic、Lisp、Sql解释程序、Unix命令语言 解释程序及很多脚本语言Javascript等都解 释执行的。 C、C++、Pascal等语言是编译执行的。 Java语言的处理环境既有编译程序,也有解 释程序,见图1.5(p9) Java → 编译程序 → Bytecode →解释程序
需预处理的源程序 高级语言程序 预处理程序 的处理过程P1 源程序 ▣ 编译程序 ■ 且标汇编程序 汇编程序 可再装配的机器代码 装配/连接-编译程序 可再装配标文件 章节目录 绝对机器代码 d
8 高级语言程序 的处理过程 P1 需预处理的源程序 预处理程序 源程序 编译程序 目标汇编程序 汇编程序 可再装配的机器代码 装配/连接-编译程序 可再装配目标文件 绝对机器代码 章节目录
1.2.1编译过程概述D2 编译过程可分为下面5个阶段 词法分析 语法分析 语义分析和中间代码生成 优化 目标代码生成 表格管理和错误处理
9 1.2.1编译过程概述 p2 编译过程可分为下面5个阶段 词法分析 语法分析 语义分析和中间代码生成 优化 目标代码生成 表格管理和错误处理
第一阶段词法分析p2 例某C语言源程序 任务 main {float sum,first,count; 输入源程序(字符串) .sum=first+count*10;. 根据语言的词法规则 输出结果 对构成源程序的字符 class value 串进行扫描和分解 保留字 main 识别出一个个的单词 界符一左括号 单词内部表示形式 界符-右括号 二元式 界符一左花括号 (class,value) 保留字 float 标识符1-id1 sum 单词 单词值 算符-乘号 米 米型 整数 10 。 逃 10
10 第一阶段 词法分析p2 任务 输入源程序(字符串) 根据语言的词法规则 对构成源程序的字符 串进行扫描和分解 识别出一个个的单词 单词内部表示形式 二元式 (class,value) 单词 类型 单词值 例某C语言源程序 main( ) {float sum,first,count; .sum=first+count*10;. } 输出结果 class value 保留字 main 界符-左括号 ( 界符-右括号 ) 界符-左花括号 { 保留字 float 标识符1-id1 sum . 算符-乘号 * 整数 10