
编译技术
文章平均质量分 55
夏天的鼻涕怪
来这里互相学习
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
编译原理:词法分析的简单代码实现
词法分析:字符流转换为记号流问题描述:对循环语句和条件判断语句编写词法分析编译程序,只能通过一遍扫描完成。 要求: (1)关键字: for if then else while do until int input output,所有关键字都是小写。 (2)运算符和分隔符: : = + - *...原创 2018-09-17 11:19:00 · 8331 阅读 · 3 评论 -
编译原理:偶数个0偶数个1 的正规式为什么是(00|11 | ( (01|10) (00|11) * (01| 10)))*
首先应该明确一下问题我们的问题等价于“偶数个0偶数个1的正规式是什么”,而不是“(00|11 | ( (01|10) (00|11) * (01| 10))) *就能表示偶数个0偶数个1 的正规式”。可以想一下,在二进制串中0和1的个数的状态无非以下四种:偶数个0,偶数个1 -------------0偶数个0,奇数个1 -------------①奇数个0,偶数个1 --...原创 2018-09-18 19:52:12 · 28982 阅读 · 9 评论 -
编译原理:用flex编写词法分析器
要求:1)每遇到你的学号,就输出你的名字,对于其他的串原样输出。2)统计输入文件中字母的数目。3)统计输入文件中数字的数目。4)统计输入文件之中的行数建议:接下来提到的文件和文件夹都放到桌面写.l文件① 新建文本文档->重命名为dd.l->保存(dd可以改)就像这样:② 输入以下代码%{#include <stdlib.h>#include <...原创 2018-09-27 11:51:36 · 18211 阅读 · 5 评论 -
编译原理:语法分析1-递归下降
要求:使用的文法如下:E →TE’E → + TE’ | εT → FT’T →* FT’ | εF → (E) | id对于任意给定的输入串(词法记号流)进行语法分析,递归下降方法实现。要有一定的错误处理功能。即对错误能提示,并且能在一定程度上忽略尽量少的记号来进行接下来的分析。可以参考书上介绍的同步记号集合来处理。可能的出错情况:idid*id, id++...原创 2018-10-04 18:41:55 · 5277 阅读 · 3 评论 -
编译原理:语法分析2-非递归的预测分析
用Python的DataFrame保存预测分析表是个好主意非递归的预测分析器的模型要求:使用的文法如下:E →TE’E → + TE’ | εT → FT’T →* FT’ | εF → (E) | id对于任意给定的输入串(词法记号流)进行语法分析,非递归方法实现。要有一定的错误处理功能。即对错误能提示,并且能在一定程度上忽略尽量少的记号来进行接下来的...原创 2018-10-04 23:27:27 · 3707 阅读 · 0 评论 -
编译原理:求First集和Follow集
代码#输入文法求First集和Follow集#要求大写字母表示非终结符,小写字母表示终结符#最后一个产生式以$结尾或者输入$表示输入结束#默认第一个产生式的→左边为起始符号def inputGrammer(): #接收文法输入的函数 grammer=[]#声明一个文法列表,用来保存该文法的各个产生式 print('箭头请用符号→') print('空串请用符号ε...原创 2018-10-25 22:16:04 · 4196 阅读 · 1 评论 -
编译原理:用Yacc实现简易计算器(小白篇)
要求下载bisonhttps://sourceforge.net/projects/unxutils/下载之后解压即可配置环境变量①在系统变量Path中新增如下变量\user\local\wbin可以在刚才解压的文件夹里找到②在系统变量中新增变量BISON_SIMPLE和BISON_HAIRY,变量值如下图生成.c文件①找到bison.exe,并复制到桌面②...原创 2018-11-03 15:43:32 · 6828 阅读 · 1 评论 -
编译原理:语法分析3-LR分析器
要求代码#语法分析,LR分析器import pandas as pddata={'id':['s5',' ',' ',' ','s5',' ','s5','s5',' ',' ',' ',' '], '+':[' ','s6','r2','r4',' ','r6',' ',' ','s6','r1','r3','r5'], '*':[' ',' ','s7','...原创 2018-11-02 15:54:55 · 7886 阅读 · 0 评论 -
编译原理:语义分析之语法制导的定义的简单实现
语法制导的定义:为每一个产生式编制一个语义子程序。当一个产生式获得匹配时,调用相应的语义子程序实现语义检查和翻译。可以类比递归下降的预测分析要求:实现简易计算器其实只需要在LR分析器的基础上作适当修改代码#语义分析,计算器import pandas as pddata={'id':['s5',' ',' ',' ','s5',' ','s5','s5','s5',...原创 2018-11-28 17:06:19 · 2203 阅读 · 0 评论