
2020春季《编译原理》课程实验
男孩lim
这个作者很懒,什么都没留下…
展开
-
D - 表达式语法分析——递归子程序法
Description 递归子程序法是一种确定的自顶向下语法分析方法,要求文法是LL(1)文法。它的实现思想是对应文法中每个非终结符编写一个递归过程,每个过程的功能是识别由该非终结符推出的串,当某非终结符的产生式有多个候选式时能够按LL(1)形式唯一地确定选择某个候选式进行推导。请根据下面的表达式LL(1)文法,构造递归子程序,完成对表达式的语法分析。 表达式文法如下: E→T...原创 2020-04-30 18:10:50 · 720 阅读 · 0 评论 -
C - 小型Basic编译器问题
Description 编写一个TinyBasic语言的解释程序,对于任何一个给出的正确的TinyBasic语言的程序,你的程序能运行它并得到正确的结果。那么,怎样的TinyBasic的程序叫做正确的呢? (1)符合TinyBasic语言的语法规则; (2)程序执行时会产生一个或多个输出,可以中断(即程序不会进入无限循环状态)。 TinyBasic语言的语法规则: (1)每一行的TinyBasi...原创 2020-04-13 17:47:48 · 435 阅读 · 0 评论 -
B - 识别浮点常量问题
Description 编译器在对程序进行编译之前,首先要进行语法分析。通常,程序被分解成若干个小单元,然后和语言的语法模式进行匹配。在分析表达式的时候,变量的类型在变量声明的时候就决定了;而常量的类型需要从常量的形式来判断。 假设你是自动编译器(ACM)开发小组的一员,负责Pascal语言编译器的开发。你的任务是分析程序分解模块送来的文件,判断其中包含的字符串是否合乎语法的Pascal浮点常量...原创 2020-03-29 18:53:41 · 298 阅读 · 0 评论 -
A - 小C语言--词法分析程序
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char str[85], s[85]; int i, j, len; memset(str,0,sizeof(str)); while(gets(str) != NULL) {...原创 2020-03-29 17:19:39 · 591 阅读 · 0 评论