
编译原理
JerryLinP
愿你一生温暖纯良 , 不舍爱与自由
展开
-
codeblocks快捷键
CodeBlocks常用操作快捷键编辑部分:Ctrl + A:全选Ctrl + C:复制Ctrl + X: 剪切Ctrl + V:粘贴Ctrl + Z:撤销(后退一步)Ctrl + S:保存Ctrl + Y / Ctrl + Shift + Z:重做(也就是前进一步)Ctrl+Shift+C:注释掉当前行或选中块Ctrl+Shift+X:解除注释(最新版的将其替换为截图功能)Tab:缩进当前行或选中块Shift+Tab:减少缩进按住Ctrl,滚动鼠标滚轮,放大或缩小字体编译与运行原创 2021-09-24 10:54:01 · 3624 阅读 · 0 评论 -
Code blocks 编译Fortran
1.下载最新的Code blocks2.在菜单里选择settings -> compiler不需言额外安装gfortran编译,cb自带一个fortran版本,只需要将c、c++编译器配置完成就行在Select compiler那里选择GNU Fortran Compiler,选择目录,然后Auto-detect,完成...原创 2021-09-24 10:50:16 · 1655 阅读 · 0 评论 -
小C语言--词法分析程序
小C语言--词法分析程序Problem Description小C语言文法1. <程序>→<main关键字>(){<声明序列><语句序列>}2. <声明序列>→<声明序列><声明语句>|<声明语句>|<空>3. <声明语句>→<标识符表>;...原创 2019-10-31 20:43:25 · 166 阅读 · 0 评论 -
表达式语法分析——递归子程序法
表达式语法分析——递归子程序法写在前面:切记不要删除代码部分对于函数的声明,以免造成error!!!通过函数的声明避免函数定义的先后顺序递归子程序法是一种确定的自顶向下语法分析方法,要求文法是LL(1)文法。它的实现思想是对应文法中每个非终结符编写一个递归过程,每个过程的功能是识别由该非终结符推出的串,当某非终结符的产生式有多个候选式时能够按LL(1)形式唯一地确定选择某个候选式进行...原创 2019-10-31 20:39:37 · 936 阅读 · 0 评论 -
翻译布尔表达式
翻译布尔表达式这是用c++实现的布尔表达式Problem Description大家都学过了布尔表达式的翻译,其中有一个拉链-回填技术,这次我们就练习这个技术。Input多组输入,首先输入一个整数T,代表数据组数。接下来每组输入为一行字符串,例如: a < b or c < d and e < f每个符号都用空格间隔。Output假链...原创 2019-10-31 20:34:32 · 233 阅读 · 0 评论 -
DAG优化
DAG优化Problem Description大家都学过了代码优化,其中有一个DAG优化,这次我们就练习这个操作。Input输入第一行为一个整数n(n < 100),表示该组输入的表达式的个数之后n行为表达式,每个变量为一个字母,表达式仅包括二元运算 + - * /例如:A=B+COutput通过构造DAG图,进行代码优化,只需要保留AB,删除...原创 2019-10-31 20:33:28 · 353 阅读 · 0 评论 -
简单的代码生成程序
简单的代码生成程序通过三地址代码序列生成计算机的目标代码,在生成算法中,对寄存器的使用顺序为:寄存器中存有 > 空寄存器 > 内存中存有 > 以后不再使用 > 最远距离使用Input单组输入,给定输出的三地址代码的个数和寄存器的个数.所有的变量为大写字母,寄存器的数量不超过9Output参照示例格式输出,不需要将最后的寄存器中的值写回内存...原创 2019-10-31 20:32:32 · 362 阅读 · 0 评论