Welcome![Sign In][Sign Up]
Location:
Search - nfa

Search list

[OtherNFA到DFA.rar

Description:
Platform: | Size: 1862 | Author: | Hits:

[ELanguage编译原理及实践

Description:

目      录
译者序
前言
第1章   概论 1
1.1   为什么要用编译器 2
1.2   与编译器相关的程序 3
1.3   翻译步骤 5
1.4   编译器中的主要数据结构 8
1.5   编译器结构中的其他问题 10
1.6   自举与移植 12
1.7   TINY样本语言与编译器 14
1.7.1   TINY语言 15
1.7.2   TINY编译器 15
1.7.3   TM机 17
1.8   C-Minus:编译器项目的一种语言 18
练习 19
注意与参考 20
第2章   词法分析 21
2.1   扫描处理 21
2.2   正则表达式 23
2.2.1   正则表达式的定义 23
2.2.2   正则表达式的扩展 27
2.2.3   程序设计语言记号的正则表达式 29
2.3   有穷自动机 32
2.3.1   确定性有穷自动机的定义 32
2.3.2   先行、回溯和非确定性自动机 36
2.3.3   用代码实现有穷自动机 41
2.4   从正则表达式到DFA 45
2.4.1   从正则表达式到NFA 45
2.4.2   从NFA到DFA 48
2.4.3   利用子集构造模拟NFA 50
2.4.4   将DFA中的状态数最小化 51
2.5   TINY扫描程序的实现 52
2.5.1   为样本语言TINY实现一个扫描
程序 53
2.5.2   保留字与标识符 56
2.5.3   为标识符分配空间 57
2.6   利用Lex 自动生成扫描程序 57
2.6.1   正则表达式的Lex 约定 58
2.6.2   Lex输入文件的格式 59
2.6.3   使用Lex的TINY扫描程序 64
练习 65
编程练习 67
注意与参考 67
第3章   上下文无关文法及分析 69
3.1   分析过程 69
3.2   上下文无关文法 70
3.2.1   与正则表达式比较 70
3.2.2   上下文无关文法规则的说明 71
3.2.3   推导及由文法定义的语言 72
3.3   分析树与抽象语法树 77
3.3.1   分析树 77
3.3.2   抽象语法树 79
3.4   二义性 83
3.4.1   二义性文法 83
3.4.2   优先权和结合性 85
3.4.3   悬挂else问题 87
3.4.4   无关紧要的二义性 89
3.5   扩展的表示法:EBNF和语法图 89
3.5.1   EBNF表示法 89
3.5.2   语法图 91
3.6   上下文无关语言的形式特性 93
3.6.1   上下文无关语言的形式定义 93
3.6.2   文法规则和等式 94
3.6.3   乔姆斯基层次和作为上下文无关
规则的语法局限 95
3.7   TINY语言的语法 97
3.7.1   TINY的上下文无关文法 97
3.7.2   TINY编译器的语法树结构 98
练习 101
注意与参考 104
第4章   自顶向下的分析 105
4.1   使用递归下降分析算法进行自顶向下
的分析 105
4.1.1   递归下降分析的基本方法 105
4.1.2   重复和选择:使用EBNF 107
4.1.3   其他决定问题 112
4.2   LL(1)分析 113
4.2.1   LL(1)分析的基本方法 113
4.2.2   LL(1)分析与算法 114
4.2.3   消除左递归和提取左因子 117
4.2.4   在LL(1)分析中构造语法树 124
4.3   First集合和Follow集合 125
4.3.1   First 集合 125
4.3.2   Follow 集合 130
4.3.3   构造LL(1)分析表 134
4.3.4   再向前:LL(k)分析程序 135
4.4   TINY语言的递归下降分析程序 136
4.5   自顶向下分析程序中的错误校正 137
4.5.1   在递归下降分析程序中的错误
校正 138
4.5.2   在LL(1)分析程序中的错误校正 140
4.5.3   在TINY分析程序中的错误校正 141
练习 143
编程练习 146
注意与参考 148
第5章   自底向上的分析 150
5.1   自底向上分析概览 151
5.2   LR(0)项的有穷自动机与LR(0)分析 153
5.2.1   LR(0)项 153
5.2.2   项目的有穷自动机 154
5.2.3   LR(0)分析算法 157
5.3   SLR(1)分析 160
5.3.1   SLR(1)分析算法 160
5.3.2   用于分析冲突的消除二义性
规则 163
5.3.3   SLR(1)分析能力的局限性 164
5.3.4   SLR(k)文法 165
5.4   一般的LR(1)和LALR(1)分析 166
5.4.1   LR(1)项的有穷自动机 166
5.4.2   LR(1)分析算法 169
5.4.3   LALR(1)分析 171
5.5   Yacc:一个LALR(1)分析程序的
生成器 173
5.5.1   Yacc基础 173
5.5.2   Yacc选项 176
5.5.3   分析冲突与消除二义性的规则 180
5.5.4   描述Yacc分析程序的执行 183
5.5.5   Yacc中的任意值类型 184
5.5.6   Yacc中嵌入的动作 185
5.6   使用Yacc生成TINY分析程序 186
5.7   自底向上分析程序中的错误校正 188
5.7.1   自底向上分析中的错误检测 188
5.7.2   应急方式错误校正 188
5.7.3   Yacc中的错误校正 189
5.7.4   TINY中的错误校正 192
练习 192
编程练习 195
注意与参考 197
第6章   语义分析 198
6.1   属性和属性文法 199
6.1.1   属性文法 200
6.1.2   属性文法的简化和扩充 206
6.2   属性计算算法 207
6.2.1   相关图和赋值顺序 208
6.2.2   合成和继承属性 212
6.2.3   作为参数和返回值的属性 219
6.2.4   使用扩展数据结构存储属性值 221
6.2.5   语法分析时属性的计算 223
6.2.6   语法中属性计算的相关性 226
6.3   符号表 227
6.3.1   符号表的结构 228
6.3.2   说明 230
6.3.3   作用域规则和块结构 232
6.3.4   同层说明的相互作用 236
6.3.5   使用符号表的属性文法的一个
扩充例子 237
6.4   数据类型和类型检查 241
6.4.1   类型表达式和类型构造器 242
6.4.2   类型名、类型说明和递归类型 246
6.4.3   类型等价 248
6.4.4   类型推论和类型检查 253
6.4.5   类型检查的其他主题 255
6.5   TINY语言的语义分析 257
6.5.1   TINY的符号表 258
6.5.2   TINY语义分析程序 259
练习 260
编程练习 264
注意与参考 264
第7章   运行时环境 266
7.1   程序执行时的存储器组织 266
7.2   完全静态运行时环境 269
7.3   基于栈的运行时环境 271
7.3.1   没有局部过程的基于栈的环境 271
7.3.2  带有局部过程的基于栈的环境 281
7.3.3   带有过程参数的基于栈的环境 284
7.4   动态存储器 286
7.4.1   完全动态运行时环境 286
7.4.2   面向对象的语言中的动态存储器 287
7.4.3   堆管理 289
7.4.4   堆的自动管理 292
7.5   参数传递机制 292
7.5.1   值传递 293
7.5.2   引用传递 294
7.5.3   值结果传递 295
7.5.4   名字传递 295
7.6   TINY语言的运行时环境 296
练习 297
编程练习 303
注意与参考 304
第8章   代码生成 305
8.1   中间代码和用于代码生成的数据
结构 305
8.1.1   三地址码 306
8.1.2   用于实现三地址码的数据结构 308
8.1.3   P-代码 310
8.2   基本的代码生成技术 312
8.2.1   作为合成属性的中间代码或目标
代码 312
8.2.2   实际的代码生成 314
8.2.3   从中间代码生成目标代码 317
8.3   数据结构引用的代码生成 319
8.3.1   地址计算 319
8.3.2   数组引用 320
8.3.3   栈记录结构和指针引用 325
8.4   控制语句和逻辑表达式的代码生成 328
8.4.1   if 和while 语句的代码生成 328
8.4.2   标号的生成和回填 330
8.4.3   逻辑表达式的代码生成 330
8.4.4   if 和while 语句的代码生成过程
样例 331
8.5   过程和函数调用的代码生成 334
8.5.1   过程和函数的中间代码 334
8.5.2   函数定义和调用的代码生成过程 336
8.6   商用编译器中的代码生成:两个案
例研究 339
8.6.1   对于80×86的Borland 3.0版C编
译器 339
8.6.2   Sun SparcStation的Sun 2.0 C编
译器 343
8.7   TM:简单的目标机器 346
8.7.1   Tiny Machine的基本结构 347
8.7.2   TM模拟器 349
8.8   TINY语言的代码生成器 351
8.8.1   TINY代码生成器的TM接口 351
8.8.2   TINY代码生成器 352
8.8.3   用TINY编译器产生和使用TM
代码文件 354
8.8.4   TINY编译器生成的TM代码文
件示例 355
8.9   代码优化技术考察 357
8.9.1   代码优化的主要来源 358
8.9.2   优化分类 360
8.9.3   优化的数据结构和实现技术 362
8.10   TINY代码生成器的简单优化 366
8.10.1   将临时变量放入寄存器 366
8.10.2   在寄存器中保存变量 367
8.10.3   优化测试表达式 367
练习 368
编程练习 371
注意与参考 372
附录A   编译器设计方案 373
附录B   小型编译器列表 381
附录C   Tiny Machine模拟器列表 417


Platform: | Size: 7612048 | Author: wesong | Hits:

[Windows Develop有限自动机的确定化

Description: 有限自动机的确定华,NFA到DFA的转变。-Ascertain of finite auto-machine , from NFA to DFA.
Platform: | Size: 37910 | Author: 田永震 | Hits:

[ConsoleREManageAndNFAToDFA

Description: 能够完成正规式到NFA的转换,NFA到DFA的转换(子集法),DFA的最小化,测试一个生成串是否能为生成的DFA所识别-to complete the formal ceremony to change the NFA, NFA conversion to DFA (subset), the smallest of DFA, testing whether a string of generation to generation by the DFA Recognition
Platform: | Size: 25615 | Author: winpro | Hits:

[Other resourceAutomTest

Description: NFA自动机的实验,可进行字符串的智能搜索-NFA automatic machine experiment can be carried out strings of Intelligent Search
Platform: | Size: 51529 | Author: luoqijun | Hits:

[Other resourceNFASearcher

Description: NFA的字符串搜索的实例,带分析过程和中间处理信息-NFA search string of examples, with analysis and intermediate processing of information
Platform: | Size: 42046 | Author: luoqijun | Hits:

[JSP/Javareg2nfa

Description: 程序用JAVA语言编写, 综合利用图结构和堆栈结构进行数据组织和处理. 可以进行正则表达式到NFA的转化, 并能用图形直观的表示. 对正则表达式有一些约定, 就是可以用单个字符表示输入, 也可以用 ‘ ‘ 连接起来的一串字符进行输入. 有基本的表达式以及由基本表达式构成的并置, 选择和重复的操作. 例: A|b*c ‘letter’*’digit’ 等都是合法输入. 还带有括号功能, 优先级 -procedures using Java language. Comprehensive Utilization graph structure and stack structure and data processing. it is a regular expression for NFA to the transformation and can use the intuitive graphical said. Regular expressions are to some agreement and it is expressed with a single character input, we could also use '' linking the string of characters for importation. a basic expressions and by the basic form of expression and Home and choose and repeat the operation. cases : A | b * c 'letter' * 'digit' are all legally imported. also bracketed with functionality, prioritized
Platform: | Size: 12703 | Author: onlyerlee | Hits:

[Other resourceDFAScan

Description: 根据输入的正则式产生NFA,然后转化为DFA,并化简-under the importation of which is generated NFA-and then into DFA and Simplification
Platform: | Size: 6359 | Author: conan | Hits:

[Othercomplier

Description: 正则式转化为NFA-into NFA
Platform: | Size: 8053 | Author: 李余 | Hits:

[Windows DevelopNFApatternmatch

Description: 本程序是在VC++环境下编写的利用非确定自动机NFA进行字符串匹配-procedures in the VC + + environment prepared by the automatic use of non-identified plane NFA strings match
Platform: | Size: 7337 | Author: chaoyin | Hits:

[ELanguagezidongji

Description: 编译原理中的NFA转换到DFA(自动机的转换)-compiler principles of the NFA conversion to DFA (automatic machine translation)
Platform: | Size: 1940 | Author: 冰冰 | Hits:

[ELanguageLex_Yacc_Parser

Description: 语法分析器lex和词法分析器yacc的C++语言实现 1.Lex (1)Lex输入文件的解析 (2)正规表达式的解析 (3)一个正规表达式到NFA的转换算法实现 (4)多个NFA的合并 (5)NFA的确定化和最小化算法实现 (6)返回状态与返回内容的对应 2.Yacc (1)Yacc输入文件的解析 (2)上下文无关文法到对应LR(1)文法的下推自动机的构造 (3)LR(1)文法的下推自动机到相应分析表的构造 (4)LR(1)总控程序的构造(查表程序) (5)符号表的构建与相应管理程序 (6)语义动作程序的加入 环境:Visual Studio.NET 2003-Parser lex and yacc lexical analyzer C language 1.Lex (1) Lex lose into the analytical document (2) Analysis of the formal expression (3) a formal expression of the NFA conversion algorithm (4 ) more than the combined NFA (5) NFA and the determination of the smallest algorithm (6) to return to state and the return of the contents 2.Yacc counterparts (1) Yacc the analytical input file (2) context-free grammar to the corresponding LR (1) grammar pushdown automata Construction (3) LR (1) grammar pushdown automata corresponding to the tectonic analysis table (4) L R (1) General procedures for the control structure (look-up table) (5) Construction of the symbol table with the corresponding management procedures (6) semantic action procedures to the environment : Visual Studio 2003
Platform: | Size: 41490 | Author: 尤冉 | Hits:

[ELanguageyouxianzidongjihuajian

Description: 有限自动机的确定化及化简 1、更正了 DFA_simplify2 中的错误 2、增加新旧状态对照表 ds_temp --NFA转DFA -- 输入字符 -- 要求 id 必须从 1 开始连续递增-Finite Automata and the identification of a simplification, correction of the errors DFA_simplify2 2, increase the old and new state CRT ds_temp -- NFA to DFA -- input characters -- must request id Start an incremental
Platform: | Size: 2844 | Author: 黄启龙 | Hits:

[ELanguageCOMPILEPAPER

Description: 编译原理课程设计详细文档,包含NFA->DFA,DFA的最小化。-compile detailed design documentation, including NFA -
Platform: | Size: 98369 | Author: LSC | Hits:

[ELanguageNFAtoDFA

Description: NFA转化为DFA的一个程序!希望能有点作用!-NFA into a DFA procedures! Hope to some purpose!
Platform: | Size: 3930 | Author: eyeknight | Hits:

[Other resourceKModies

Description: k中心点 编制和调试一个程序,它将用户输入的正规式转换为以状态图和矩阵形式表示的确定有穷自动机。 1.把正规式转换为NFA 2.将NFA确定化为DFA • #作为正规式的终止符 • 考虑复合正规式 • 开始状态号为0
Platform: | Size: 1544 | Author: 刘自咏 | Hits:

[matlabRMA_NFA

Description: 利用RMA和NFA算法对sar点目标回波信号进行成像,包含多个图示。(The RMA and NFA algorithms are used to image the echo signal of the SAR point target, including multiple diagrams.)
Platform: | Size: 251904 | Author: 分寸之末 | Hits:

[Compiler_RegexEngine-master

Description: 正则表达式转NFA的C++实现,希望对大家有所帮助 本代码转载自github,窝也没看懂……(Regular expression to NFA)
Platform: | Size: 53248 | Author: 阿更 | Hits:

[编译原理报告:NFA转DFA(详解-附源代码)

Description: 编译原理NFA转DFA的算法 啊啊啊啊啊啊啊啊啊啊。(ghdfhddashjoahsfashfhiaohfoafafafa)
Platform: | Size: 74752 | Author: 空谷足音 | Hits:

[OtherNFAtoDFA

Description: 将NFA转成DFA的程序,将不确定的自动机转化为确定的自动机,用于编译原理的研究。(Transforming NFA into DFA program, transforming uncertain automata into definite automata, is used for compiler principle research.)
Platform: | Size: 9216 | Author: 波波波司机 | Hits:
« 1 2 ... 4 5 6 7 8 910 11 12 13 14 ... 19 »

CodeBus www.codebus.net