编译原理课件.pptVIP

  • 11
  • 0
  • 约 522页
  • 2022-09-08 发布于山东
  • 举报
“何为欢喜?”“金榜,提名,相思许。”“可否具体?”“十里,红妆,花嫁娶。

第1章 引论 1.1 计算机语言的发展 1.2 翻译系统 1.3 编译系统的功能分析 1.4 编译程序总体结构 1.5 编译程序的生成 1.6 编译技术的应用 1.1 计算机语言的发展 机器语言(Machine Language) 汇编语言(Assemble Language) 0、1代码与助记符:更接近于计算机硬件指令系统的工作 高级语言(High Level Language) 定义数据、描述算法(程序) 如:C、FORTRAN、PASCAL、C++、JAVA、SQL(数据定义、数据操作) 命令语言(Command) 以功能封装为特征 高级语言的分类 强制式语言(Imperative Language) FORTRAN(段结构)、BASIC、Pascal(嵌套结构)、C…… 函数(应用)式语言(Functional Language) LISP、ML…… 逻辑式(基于规则)语言(Logical Language) Prolog…… 面向对象语言(Object-Oriented Language) Smalltalk、C++ 、Java、Ada(程序包)…… 1.2 翻译系统 翻译程序(Translator) 将某一种语言描述的程序(源程序——Source Program)翻译成等价的另一种语言描述的程序(目标程序——Object Program)的程序。 翻译程序 源程序 目标程序 (*.C / *.PAS/*.AS) (*.OBJ / *.EXE/*.*) 1.2 翻译系统 解释程序(Interpreter) 口译与笔译(单句提交与整篇提交) 源程序 输入数据 计算结果 解释程序 1.2 翻译系统 编译程序(Compiler) 高级语言程序→汇编/机器语言程序 源程序 目标程序 编译程序 1.2 编译系统 SP Compiler S-Source O-Object OP P-Program Input RS RS-Run Sys. Output 编译系统(Compiling System) 编译系统=编译程序+运行系统 支撑环境、 运行库等 1.2 翻译系统 其它: 诊断编译程序(Diagnostic Compiler) 优化编译程序(Optimizing Compiler) 交叉编译程序(Cross Compiler) 可变目标编译程序(Retargetable Compiler) 并行编译程序(Parallelizing Compiler) 汇编程序(Assembler)、交叉汇编程序(Cross Assembler)、反汇编程序(Disassembler) 1.2 翻译系统—汇总 ML MLP Assembler Disassembler AL ALP Compiler Data HL HLP Interpreter Result M-Machine L-Languge P-Program A-Assemble H-High Level 1.3 编译系统的功能分析 程序分析 词法、语法、语义 分析综合 语句的翻译、代码生成 例如:标识符左值与右值的绑定(binding) 变量:存储单元 函数:目标代码序列 1.4 编译程序总体结构请参阅P5图1.1 目标代码生成器 代码优化器 语义分析与中间代码生成器 语法分析器 1. 词法分析 例: res=fact *(term1 +term2); 结果 IDN res ‘=’ IDN fact ‘*’ ‘(’ IDN term1 ‘+’ IDN term2 ‘)’ ‘;’ 1、词法分析 词法分析器 (Lexical Analyzer)又叫做扫描器(Scanner),完成词法分析 功能:词法分析器从左到右扫描源程序(字符串),并将其转换成单词(记号—Token)串;同时查词法错误,进行标识符登记——符号表管理。 输入:字符串 输出:(种别码,属性值)——序对 属性值——token的机内表示 2、语法分析 语法分析器(Syntax Analyzer,又叫Parser ) 完成语法分析 功能:Parser实现“组词成句”,构造分析树,指出语法错误,指导翻译 输入:Token序列 输出:语法成分 2. 语法分析 res=fact *(term1+term2); 字符串 3. 语义分析 功能:分析由语法分析器给出的语法单位的语义 获取标识符的属性:类型、作用域等 语义检查:运算的合法性、取值范围等 子程序的静态绑定:代码的相对地址 变量的静态绑定:数据的相对地址 4. 中间代码生成 中间代码(intermediate Cod

文档评论(0)

1亿VIP精品文档

相关文档