辽宁大学编译原理课件part1.pptVIP

  • 1
  • 0
  • 约9.93千字
  • 约 68页
  • 2017-08-19 发布于北京
  • 举报
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 语义 year(年)、month(月)、day(日) 语义约束条件 0 month.value 13 0 day.value 32,31,30 0 year.value 10000 例1-1 DOS 命令 date输出格式处理 * * 习题 1. 什么叫编译程序?什么叫编译系统?设想当你是C语言的编译程序的设计师时,你希望给出什么样的系统结构。 2.试分析一个简短的 C 程序,找出几个属于语法、词法、语义的语言现象。 3.理解交叉编译/移植和自展技术 上次课主要内容 中间代码 目标代码生成器 代码优化器 语义分析与中间代码生成器 语法分析器 表 格 管 理 出 错 处 理 中间代码 目标代码 语法单位 单词符号 词法分析器 源程序 变成一个单词序列 走向目标1 一个平滑的字符流 走向目标2 走向目标3 走向目标4 走向目标5 得到语法成分! 更接近机器语言 更高的效率 达到目标 * * 编译程序 上次课主要内容 编译程序的组织 编译的扫描遍数 前端、后端 前端 后端 中间代码 中间代码 优化 中间代码 * * 上次课主要内容 T形图 源语言 表示语言 目标语言 编译程序实现技术 移植:用“C”语言写一个“C”语言编译器 现有编译器的利用:用“C”语言写一个“NEW”语言编译器 自展:找一个子集,开始滚雪球 自动生成:lex、Yacc * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 1.2 翻译系统 编译程序(Compiler) 高级语言程序→汇编/机器语言程序 高级语言源程序 汇编/机器语言目标程序 编译程序 * * 1.2 翻译系统 支撑环境、运行库等 编译系统(Compiling System) 编译系统=编译程序+运行系统 SourceProgram Compiler ObjectProgram Input RunSystem Output * * 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 Translator * * 1.3 编译系统的功能分析 分析 词法、语法、语义 翻译 语句的翻译、代码生成 例如:标识符左值与右值的绑定(binding) 变量:存储单元; 名字:值 函数:目标代码序列; 名字;入口地址 * * 上次课主要内容 基本概念 翻译程序、编译程序、解释程序、汇编程序、其他 编译系统:编译程序+运行系统 1.4 编译程序总体结构 目标代码生成器 代码优化器 语义分析与中间代码生成器 语法分析器 表 格 管 理 出 错 处 理 中间代码 中间代码 目标代码 语法单位 单词符号 词法分析器 源程序 * * 1. 词法分析 例: res=fact *(term1+term2); 结果 IDN res ‘=’ IDN fact ‘*’ ‘(’ IDN term1 ‘+’ IDN term2 ‘)’ ‘;’ 在机器的眼里,这只是一个字符串! 走向目标1:变成一个单词序列! 在机器的眼里,变成一个符号序列! * * 1、词法分析 词法分析器 (Lexical Analyzer)又叫做扫描器(Scanner),完成词法分析 功能:词法分析器从左到右扫描源程序(字符串),并将其转换成单词(记号—Token)串;同时查词法错误,进行标识符登记——符号表管理 输入:字符串 输出:(种别码,属性值)——序对 属性值——token的机内表示 数据结构? * * 2.

文档评论(0)

1亿VIP精品文档

相关文档