编译原理
AmarisEx
Less is more ?
展开
-
编译原理笔记【第十章目标代码生成】
文章目录第一节 目标代码生成概述1.1 目标代码生成的任务1.2 主要问题1.3 GAM第二节 简单代码生成2.1 x=y2.2 x=-y2.3 x=y+z2.4 转移语句第三节 寄存器分配3.1 合理分配寄存器3.2 变量的访问和回写3.3 寄存器分配实例3.4 寄存器分配方法第四节 存储空间分配4.1 程序的存储空间4.2 活动记录4.3 参数传递4.4 非局部变量第一节 目标代码生成概述1.1 目标代码生成的任务将中间代码翻译成等价的目标代码输入:中间代码(三地址码)输出:目标代码(汇编代码原创 2020-06-09 09:15:04 · 1988 阅读 · 0 评论 -
编译原理笔记【第九章 优化】
文章目录第一节 优化的概念1.1 概念1.2 中间代码优化1.3 划分基本块1.4 程序流图第二节 局部优化第三节 全局优化第一节 优化的概念1.1 概念优化是一种等价的,有效的程序变换等价——不改变程序运行结果;有效——提高程序的效率,包括时间效率和空间效率优化的时间编码阶段的优化:源代码优化(数据结构和算法)编译阶段的优化:中间代码的优化,目标代码的优化1.2 中间代码优化局部优化:基本块内的优化全局优化:基本块外的优化基本块的定义程序中的一段语句序列,它有一个唯一的原创 2020-05-25 11:08:05 · 1523 阅读 · 0 评论 -
编译原理笔记【第八章 语义分析】
文章目录第一节 语义分析概述1.1 语义分析的任务1.2 语义分析和语法分析1.3 语义值1.4 语义动作和语义子程序1.5 翻译1.6 三地址码第二节 说明语句的翻译第三节 赋值语句的翻译第四节 goto语句的翻译第五节 if语句的翻译第六节 while语句的翻译第七节 for语句的翻译第八节 函数的翻译第一节 语义分析概述1.1 语义分析的任务语义检查一致性检查(数据类型是否一致、操作是否合法)越界检查(数组维数是否正确、下标是否越界)语义处理说明语句的翻译(相关信息登记到符号表中)执行原创 2020-05-21 09:15:25 · 7300 阅读 · 1 评论 -
编译原理笔记【第七章 语法分析】
文章目录第一节 语法分析概述1.1 语法分析的任务1.2 语法分析的分类1.3 语法分析具体方法第二节 回溯分析法2.1 分析过程2.2 引起回溯的原因2.3 消除公共左因子2.4 消除直接左递归2.5 消除间接左递归第三节 递归下降分析法第四节 预测分析法第五节 算符优先分析法第六节 LR分析法第一节 语法分析概述1.1 语法分析的任务对源程序经过词法分析后转换称的符号串(即单词符号的序列)进行分析,根据语法规则,判断它是否是一个正确的句子。如果是,可以构造出一个提现句子结构的语法树;如果不是,可以原创 2020-05-19 15:31:48 · 761 阅读 · 0 评论 -
Java调用exe并传参
文章目录问题来源解决思路测试结果完整代码JavaCodeexe源语言(c++)代码问题来源最近遇到一个课设,需要用编译原理的知识写一个sql解释器;整个项目用的是SpringBoot框架,但是不能愉快的白嫖MySql了,既然需要用sql.exe,就会在Java中调用它;selece * from tableName这样的语句就应该作为参数传递到sql.exe中;从而实现增删改查.解决思路实现思路如下:Java中调用sql.exe并传入sql语句sql.exe执行将结果写入result原创 2020-05-19 11:59:10 · 2806 阅读 · 0 评论 -
编译原理笔记【第六章 词法分析】
文章目录第一节 词法分析概述1.1 词法分析的功能1.2 词法分析与语法分析的交互方式第二节 单词的类别2.1 标识符2.2 关键字2.3 常数2.4 运算符2.5 界符第三节 单词的识别3.1 状态转换图3.2 状态转换图识别的字符串3.3 识别单词的状态转换圈3.4 单词的输出第四节 词法分析器实例4.1 确定单词的特征4.2 对单词进行编码4.3 设计状态转换图4.4 实现词法分析器第一节 词法分析概述1.1 词法分析的功能扫描源程序的字符串,按照词法规则,识别出单词作为输出;对识别过程中发现的原创 2020-05-11 15:47:58 · 1385 阅读 · 0 评论 -
编译原理笔记【第五章 编译概述】
文章目录第一节 语言的翻译第二节 编译和解释2.1 编译执行2.2 解释执行2.3 区分编译和解释第三节 编译的步骤3.1 具体步骤3.2 符号表管理和出错处理3.3 一个C程序片段实例第一节 语言的翻译从高级语言到低级语言的翻译叫做编译从汇编语言到机器语言的翻译叫做汇编第二节 编译和解释2.1 编译执行程序的编译执行:先将源程序翻译成目标程序,再执行目标程序并得到结果2.2 解释执行程序的解释执行:直接由解释程序对源程序进行分析、执行并得到结果优点解释执行无需生成独立原创 2020-05-11 11:07:16 · 547 阅读 · 0 评论 -
编译原理笔记【第四章 程序语言的设计】
文章目录第一节 程序设计语言的定义第二节 形式语言与文法第三节 程序设计语言的设计第四节 程序设计语言实例第一节 程序设计语言的定义语言 = 语法(规则)+ 语义(规则)+ 语用(规则)+ 其他规则语法:规定单词符号和语法单位(表达式、语句、程序单元、程序)的形成的规则集合语义:规定语法正确的单词符号和语法单位的含义的规则集合可以从生成(文法)和识别(语法图)的角度描...原创 2020-05-10 15:59:38 · 1205 阅读 · 0 评论 -
编译原理笔记【第三章 控制结构】
文章目录第一节 语句级控制结构1. 顺序2. 选择3. 重复4. 语句级控制结构讨论第二节 单元级控制结构控制结构规定程序语句和程序单元的执行流程的控制机制分为:语句级控制结构单元级控制结构第一节 语句级控制结构语句级控制结构规定语句执行流程的控制三种 语句级控制结构顺序选择(分支)重复(循环)1. 顺序语言可用的、最简单的控制结构A;B;...原创 2020-05-07 15:52:40 · 912 阅读 · 0 评论 -
编译原理笔记【第二章 数据类型】
文章目录第一节 引言1. 什么是数据类型2. 数据类型的作用3. 数据类型的分类第二节 内部类型1. 内部类型的特点2. 内部类型的优越性第三节 用户定义类型1. 笛卡尔积2. 有限映像3. 序列4. 递归5. 判定或6. 幂集第四节 C语言的数据类型第五节 类型检查第六节 类型转换第七节 类型等价第八节 实现模型第一节 引言具体和抽象具体:二进制串(机器语言)抽象:符号注记(汇编语言,高...原创 2020-05-07 09:44:07 · 1432 阅读 · 0 评论 -
编译原理笔记【第一章 绪论】
文章目录第一节 引言1. 程序设计语言的产生2. 程序设计语言的发展3. 翻译与执行4. 三种语言与三种程序5. 语言的设计与实现第二节 强制式语言1. 程序设计语言的分类2. 冯·诺伊曼体系结构3. 绑定的概念4. 变量第三节 程序单元第一节 引言1. 程序设计语言的产生语言本质:一组规则的组合字母表的定义词法规则单词符号的形成规则语法规则语法单位的形成规则短语,从句,...原创 2020-05-06 12:39:55 · 962 阅读 · 0 评论