基于LL(1)方法的语法分析程序 实现对输入文法的分析 化简左递归 判断输入的句型
2019-12-21 21:59:26 70KB 编译课设LL(1)语法分析
1
一 词法分析 1 设计目的:通过完成词法分析程序,了解词法分析的过程 2、设计内容:用C或PASCAL语言实现对某语言(例如:C、PASCAL)的词法识别程序,生成单词,并分类存在符号表中。 3.源程序: (1):主函数 Main() void main() {accidence_analyse();//词法分析主程序 out=fopen("tim0n.c","r");//打开生成结果文件tim0n.c test_function();//测试函数 fclose(out); }
2019-12-21 21:58:18 54KB 词法识别 代码 编译原理 程序设计
1
用QT实现的C++把pascal编译成C的编译器,图形化界面,代码带有注释,比较好理解,QT环境配置好了应该能运行,供大家学习
2019-12-21 21:58:12 13.75MB 编译器
1
编译原理课程设计项目,带报告 根据LL(1)分析法编写的语法分析程序: (1)输入已知文法,由程序自动构造文法的分析表M。 (2)所开发的程序可适用于不同的文法和任意输入串,且能判断该文法是否为LL(1)文法。 (3)对于输入的文法和符号串,正确判断此串是否为文法的句子,输出分析过程。 (4)可消除左递归左公因子 图形界面良好 可分析如下产生式集合(空字用‘@’表示) "E->E+T|T,T->T*F|F,F->i|(E)"; "S->ME,E->+ME|@,M->FT,T->*FT|@,F->i|(S)"; "S->AB,S->bC,A->@,A->b,B->@,B->aD,C->AD,C->b,D->aS,D->c";"S->AB|b,A->Sm,B->eA";
2019-12-21 21:55:42 1.57MB LL(1) 编译原理 课程设计 项目
1
一.课程设计目的 在分析理解一个教学型编译程序(如PL/0)的基础上,对其词法分析程序、语法分析程序和语义处理程序进行部分修改扩充。 二.课程设计要求 1. 基本内容 (1)扩充赋值运算:+= 和 -= (2)扩充语句(Pascal的FOR语句): ①FOR := TO DO ②FOR := DOWNTO DO 其中,语句①的循环变量的步长为2, 语句②的循环变量的步长为-2。 2. 选做内容 (1)增加运算:++ 和 --。 (2)增加类型:① 字符类型; ② 实数类型。 (3)扩充函数:① 有返回值和返回语句;② 有参数函数。 (4)增加一维数组类型(可增加指令)。 (5)其他典型语言设施。 3.本人在课程设计中已实现的功能 (1)增加单词:保留字 ELSE,FOR,TO,DOWNTO, REPEAT, UNTIL, RETURN 运算符 +=,-=,++,-- (2)修改单词:不等号# 改为 (3)增加条件语句的ELSE子句 (4)扩充赋值运算:+= 和 -= (5)扩充语句 ①FOR := TO DO ②FOR := DOWNTO DO (6)增加运算:++ 和 --(包括前后++、--运算) (7)增加一维数组类型 (8) 其他典型语言设施:REPEAT 语句 UNTIL 语句
2019-12-21 21:53:00 1.01MB 广工 编译原理 课程设计 保留字
1
哈工程编译原理课程设计源码+满分报告
2019-12-21 21:46:51 848KB 哈工程 编译原理 课程设计 源码
1
中缀式转后缀式 主要功能与要求: 采用语法制导翻译模式设计一个包含词法分析,语法分析,符号表管理,错误处理及输出功能模块的,由中缀式转换为后缀式的编译器。该编译器能够分析的表达式中能够包含+,-,*,/,(),变量名,常数等。 要求: 1) 可以输入要编译的文件名,从给定文件中读取编译的源程序,也可从键盘输入; 2) 能进行功能选择进行词法分析,语法分析,中间代码生成,输出; 3) 可以输出二元式序列(种别编码,属性值),符号表,状态栈分析过程,四元式表; 4) 能够分析括号是否匹配,如有错误,给出相应错误提示信息,及错误定位; 5) 输出表达式的后缀式采用语法制导翻译模式设计一个包含词法分析、语法分析、符号表管理、错误处理及输出等功能模块的、由中缀表达式到后缀表达式的完整编译器。
2019-12-21 21:46:05 987KB 编译原理 文档 代码
1
这是我做的编译原理简单优先文法判定和分析器的构造。 包括第一章 概述 3 1.1 项目背景 3 1.2 设计目的 3 1.3 实验环境与开发工具 3 1.4 C++语言 4 第二章 需求分析 5 2.1 问题陈述 5 2.1.1 简单优先文法 5 2.1.2 简单优先文法的定义 6 2.1.3 简单优先文法的算法 6 2.1.4 简单优先分析法的操作步骤 6 2.2 需要完成的功能 7 2.2.1 判定输入的文法是否是简单优先文法 7 2.2.2 构造文法的简单优先关系矩阵 7 2.3 分析器的构造 7 第三章 逻辑设计 9 3.1系统的组织与基本工作流程 9 3.2 总体结构逻辑结构图 9 第思章 软件功能设计 11 4.1 软件功能分析 11 4.1.1 判定文法是否为简单优先文法 11 4.1.2 查找分析文法优先关系相等 12 4.1.3 查找分析文法中小于的关系 14 4.1.4 查找分析文法中大于的关系 15 4.1.5 构造文法的简单优先关系矩阵 16 第五章 界面设计 18 5.1用户输入文法界面 19 5.2优先矩阵的初始状态 20 5.3 文法中等于关系 21 5.4 小于关系 22 5.5 大于关系 23 5.6 优先关系矩阵 25 小结 27 参考文献 28 附录 29
2019-12-21 21:34:53 337KB 编译原理 课程设计 概要 引言
1
词法分析器(c++版) 词法分析程序,能识别出所有的关键字、标识符、常数、运算符(包括复合运算符,如++)、界符;能过滤掉源程序中的注释、空格、制表符、换行符等等
1
使用lex和yacc 完成simpleC语言简单语句的分析 编译原理课程设计
2019-12-21 21:32:36 650KB 使用lex和yacc 简单语句分析
1