
编译原理C语言版
文章平均质量分 55
又菜又爱分享的小白
在校的一名大学生
展开
-
P - 简单的代码生成程序(C语言版)
Description通过三地址代码序列生成计算机的目标代码,在生成算法中,对寄存器的使用顺序为:寄存器中存有 > 空寄存器 > 内存中存有 > 以后不再使用 > 最远距离使用Input单组输入,给定输出的三地址代码的个数和寄存器的个数.所有的变量为大写字母,寄存器的数量不超过9Output参照示例格式输出,不需要将最后的寄存器中的值写回内存不再使用变量不用写回内存Sample#include<stdio.h>#include<stdlib.h&原创 2021-05-28 19:45:23 · 1018 阅读 · 0 评论 -
M - 翻译布尔表达式(C语言版)
Description大家都学过了布尔表达式的翻译,其中有一个拉链-回填技术,这次我们就练习这个技术。Input输入为一行字符串,例如: a < b or c < d and e < f每个符号都用空格间隔。其中逻辑运算符包含 and 和 or , 关系运算符包含 < 、> 、<= 、 >= 、== 、 != 。Output假链跳到0,真链跳到1,表达式序号从100开始排。Sample#include<stdio.h>#includ原创 2021-05-21 21:08:01 · 643 阅读 · 0 评论 -
D - 表达式语法分析——递归子程序法(C语言版)
Description递归子程序法是一种确定的自顶向下语法分析方法,要求文法是LL(1)文法。它的实现思想是对应文法中每个非终结符编写一个递归过程,每个过程的功能是识别由该非终结符推出的串,当某非终结符的产生式有多个候选式时能够按LL(1)形式唯一地确定选择某个候选式进行推导。请根据下面的表达式LL(1)文法,构造递归子程序,完成对表达式的语法分析。表达式文法如下:E→TGG→+TG | εT→FSS→*FS | εF→(E) | i对于给定的输入串(长度不超过50个符号),请输出原创 2021-05-21 21:06:50 · 655 阅读 · 0 评论 -
A - 小C语言--词法分析程序(C语言版)
Description小C语言文法<程序>→<main关键字>(){<声明序列><语句序列>}<声明序列>→<声明序列><声明语句>|<声明语句>|<空><声明语句>→<标识符表>;<标识符表>→<标识符>,<标识符表>|<标识符><语句序列>→<语句序列><语句>原创 2021-05-21 21:02:14 · 407 阅读 · 0 评论