版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、引 言编译原理是计算机专业的一门重要的专业课程,其中包含大量软件设计思想。 通过课程设计,实现一些重要的算法,或设计一个完整的编译程序模型,能够进一步加 深理解和掌握所学知识,对提高自己的软件设计水平具有十分重要的意义。语法分析是编译过程的第二阶段,是编译器前端的核心组成部分,在编译系统中起 到了至关重要的作用。自底向上的语法分析与自顶向下的语法分析相比,对将要分析的 源程序有着更大的分析空间,从而受到了广泛的运用。LR(0分析是自底向上 LR 类语法分析的基础,自底向上语法分析方法是一种移进 -规约过程,在当前分析的栈顶符号串形成句柄时就采取规约动作,因此最终目标是如何 在分析过程中确定句柄
2、。 LR 分析法是给出一种能根据当前分析栈中的符号串和向右顺序 查看 k 个符号串就可以唯一地确定分析器动作:是移进还是规约, 采用哪条产生式。 LR(0分析器是在分析过程中,不需要向后查看输入串符号,因此它对文法的限制较大。对绝 大多数高级语言语法分析器是不适用的,但是它是构造其他 LR 分析器的基础。LR(0最终存在的问题和需要解决的问题是在构造 LR(0分析表的时候, 在 LR(0项 目集规范族中,有移进项目和规约项目、规约项目和规约项目同时存在的现象,形成移 进 -规约冲突和规约 -规约冲突,直接导致语法分析器无法在某一状态进行移进还是规 约。为了能够解决这一问题,我们需要再向后查看一
3、个输入字符(也就是当前字符的 FOLLOW 集以确定下一步操作是否能够进行。我班选择的是老师给的 LR(1语法分析构造器的设计,即对任意给定的文法 G 构造 LR(1项目集规范族,其中要实现 CLOSURE(I、 GO(I,X、 FIRST 集合等。在此基础上, 构造了 LR (1分析表。然后对输入的句子进行语法分析,给出接受或出错报告。程序 采用文件输入输出方式。其中包括两个输入文件:文法 grammar.txt ,以及输入串 input.txt ; 两个输出文件:项目集 items.txt 和文法的 LR(1分析表 action_table.txt。 由于语法分析的结果只给出接受或错误报告
4、,比较简单。所以直接在屏幕上输出,也便 于用户查看。在具体编写程序过程中,对文法操作的各个功能模块独立成为一个子程序,而对具 体输入串的分析则放在 main(函数中进行。 各个变量及函数的意义和用法我将在叙述程 序设计的总体方案中详细给出。程序的总体算法思想来自 编译原理 课程。 具体实现由我独立完成。 程序用 C/C+语言编写。在 Microsoft Visual C+ 2005环境下调试通过。摘 要语法分析的主要任务是接收词法分析程序识别出来的单词符由某种号串, 判断它们 是否语言的文法产生,即判断被识别的符号串是否为某语法部分。LR分析法是给出一种能根据当前分析栈中的符号串 (通常以状态
5、表示 和向右顺序 查看输入串的 K 个(K 0 符号就可唯一地确定分析器的动作是移进还是归约和用哪 个产生式归约,因而也就能唯一地确定句柄,所以 LR 分析过程是一种规范归约过程。 经过分析,我们使用 C 作为前端开发工具,在分析语法成分时比较方便直观,更便 于操作。运行程序的同时不断修正改进程序,直至的到最优源程序。关 键 字语法分析 文法 LR(1分析 移进 归约- 2 -AbstractGrammatical analysis of the main tasks was to receive lexical analysis procedure to identify the words
6、 from a website, string, and judge whether they have a grammar of the language, that is, judging by the series of symbols to identify whether a grammar part.The LR analytic method is gives one kind to be able to act according to current analyzes in stack's string (usually by condition expression
7、 and examined in turn toward right the input string K (K0 the mark may determine only which production pattern selling and buying of real esgate within the same family analyzer's movement is moves to or the selling and buying of real esgate within the same family and uses .Therefore can also det
8、ermine the handle only, therefore the LR parsing process is one kind of standard selling and buying of real esgate within the same family process. After analysis, we use VC + + as a front-end development tool for the analysis of syntax ingredients more convenient visual, more easy to operate. Operat
9、ional procedures at the same time constantly improving procedures, until the source of optimal.Key WordsGrammatical analysis grammar LR (1 AnalysisMoves Selling and buying of real esgate within the same family课程设计任务书1、本课题的目的及意义课程设计实践对学生巩固所学基础专业课程知识、进行编译系统基本技能训练、培养实践动手 能力,从而掌握编译系统的基本工作原理、基本方法和基本开发技术,
10、最终达到具有一定的 编译系统的实际开发能力有重要意义。通过课程设计,主要达到以下目的:1. 帮助学生深入 理解编译原理的有关理论和巩固编译原理相关知识。 2. 巩固学生学习的编译原理、 程序设计 语言、数据结构等课程的基础知识,训练学生分析和解决编译系统的相关问题的能力,提高 学生的综合素质。 3. 从软件工程的角度来看, 编译原理课程设计是一个很好的实例,可 以训练学生软件设计的能力以及编码调试能力。2、本课题任务的主要内容本课程设计主要内容包括以下几点 :1、根据选定的题目,查阅资料,熟悉相关理论、方法;(1掌握文献检索方法,以获得编译系统开发技术等相关资料;(2学习并熟练使用一种 4GL
11、 开发平台(如 VC+、 Java 、 Dephi 、 PB 、 VB 等 ;2、分析问题,确定系统逻辑结构;3、确定系统所需模块及模块结构,并用流程图描述各模块;4、编码及调试程序;5、撰写课程设计说明书。3、提交的成果1、一份符合课程设计说明书撰写规范的课程设计说明书。2、一套系统原型。- 4 -目 录第 1章 概述 6 1.1 项目背景 6 1.2 编写目的 7 1.3 软件定义 7 1.4 开发环境 7 1.5 编译环境简介 7第 2章需求分析 8 2.1 问题陈述 8 2.2 需完成的功能 8 2.3 数据流图 9 2.4 数据字典 10 2.4.1 数据项 10 2.4.2数据结构
12、 11 2.4.3数据流 11 2.4.4数据存储 12 2.4.5处理过程 12 2.5 E-R图 14第 3章逻辑设计 15 3.1 系统组织基本工作流程 15 3.2 系统设计框图 16第 4章总体设计 17 4.1 LR(1 分析器工作流程图 17 4.2 流程简介 17 4.3 LR(1 分 析 思 想 19 4.4 各模块流程图 20第 5章详细设计 22 5.1正规式构造 NFA 22 5.2将 NFA 转化为 DFA 24 5.3把 DFA 最小化 25第 6章 测试 26小结 28 致谢 29 参考文献 30第 1章 概述1. 1 项目背景随着科学技术的不断提高 , 计算机科
13、学日渐成熟 , 其强大的功能已为人们深刻认识 , 它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分 , 使用计算机对 LR(1文法判定与预测分析器的构造系统 , 具有比手工运算、 构造所无法比 拟的优点。 例如 :检索迅速、 查找方便准确性高等。 这些优点能够极大地提高判定 LR(1文法的效率 , 也是我们此次课程设计的目的。 因此, 开发一套这样的 LR(1文法判定与预 测分析器的构造软件成为很有必要的事情。编译原理是大学计算机专业的必修课程。 而词法分析作为其中的一部分占据着比较 重要的比重。词法分析是编译的第一个阶段,它的主要任务是从左至右逐个字符地对源 程序进
14、行扫描,产生一个个单词序列,用以语法分析。通过本次课程设计,学生对编译的理解就不只停留在书本的概念上,而是知道怎样 把编译理论应用到实际的编译程序设计的实践中。 对我们今后的学习和就业都是至关重 要的。1.2 编写目的课程设计实践对学生巩固所学基础专业课程知识、进行编译系统基本技能训练、培 养实践动手能力,从而掌握编译系统的基本工作原理、基本方法和基本开发技术,最终 达到具有一定的编译系统的实际开发能力有重要意义。通过课程设计,主要达到以下目 的:1. 帮助深入理解编译原理的有关理论和巩固编译原理相关知识。2. 巩固学习的编译原理、程序设计语言、数据结构等课程的基础知识,训练分析 和解决编译系
15、统的相关问题的能力,提高我们的综合素质。3. 从软件工程的角度来看, 编译原理课程设计是一个很好的实例,可以训练我 们软件设计的能力以及编码调试能力。通过本次课程设计,明白了分析器的原理、构造方法及其实现。基本掌握了递归这 种有用的分析及实现方法,加深了对编译原理这门课程的理解。通过本次课程设计我们 还可以为以后的毕业设计做准备,熟悉了做毕业设计的格式、流程、方法。学会了怎样- 6 -在图书馆查找相关的资料。提高了我的自学能力和自制力,我想做课程设计不仅是要我 们完成课业任务,更重要的是教会了我们学习方法,锻炼我们的意志,学会如何在独立 的情况下更好的完成任务。1. 3 软件定义LR 分析法指
16、从左至右扫描和自底向上的语法分析,且在分析的每一步,只须根据 分析栈当前已移进和归约出的全部文法符号,并至多再向前看 k 个输入符号,能确定相 对于某产生式左符号的句柄是否已在分析栈的顶部形式, 从而就可以确定当前所应采用 的分析动作(是移进还是按某一产生式进行归约 。 LR (0 分析不需要向前看输入符号 就能判断。1. 4 开发环境本系统使用 TC 开发。适用内存不低于 256M 配备有 Windows2000, Windows2003, WindowsXP 系统的计算机第 2章 需求分析2.1 问题陈述编译过程的核心部分是语法分析。他的任务是在词法分析识别单词符号串的基础 上,分析并判断
17、程序的的语法结构是否符合语法规则。语言的语法结构是用上下文无关 文法描述的。因此语法分析器的工作的本质上就是按文法的产生式,识别输入符号串是 否为一个句子。对于一个文法,当给你一串符号是,如何知道它是不是该文法的一个句 子,这是这个课程设计所要解决的一个问题。对输入的文法 G ,在程序终实现 CLOSURE(1,GO(I,X, FRIST 等的构造,并利用这 些功能函数构造出 LR(1项目集族。并且输出结果。在此基础上构造 G 的 LR(1分析表, 并对输入的句子进行语法分析表,给出分析结果。LR分析法是给出一种能根据当前分析栈的符号串和向右顺序查看输入串的 K 个符 号就可以唯一地确定分析器
18、的动作是移进还是归约和用哪个产生式归约, 因而也就能唯 一地确定句柄。 LR 分析法的归约过程是规范推到的逆过程,所以 LR 分析过程是一种规 范归约过程。2.2 需完成的功能从键盘输入一个文法(要求是上下文无关文法 ,保存到一个外部文件(或数据库 中。判断是否是 LR(1文法。从键盘接受一个符号串(源程序或从一个文本文件中接 受符号串(源程序 ,对其进行语法分析,并将分析过程信息和结果(语法树保存到 一个外部文件(或数据库中。具体的说就是,本课程设计所做的工作是建立一个针对 LR (1文法的编译器,本 课程设计将定义好的文法书写的文件或从键盘接受的符号串作为输入, 其中包括语法及 语义动作。
19、然后根据给定的文法和 LR 分析表,构造 LR 分析器,并输出 LR 工作过程。 根据 LR 分析器分析过程算法,通过 action(和 goto(两个函数即可实现算法的功能。本系统的主要功能包括以下几个部分:系统登录导入文法模块计算可归前缀项目规范族和文法判定后继项目求解后继状态生成LR (0的判定若无错误则构造 LR (0分析表生成 action 表生成 goto 表求 follow 集- 8 - SLR 文法判定计算出 LR (1项目规范族生成后跟符运算Closure (J 的运算传递后跟符运算生成 DFA构造 LR (1分析表设计分析算法由分析算法判断输入符号串是否为该文法的句型 生成
20、语法树退出2.3数据流图顶层图: 扫描项目集: 构造分析表: 填写 ACTION 表和 GOTO 表: 2.4 数据字典2.4.1 数据项数据项名:终结符别名:VT数据类型:CHAR长度:40取值范围:T001-T040数据项名:非终结符- 10 -别名:VN数据类型:CHAR长度:30取值范围:T001-T030数据项名:文法产生式序号别名:Mi数据类型:INT长度:80取值范围:M001-M080数据项名:项目产生式序号别名:Ij数据类型:INT长度:200取值范围:I001-I2002.4.2数据结构数据结构名:文法产生式说明:用来生成项目集组成:产生式序号,左部,右部 数据结构名:项目
21、产生式说明:用来产生移进或归约动作组成:项目产生式序号,左部,右部, . 位置 数据结构名:文法说明:用来提供文法的信息组成:终结符,非终结符,开始符, 产生式序号,左部,右部 2.4.3数据流数据流名:移进信息数据流来源:扫描项目集产生式;数据流去向:构造分析表;数据结构:项目产生式序号,左部,右部,位置 数据流名:归约信息数据流来源:扫描项目集产生式;数据流去向:构造分析表;数据结构:项目产生式序号,左部,右部, . 位置 数据流名:终结符和非终结符数据流来源:文法数据流去向:判断数据流名:核心项目集数据流来源:产生项目集数据流去向:项目集规范族表数据结构:项目产生式序号,左部,右部, .
22、 位置 数据流名; rj数据流来源:填写 ACTION 表数据流去向:分析表数据流名; Si数据流来源:填写 ACTION 表数据流去向:分析表数据流名:产生式序号数据流来源:文法数据流去向:填写分析表数据流名:项目产生式序号数据流来源:查找移进的下一状态数据流去向:填写分析表2.4.4数据存储数据存储名:项目集规范族表输入的数据流:核心项目集输出的数据流:移进的下一状态序号组成:项目产生式序号,左部,右部, . 位置 数据存储名:分析表输入的数据流:rj , Si , i数据结构:终结符,非终结符,项目产生式序号, rj , Si , i2.4.5处理过程处理过程名:生成项目集输入:文法产生
23、式;输出:项目产生式序号,核心项目集处理:该处理过程主要是用来生成项目集规范族表,以及将文法产生式转化成项目产生 式;处理过程名:判断动作输入:项目产生式- 12 -输出:移进信息,归约信息处理:该处理过程主要用来判断当前项目产生式的下个动作是移进还是归约 处理过程名:查找移进的下一状态输入:移进信息,项目集输出:项目产生式序号 i处理:该处理过程用来查找移进的下个产生式的序号处理过程名:填写分析表输入:项目产生式序号 i ,文法产生式序号 j ;处理:最终生成分析表处理过程名:判断输入:项目产生式序号 i ,终结符集和非终结集输出:终结符,非终结符处理:判断移进项目是终结符还是非终结符2.5
24、E-R 图文法的 E-R 图: 项目产生式的 E-R 图:- 14 -第 3章 逻辑设计 3. 1系统组织基本工作流程(以总体逻辑结构图表达 3. 2 系统设计框图 - 16 -第 4章 总体设计4. 1 LR(1 分析器工作流程图 图 4.1 LR(1分析器工作流程图4.2 流程简介所谓 LR (1分析法,就是指如果一个文法的 LR(1分析表中不含多重入口时, (即 任何一个 LR(1项目集中无移近规约冲突或规约规约冲突 , 则该文法为 LR(1文法。 实现 LR (1分析的程序又称为 LR (1分析程序或 LR (1分析器。如果一个文法能满 足以下特性:无二义性,无左递归,无有害产生式,无
25、多余产生式,无 产生式,那 么就可以构造 LR (1分析表。当文法满足条件后,先构造出 LR(0项目规范族,然后 构造 LR(0分析表,当此分析表中含有移近规约冲突或规约规约冲突时,便计算 FIRST 和 FOLLOW 集合,构造 SLR(1分析表,如果此分析表中还出现移近规约冲突或 规约规约冲突时,则运用 closure 算法,构造 LR(1项目规范族,最后构造 LR(1分 析表,利用分析表,构造 LR(1分析器模拟构造器。 LR (1的语法分析程序包含了四个 部分,总控程序, LR(1分析表,先进后出的状态栈,先进先出的扫描队列。本程序也 是采用了同样的方法进行语法分析,该程序是采用了 C
26、+语言来编写,其逻辑结构图如 下: - 18 -图 4.2 各模块调用关系图对一个文法构造了它的 LR(1分析表后就可以在 LR 分析器的总控程序 (驱动程序 控制下对输入串进行分析,即根据输入串的当前符号和分析栈的栈顶状态查找 LR(1分 析表应采取的动作,对状态栈进行相应的操作即移进、归约、接受或报错。具体说明如 下:1 若 ACTIONS,a= Sj , a 为终结符, j 移入状态栈。 2 若 ACTIONS,a= r j , a 为终结符或 #号,则用第 j 个产生式归约,并将两个栈的 指针减去 k ,其中 k 为第 j 个产生式右部的符号串长度,这时当前面临符号为第 j 个产 生式
27、左部的非终结符。3 若 ACTIONS,a=acc, a 应为 '#'号,则为接受,表示分析成功。4 若 GOTOS,A=j, A 为非终结符,表明前一动作是用关于 A 的产生式归约的,当 前面临非终结符 A 应移入符号栈, j 移入状态栈。对于终结符的 GOTOS,a已和 ACTIONS,a重合。5 若 ACTIONS,a=空白,则转向出错处理。4.3 LR(1 分 析 思 想LR(1分 析 的 基 本 思 想 :LR(1方 法 按 每 个 具 体 的 句 型 设 置 展 望 信 息 。例 :如 果 存 在 如 下 的 一 些 句 型 Aa , Ab , Ac , 则 FOL
28、LOW(A=a,b,c处 理 到 句 型 A , 只 当 输 入 符 号 为 a 时 归 约 ;处 理 到 句 型 A , 只 当 输 入 符 号 为 b 时 归 约 ;处 理 到 句 型 A , 只 当 输 入 符 号 为 c 时 归 约LR(1分 析若 A a Bb属 于 项 目 集 I 时 , 则 B g也 属 于 I , 把 FIRST(b作 为 用 产 生 式 B g 归 约 的 搜 索 符 (用 以 代 替 SLR(1分 析 中 的 FOLLOW(B , 并 把 此 搜 索 符 号 的 集 合 也 放 在 相 应 项 目 的 后 面 , 这 种 处 理 方 法 即 为 LR(1方
29、法(1 I的 任 何 项 目 属 closure(I;(2若 A 1. B 2, a closure(I, B 是 一 产 生 式 , 那 么 对 于 FIRST(2a 中 的 每 个 终 结 符 b , 如 果 B . ,b不 在 closure(I中 , 则 把 它 加 进 去 ;(3重 复 (1 (2 , 直 至 closure(I不 再 增 大 。GO 函 数若 I 是 一 个 项 目 集 , X 是 一 个 文 法 符 号GO(I, X= closure(J其 中 J= 任 何 形 如 A X . ,a的 项 目 A .X ,a ILR(I项 目 规 范 族 C 的 构 造 算 法
30、类 同 LR(0的 , 只 是初 始 时 :C= closure(S . S,#;LR(1的 优 缺 点 :优 点 :LR(1分 析 对 搜 索 符 的 计 算 方 法 比 较 确 切 , 没 有 无 效 归 约 , 适 应 的 文 法 更 广缺 点 :LR(1分 析 表 的 状 态 数 目 庞 大4.4 各模块流程图LR(1分析器构造及输入串分析流程: 求项目集规范族:分析表构造流程- 20 -总控程序流程 第 5章 详细设计负责模块:DFA 生成算法其中包括三个步骤:(1由正规式构造 NFA ,(2把 NFA 转化为与其等价的 DFA ,(3把 DFA 最小化。5.1 正规式构造 NFAI
31、nput : 一个字母表 ( 上的 Regular Experssion rOutput : 一个接受 L(r 的 NFA NMethod : 把 r 解析成为子表达式 (subexpressions,然后使用下面的 1,2 规则,为 r 中 的基本符号 (basic symbols, 基本符号就是 和 中的字符 构建 NFA ,基本符号符合 1,2 关于正 规式的定义,注意,假如 symbol a 出现多次,那么它每次出现都要构建一个 NFA 。之后,我们需 要通过 r 的语法结构,通过规则 3 组合前面构建的 NFA ,直到得到整个 NFA 为止。对于中间产生 的 NFA ,它只有一个终态
32、,没有进入开始装状态的边,也没有离开接受状态的边。规则 1对于空记号 ,生成下面的 NFA 。 每次构建时, i,f 的值都不一样,因此可见构造一个识别 的 NFA ,会产生 2个新的状态规则 2对于 的字母表中的元素 a ,生成下面的 NFA 。 同样, 对于 aaa , 第一个 a 构造的 NFA 中的 i,f 不会和第 2个 a 构造的 i,f 一样, 因此可见构造一个识 别 中的每个字符 a 的 NFA ,会产生 2个新的状态- 22 -规则 3令正规表达式 s 和 t 的 NFA 分别为 N(s和 N(t。a 对于表达式 s|t 构建 NFA N(s|t b 对于表达式 st ,构建
33、 N(st c 对于正规式 s*,构造 N(s* d 对 于 (s,使用 N(s本身作为它的 NFA ,也就是不用构造新的 NFA5.2将 NFA 转化为 DFAInput : 一个 NFA NOutput : 接受相同语言的 DFA DMethod : 为 D 构架一个 transition table(转换表 Dtran,每个 DFA 的状态是一个 NFA 的 状态集合 (这里一定要注意前面说过的 12 两点 。定义以下的操作:-closure(s 从 NFA 的状态 s 出发,仅通过 迁移能够到达的 NFA 的状态集 合-closure(T 从 T 中包含的某个 NFA 的状态 s 出发
34、,仅通过 迁移能够到达 的 NFA 的状态集合move(T, a 从 T 中包含的某个 NFA 的状态 s 出发,通过输入符号 a 迁移能够 到达的 NFA 的状态集合a. 构造 NFA N的状态 K 的子集算法:令 Dstates 中仅包含 -closure(s, 并设置状态为未标记 ; while Dstates中包含未标记的状态 T dobegin标记 T;for 各输入记号 a dobeginU := -closure(move(T, a;if U不在 Dstates 中 then将 U 追加到 Dstates 中,设置状态为未标记 ; DtransT, a := U;endendb.
35、 -closure(T的计算方法如下:将 T 中的所有状态入栈 ;设置 -closure(T的初始值为 T;while 栈非空 dobegin从栈顶取出元素 t;for 从 t 出发以 为边能够到达的各个状态 u doif u不在 -closure(T中 thenbegin将 u 追加到 -closure(T中 ; 将 u 入栈 ;endend- 24 -5.3把 DFA 最小化通过 NFA 转化而成的 DFA 不一定是最简的,也就是说,有多余的状态可以被删除, 对于每一个正规定义,我们一定可以得到一个唯一的最简的 DFA我们回顾一下 Move 函数, DFA 的 move 函数:move :
36、 (state, symbol -> S注意,这里 (state, symbol表示的是一个集合,这里规范的数学表达应该是: move : (state, symbol | 所有属于 DFA 的 state 和 symbol -> S 或者 move : S × -> S假如一个 DFA 的 move 函数不是全函数, 那么必须引入死状态。 假如某个 DFA 的 move 函数是全函数,那么每个状态在所有 input symbol下都有出边,比如: 这个 DFA 每个状态都可以接受所有的 input symbol,这里是 a , b 。而下面的 DFA : 先不要看
37、红色部分,那么这个 DFA 的状态 c , d ,它们无法通过 input symbol b 进入下 一个状态,我们可以加上红色的部分,把这个 move 函数,转化成为一个全函数,并且, 经过转化操作之后, 新的 DFA 与原 DFA 等价。 这个红色部分标识的状态, 被叫做死状态。第 6章 测试测试数据放在 1.txt (任意文本文件中,测试结果放在 2.txt (任意文本文件 中。测试数据:b(ab*运行界面如下: - 26 - 测试的字符串: 检验的匹配结果: 小 结编译原理是一门很重要的课程。我们平常写小的 C 语言程序会感到困难,而编译原 理则是关于编写编译器的技术,难度之大可想而知
38、。编译器的编写一直被认为是十分困 难的事情,难怪第一 Fortran 的编译器据说花了 18年的时间才完成。当然编译原理和 编译技术并不是相同的,编译原理更注重理论方面的知识,编译技术更注重实际编写编 译器过程中用到的技术。在编程序的过程中,有时会和一个小小的错误较上半天的劲, 等到最后才发现只是由于语法用的不正确,算法是可行的。这样在一个小小的语法错误 上浪费许多时间是很不值得,所以在今后的语言学习中,我会重视语法的细节。另外在 程序设计上, 以前自己倾向于直接写程序, 很少使用流程图。 后来发现先设计出流程图, 那么程序的结构就会清晰的多,编写的时候也会更节省时间。我在编程过程中花的时间五天左右,因为自己只是编写和改动了部分代码,因为正 规式转为 NFA 以及 NFA 的确定化和最小化, 在书上和网上都有大量的资料可以让我们参 考,不过我还是深入研究了程序代码及原理。原理其实是最重要的,因为原理弄懂了, 流程图出来后,代码的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四年级数学下册 等腰三角形
- 护理不良事件分级管理
- 手术室人文护理的未来趋势
- 消防工程企业法律法规及质量管理规范岗前培训试题及答案
- 心电室岗位责任制度
- 总工程师工作责任制度
- 我国食品民事责任制度
- 打非工作责任制度
- 扫货工安全生产责任制度
- 技师技术指导责任制度
- 2025年中邮资管春季校园招聘精彩来袭笔试参考题库附带答案详解
- 小学语文课程标准解读
- 投入车辆承诺书
- 2026年盐城工业职业技术学院单招职业适应性测试模拟测试卷新版
- 塞纳帕利胶囊-临床药品应用解读
- 2026年辽宁医药职业学院单招职业技能考试参考题库附答案详解
- 2026年湘西民族职业技术学院单招职业技能考试题库附答案
- 注塑成型工艺技术指导书
- 2025年工程机械维修工(高级技师)职业鉴定考试题库(含答案)
- 2025冠状动脉功能学临床应用专家共识课件
- 加工中心技师(高级)考试试卷及答案
评论
0/150
提交评论