搜索资源列表
编译原理及实践
- 目 录 译者序 前言 第1章 概论 1 1.1 为什么要用编译器 2 1.2 与编译器相关的程序 3 1.3 翻译步骤 5 1.4 编译器中的主要数据结构 8 1.5 编译器结构中的其他问题 10 1.6 &
ljSimple
- 输入一个DO-WHILE的语句,进行词法分析,词法分析器利用超前搜索,状态转换等方法,将源程序转化成为一个一个的单词符号二元式,如果词法分析无误,则进入语法分析部分,使用简单优先法进行文法分析,为每个终极符与非终极符之间定义优先关系,利用优先关系进行移进-规约,如果能规约到文法的开始符,则文法分析成功,输出四元式.-importation of a DO-WHILE statements, lexical analysis, lexical analyzer using advanced sea
ll1Analysis
- LL(1)分析法 1、LL(1)分析法的功能 LL(1)分析法的功能是利用LL(1)控制程序根据显示栈栈顶内容、向前看符号以及LL(1)分析表,对输入符号串自上而下的分析过程。 2、LL(1)分析法的前提 改造文法:消除二义性、消除左递归、提取左因子,判断是否为LL(1)文法, 3、LL(1)分析法实验设计思想及算法-LL (1) an analysis, LL (1) Analysis of the functional LL (1) Analysis of the fun
SLRbyHune
- 用SLR分析法实现的语法分析,先用初版.exe生成符号表和token字,然后进行分析,action表程序自动生成-SLR analysis method used to achieve the syntax analysis, use the first edition. Exe Generation symbol table and token characters, Then the analysis, action automatically generated table
zjdm
- 逆波兰式定义: 将运算对象写在前面,而把运算符号写在后面。用这种表示法表示的表达式也称做后缀式。逆波兰式的特点在于运算对象顺序不变,运算符号位置反映运算顺序。采用逆波兰式可以很好的表示简单算术表达式,其优点在于易于计算机处理表达式。
upload
- 汇编程序中的数制转换与DOS调用功能的结合,还有一个表处理程序,以下是程序实现的功能: 1.从键盘输入一个十进制数,转换为二进制显示在屏幕上; 2.输入十位BCD码,转换为4字节十六进制显示; 3.从键盘输入两个十进制数,相加后将结果显示在屏幕上; 4.从键盘键入一个4位十六进制数,转换为十进制显示在屏幕上; 5.对一个已知长度的从小到大的无符号字节数组查找关键字;用二分法实现
bianyiyuanli
- WHILE条件语句的翻译程序设计(LL(1)法、输出四元式)。。按照课程设计的要求,写一个能识别while循环语句的文法,通过一定的变换使它符合LL(1)法的要求,然后按照这个文法编写一个程序,该程序能识别输入的语句是否符合while语句的文法,或者能不能通过文法的开始符号推导出该语句。
wordanalysis
- 、该个词法分析器要求至少能够识别以下几类单词: a. 关键字:else if int return void while共6个,所有的关键字都是保留字,并且必须是小写; b. 标识符:识别与C语言词法规定相一致的标识符,通过下列正则表达式定义:ID = letter (letter | digit)*; c. 常数:NUM=(+ | - |ε)digit digit*(.digit digit* |ε)(e(+ | - |ε) digit digit* |ε),letter = a|
scanner(liwenkaitop)
- 这是用VC6.0开发的集词法分析、语法分析、语义分析为一体的一个程序,是我在编译原理课程设计后期和同班一贼牛的哥们儿老胡共同研究的,做编译课设的朋友们不妨下来看看。语法分析采用的是算符优先分析法,语义生成的是四元式,符号集等格式处理方面基本是遵照大连理工出版的《编译原理》一书附的Simple语言来设计的。由于是自己的课余研究,当时没什么文档和维护的概念,因此没有留下文档,事隔一年半之后我也没有再研究它的动力了,看懂了的朋友不妨写个文档传上来告诉我一声!先此谢过了!-err
lr0
- LR分析法是一种自下而上进行规范归约的语法分析法,L指从左到右扫描输入符号串,R是指构造最右推导的逆过程。对大多数无二义性上下文无关文法描述的语言都可用它进行有效的分析。主要分析器有LR(0),SLR(1),LR(1),LALR(1): LR(0):在分析的每一步,只需根据当前栈顶状态而不必向前查看输入符号就能确定应采取的分析动作。所能分析的LR(0)文法要求文法的每一个LR(0)项目集中都不含冲突项目。 -LR analysis is a bottom-up norms to r
Compile
- 此课设是if else 条件语句的翻译程序. 功能说明如下: 1.整体词法分析; 2.if else语法分析,递归下降法. 3.三地址形式代码格式输出; 4.变量符号表的实现,即先定义变量才可以使用; 5.出错提示,具体行数出错提示; 6.作用域初步设计.-This lesson is that if else conditional statements of the translation process. Functions as follows:
paixu
- 用冒泡法将RAM中几个单字节无符号的正整数,按从小到大的次序重新排列。-RAM in the bubble method with several single-byte unsigned integer, according to the order from small to large re-order.
myPL0
- 本次实验使用平台是Microsoft Visual C++6.0,编程语言是C语言,利用递归下降子程序法实现对一个PL/0源程序中的表达式、各种说明语句、赋值语句进行词法分析和语法分析,完成符号表的管理并能实现确定源码中标识符的类型与二维坐标位置,和赋值语句及表达式中间代码的生成,做的一大亮点是程序有着很严格的出错处理子程序,能确定错误类型和错误位置,能检测输入源程序的开头,数值类型的判断,运算错误检查,变量定义重复性的检查,数值类型的一致性检查,语法错误的检查等多达二十种错误类型。 程序的
Grammar-analysis
- LR分析法是给出一种能根据当前分析栈中的符号串(通常以状态表示)和向右顺序查看输入串的K个(K≥0))符号就可唯一地确定分析器的动作是移进还是归约和用哪个产生式归约,因而也就能唯一地确定句柄,所以LR分析过程是一种规范归约过程-LR analysis method is given a can according to the analysis of the string (usually in state said to the right order) and check of K inpu
Tiny-P-syntax-analysis
- 利用递归下降法实现Tiny+的语法分析,语义分析与及三地址码生成。语法分析能输出生成的语法树,语义分析创建符号表和变量类型检验,代码生成是生成三地址码。要求分析程序能给予出一定的错误提示-Recursive descent method to achieve Tiny+ syntax analysis, semantic analysis and three-address code generation. Syntax analysis can Output generated synta
slr(1)
- SLR(1)分析法的引入是当文法的LR(0)项目集规范族中存在移进-归约冲突或归约-归约冲突时,可以通过向前查看一个符号的办法来进行处理,以解决冲突。-SLR (1) analysis method was introduced when the grammar of the LR (0) item sets exist in family moved into the specification- reduce conflicts or reduction- reduce conflicts,
Complier
- PL/0语言编译器的中间代码生成。要求用递归子程序法/或预测分析法实现对表达式、各种说明语句、控制语句进行语法分析。若语法正确,则用语法制导翻译法进行语义翻译:对说明语句,要求将说明的各符号记录到相应符号表中;对可执行语句,应产生出四元式中间代码并填写到三地址码表中; 若语法错误,要求指出出错性质和出错位置(行号)。出错处理应设计成一个出错处理子程序。 -The PL/0 language compiler intermediate code generation. Require the
Compiler1
- 使用C++编写的编译器,里面 包括了词法分析程序scanner.cpp,无符号数识别程序ucon.cpp,算符优先法语法语义处理程序SF.cpp,SLR1语法语义处理程序SLR1.cpp。比较强大。源程序输入有program.txt,输出包括窗口和compiled.txt-Using C++ to write compiler, which includes lexical analysis program scanner.cpp the number of symbols identifica
DelphiPrefixChange
- Delphi单元前缀修改工具 工具需要修改的内容: 需要修改的文件列表: 1) 单元文件修改:同时也要修改uses列表中的内容,单元头 2) 类名修改:以TOldPrefix开头的符号,修改成TNewPrefix开头的符号 3) 对象或变量名修改1:以fOldPrefix开头的符号,修改成fNewPrefix的符号 4) 对象或变量名修改2:以OldPrefix开头的符号,修改成NewPrefix的符号 一个词中,有OldPrefix,且
Calculator
- 模仿微软计算器,更改符号为中文,简化科学计数法计算方式-Mimic Microsoft calculator, change the symbol for the Chinese, simplified calculation scientific notation