
编译原理代码题
独为我唱
这个作者很懒,什么都没留下…
展开
-
小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) { len = strlen(str); j = 0; memset(s, 0, sizeo...原创 2020-09-22 23:25:21 · 806 阅读 · 0 评论 -
C语言表达式语法分析——递归子程序法
表达式语法分析——递归子程序法Description递归子程序法是一种确定的自顶向下语法分析方法,要求文法是LL(1)文法。它的实现思想是对应文法中每个非终结符编写一个递归过程,每个过程的功能是识别由该非终结符推出的串,当某非终结符的产生式有多个候选式时能够按LL(1)形式唯一地确定选择某个候选式进行推导。请根据下面的表达式LL(1)文法,构造递归子程序,完成对表达式的语法分析。表达式文法如下: E→TG G→+TG|ε T→FS S→*FS|...原创 2020-10-20 13:03:35 · 3000 阅读 · 0 评论 -
翻译布尔表达式
Description大家都学过了布尔表达式的翻译,其中有一个拉链-回填技术,这次我们就练习这个技术。Input输入为一行字符串,例如: a < b or c < d and e < f每个符号都用空格间隔。其中逻辑运算符包含 and 和 or , 关系运算符包含 < 、> 、<= 、 >= 、== 、 != 。Output假链跳到0,真链跳到1,表达式序号从100开始排。SampleInputa < b or c..原创 2020-11-18 21:55:58 · 184 阅读 · 0 评论 -
简单的代码生成程序
简单的代码生成程序#include <bits/stdc++.h>using namespace std;char p[100];char s[100][100];int n ,m, top = 0;int get(char ch){ for(int i = 0; i < m ; i++) { if(ch == p[i]) return i; } return -1;}int use(int x, c...原创 2020-12-10 11:37:50 · 647 阅读 · 0 评论