文档详情

编译原理第01章概要1.ppt

发布:2017-07-06约字共58页下载文档
文本预览下载声明
编译原理 第一章 概述 第二章 PL/0编译系统 第三章词法分析程序的自动构造 第四章文法和语言 第五章自顶向下语法分析 LL(1)文法 第六章自底向上语法分析 LR分析程序及其自动构造 第七章 语法制导翻译和中间代码生成 第八章 运行时的存储组织和管理 第九章 代码优化 第十章 代码生成 第一章 概述 1.1什麽是编译程序 1.2编译过程和编译程序的结构 1.3 编译技术的发展和应用 参考书 什么是编译程序(compiler) 编译程序是现代计算机系统的基本组成部分. 从功能上看,一个编译程序就是一个语言翻译程序,它把一种语言(称作源语言)书写的程序翻译成另一种语言(称作目标语言)的等价的程序. 1.1 功能 什么是编译程序 分类 软件 系统软件 语言处理系统 分类 软件:计算机系统中的程序及其文档 系统软件:居于计算机系统中最靠近硬件的一层,其他软件一般都通过系统软件发挥作用。他和具体的应用领域无关,如编译系统和操作系统等。 语言处理系统:把软件语言书写的各种程序处理成可在计算机上执行的程序。 软件语言:用于书写软件的语言。它主要包括需求定义语言,功能性语言,设计性语言,程序设计语言以及文档语言。 什么是编译程序 语言转(变)换系统 术语 编译程序(compiler) 编译程序的源语言(源程序) (source language)(source program) 编译程序的目标语言(目标程序) (object or target language)(object or target program) 编译程序的实现语言(implementation language) 语言处理程序(language processor) 语言转(变)换(language transformation) 1.2 编译过程和编译程序的结构 编译逻辑过程 词法分析 语法分析 语义分析 中间代码生成 代码优化 目标代码生成 词法分析 从左至右读字符流的源程序、识别(拼)单词 例: position := initial + rate * 60; 词法分析 position := initial + rate * 60; 单词类型 单词值 标识符1(id1) position 算符(赋值) := 标识符2(id2) initial 算符(加) + 标识符3(id3) rate 算符(乘) * 整数 60 分号 ; 又如一个C源程序片断: int a; a = a + 2; 词法分析后可能返回: 单词类型 单词值 保留字 int 标识符(变量名) a 界符 ; 标识符(变量名) a 算符(赋值) = 标识符(变量名) a 算符(加) + 整数 2 界符 ; 有关术语 词法分析(lexical analysis or scanning) --The stream of characters making up a source program is read from left to right and grouped into tokens,which are sequences of characters that have a collective meaning. 单词---token 保留字---reserved word 标识符 ---identifier(user-defined name) 语法分析 功能:层次分析.依据源程序的语法规则把源程序的单词序列组成语法短语(表示成语法树). position := initial + rate * 60 ; 规则 赋值语句::=标识符“:=”表达式 表达式::=表达式“+”表达式 表达式::=表达式“*”表达式 表达式::=“(”表达式“)” 表达式::=标识符 表达式::=整数 表达式::=实数 id1:=id2+id3*N 术语 语法分析(syntax analysis or parsing) The
显示全部
相似文档