编译原理
文章平均质量分 61
sziit_jerry
大三在读
展开
-
First-编译原理课程简介
First-课程简介什么是编译器 是一个软件程序 核心功能:源代码(C/C++/Objcet-C/JAVA) -> 目标代码(x86/IA64/ARM/MIPS) 运用流程:源代码 -> 编译器 -> 目标代码 -> 计算机 -> 计算结果 编译器带来的好处及其影响 好处:减少程序员工作的代码量 编译器对计算机科学的发展的影响: 理论上:算法、数据结构、形式语言与自动机等 实践上:软件工程、体系结翻译 2016-05-27 10:04:42 · 712 阅读 · 0 评论 -
编译原理-2词法分析
Second-词法分析编译器阶段 源程序 -> 编译器 -> 目标程序 编译器: 前端 -> 中间表示 -> 后端 前端: 词法分析器 -> 记号 -> 语法分析器 中间表示: 抽象语法树 后端: 语义分析器 词法分析器: 一段程序代码,主要功能是把字符流转变为记号流 词法分析器列子: 字符流输入:if (x > 5) 词法分析结果:IF LPAREN IDENT(x) GT INT(5) RP翻译 2016-05-27 15:47:29 · 3100 阅读 · 0 评论 -
3.1语法分析-语法分析简介
语法分析简介前端 源程序–<词法分析器–记号–语法分析–抽象语法树–语义分析器>–中间表示 语法分析器的任务 记号流和语言的语法规则–>语法分析器–>语法树 错误例子分析 语法错误处理 if ((x >5) y = "hello" else z = 1,经过语法分析后程序会报错Syntax Error: line 1, missing ) Syntax Error: line 2,翻译 2016-06-02 13:22:52 · 515 阅读 · 0 评论 -
3.2语法分析-上下文无关文法
语法分析–上下文无关文法历史背景 乔姆斯基为研究自然语言构造的一系列数学工具 乔姆斯基文法体系:其中后两种应用不广 3行文法:词法:正则表达式 2行文法:语法:上下文无关文法 1行文法:上下文有关文法 0行文法:任意文法 示例 自然语言中的句子典型结构 主语 谓语 宾语 名词 动词 名词 例子: 名词:{羊、老虎、草、水} 动词:{吃、喝} 句子:有些事合乎语义的有些事不符的 羊吃草 草吃羊翻译 2016-06-02 13:41:21 · 893 阅读 · 0 评论 -
3.3语法分析-分析树与二义性
前端 源程序–<词法分析器–记号–语法分析–抽象语法树–语义分析器>–中间表示 语法分析器的任务 记号流和语言的语法规则–>语法分析器–>语法树 推导与分析树S -> N V N (名词 动词 名词) N -> s // 羊 | t // 老虎 | g // 草 | w // 水 V -> e // 吃 | d /翻译 2016-06-05 13:50:40 · 1363 阅读 · 0 评论