该编译器的词法分析部分能够识别以 PASCAL 语言编写的源程序,并进行词法分析给出分析结果。该词法分析器能够实现:有正确的单词流输出(类型码、坐标、单词的值);能够检查词法是否有错误(输出词法错误如果没有错误,返回 0,如果有错误,需要报告词法错误在源程序中的位置。能够越过错误,分解下一个单词,直到源程序结束);能够过滤空格、Tab、回车、识别注释,并去掉注释;整数能够处理越界(整数一旦超过 65535,则自动识别为 65535),标识符识别前 8 位(标识符一旦超过 8,则自动识别为 8 位);该词法分析器主要经过有限自动机的状态跳转来实现,根据自动机结束状态来得到该单词的 token 值。 该编译器的语法部分采用了 SLR(1)分析法,实现对表达式、各说明语句、控制语句 进行语法分析。若语法分析正确,则用语法制导翻译进行语义分析;若是出错,则报告语法错误,并给出语法在源程序中的位置。该编译器语义分析部分采用了自底向上分析的 S 属性文法,该阶段最终实现生成四元式的中间代码。
1
实验内容与要求: 1. 增加单词:保留字 ELSE,FOR,TO, DOWNTO 运算符 +=,- =,++,- - 修改单词:不等号# 改为 2. 增加条件语句的ELSE子句 3. 扩充赋值运算 += 和 -= 4.扩充语句(Pascal的FOR语句): ①FOR := TO DO ②FOR := DOWNTO DO 其中,语句①的循环变量的步长为1, 语句②的循环变量的步长为-1。 5. 选做内容 (1)增加运算:++ 和 --。 (2)增加类型:① 字符类型; ② 实数类型。 (3)扩充函数:① 有返回值和返回语句;② 有参数函数。 (4)增加一维数组类型(可增加指令)
1
课设得了优 :-) 编译原理的课程设计SLR(1)分析器 包含求FIRST,FOLLOW集合 LR(0)项目规范集组 SLR(1)分析表 SLR(1)分析器
2021-05-28 11:02:06 386KB 编译原理 课程设计 SLR SLR1
1
微型卡 编译原理课程实践,设计实现C语言编译器。 参考老师提供的框架(Java实现),实现完整的语言规范的子集(C ++实现)。 1个待办事项清单 预先 词法分析 语法分析 语义分析 中间代码生成 代码优化 代码生成 2实现思路 2.1词法分析 对应代码: 目前能正确识别标识符,关键字,常量(整型,浮点型,字符常量,字符串字面量),符号(运算符,限定符) )
2021-05-26 20:43:09 1.1MB C++
1
这是我的编译原理课程设计,源代码+文档都有!!!
2021-05-25 22:33:21 114KB 编译原理 课程设计 源代码 报告
1
词法分析器、语法分析器 生成中间代码和汇编指令代码的生成器 编写一个完整的编译程序,包括词法分析器、语法分析器以及实现对简单程序设计语言中的逻辑运算表达式、算术运算表达式、赋值语句、IF语句、While语句和do…while语句进行编译,并生成中间代码和汇编指令代码的生成器。    实现一个简单的具有词法分析、语法、语义分析、错误处理的编译器
2021-05-25 22:29:47 18.58MB 编译原理 课程设计 代码 报告
1
编译原理课程设计,里面包含完整的代码和实验报告,以及个人信息,请朋友们慎重使用
2021-05-25 05:38:58 1.47MB 编译原理 课程设计 实验报告
1
布尔表达式的语法分析及语义分析,布尔表达式,编译原理课设,语法分析,语义分析
1
设计并实现一个DBMS原型系统,可以接受基本的SQL语句,对其进行词法分析、语法分析,然后解释执行SQL语句,完成对数据库文件的相应操作,实现DBMS的基本功能。
2021-05-23 18:37:01 1.22MB 编译原理课程设计 DBMS python
1
《编译原理》课程实验报告
2021-05-21 16:02:58 302KB 《编译原理》课程实验报告