编译原理课程设计---华东交通大学
编译原理课程设计

《编译原理》课程设计大纲课程编号:课程名称:编译原理/Compiler Principles周数/学分:1周/1学分先修课程:高级程序设计语言、汇编语言、离散数学、数据结构适用专业:计算机科学与技术专业、软件工程专业开课学院,系或教研室:计算机科学与技术学院一、课程设计的目的课程设计是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。
通常,设计题中的问题比平时的练习题要复杂,也更接近实际。
编译原理这门课程安排的课程设计的目的是旨在要求学生进一步巩固课堂上所学的理论知识,深化理解和灵活掌握教学内容,选择合适的数据逻辑结构表示问题,然后编制算法和程序完成设计要求,从而进一步培养学生独立思考问题、分析问题、解决实际问题的动手能力。
要求学生在上机前应认真做好各种准备工作,熟悉机器的操作系统和语言的集成环境,独立完成算法编制和程序代码的编写。
设计时间:开发工具:(1) DOS环境下使用Turbo C;(2) Windows环境下使用Visual C++ 。
(3) 其它熟悉语言。
二、课程设计的内容和要求设计题一:算术表达式的语法分析及语义分析程序设计。
1.目的通过设计、编制、调试一个算术表达式的语法及语义分析程序,加深对语法及语义分析原理的理解,并实现词法分析程序对单词序列的词法检查和分析。
2.设计内容及要求:算术表达式的文法:〈无符号整数〉∷= 〈数字〉{〈数字〉}〈标志符〉∷= 〈字母〉{〈字母〉|〈数字〉}〈表达式〉∷= [+|-]〈项〉{〈加法运算符〉〈项〉}〈项〉∷= 〈因子〉{〈乘法运算符〉〈因子〉}〈因子〉∷= 〈标志符〉|〈无符号整数〉|‘(’〈表达式〉‘)’〈加法运算符〉∷= +|-〈乘法运算符〉∷= *|/(1) 分别选择递归下降法、算符优先分析法(或简单优先法)完成以上任务,中间代码选用逆波兰式。
(2) 分别选择LL(1)、LR法完成以上任务,中间代码选用四元式。
编译原理毕业课程设计

( 此文档为 word 格式,下载后您可任意编辑修改!) 编译原理课程设计课程名称编译原理学生学院计算机学院专业班级计算机科学与技术10( 8)学生姓名武小亮指导教师杨劲涛2012 年 1月 2日编译原理课程设计报告一、设计要求:( 1)扩充赋值运算:*= 和 =扩充语句( Pascal 的 FOR 语句) :①FOR < 变量 >:=<表达式 > TO < 表达式 > DO < 语句>②FOR < 变量 >:=< 表达式 > DOWNTO < 表达式 > DO < 语句 >其中,语句①的循环变量的步长为2,语句②的循环变量的步长为-2。
( 3)增加运算:++ 和 --。
选做内容(成绩评定范围扩大到:“优”和“良”)( 1)增加类型:①字符类型;② 实数类型。
( 2)扩充函数:①有返回值和返回语句;②有参数函数。
(3)增加一维数组类型(可增加指令)。
(4)其他典型语言设施。
二、课程设计中完成的内容有:( 1)扩充赋值运算:*= 和 =(2)扩充语句( Pascal的 FOR 语句) :①FOR < 变量 >:=<表达式 > TO < 表达式 > DO < 语句>②FOR < 变量 >:=< 表达式 > DOWNTO < 表达式 > DO < 语句 >其中,语句①的循环变量的步长为2,语句②的循环变量的步长为-2。
( 3)增加运算:++ 和 -- 。
三、实验环境与工具:(1)计算机及操作系统:PC 机, WindowsXP( 2)程序设计语言:VC++ 6.0( 3)教学型编译程序:PL0四、设计方案:1、结构说明 :PL0 语言编译过程采用一趟扫描方式 ,以语法分析程序为核心 ,词法分析程序和代码生成程序都作为一个独立的过程 ,当语法分析需要读单词时就调用词法分析程序 ,而当语法分析正确需生成相应的目标代码时 ,则调用代码生成程序 .此外 ,用表格管理程序建立变量、常量和过程标识符的说明与引用之间的信息联系.用出错处理程序对词法和语法分析研究遇到的错误给出在源程序中出错的位置和错误性质 .当源程序编译正确时,PL0 编译程序自动调用解释执行,并按用户程序要求输入数据和输出运行结果.2、流程图:编译和解释执行的结构图PL0 编译程序总体流程图3、词法分析词法分析是编译的第一个阶段,它的主要任务是从左向右逐个字符地对源程序进行扫描,产生一个个单词序列用于语法分析。
“编译原理”课程教学探索与实践

语言 、 有穷 自动机 及 语 法 制 导 翻 译 等 抽 象 内容 , 学
生在 学习过 程 中存在 一 定 困难 , 曾一 度被 学 生戏 称 为“ 书” 作 为授 课 教 师 , 何 让 这 门课 的教 学 效 天 . 如
学生学 习兴趣
基金项 目: 华东交通大学“ 编译原理” 精品课程 .
作者简 介 : 刘立月(90 , , 师, 17 一) 男 讲 研究方向 : 测控 、 入式 及网络工程 . 嵌
维普资讯
9 0
华
东
交
通
大
学
学
报
20 06在
严格把握课 堂教学 内容 ,深入 研究各 知识 点产
维普资讯
第 2 卷 3 20 年 l 06 2月
华
东
交
通
大
学
学
报
V 12 0.3
Ju a fE s C iaJ oogUnvri o r lo at hn i t iesy n a n t
D c .2 0 e . 06
文章 编号 : 0 ~02 (06 综合 一08 —0 1 5 5320 ) 0 09 3
拟, 引导学 生 去思维 探讨 ,使 抽 象 的 内容 活起 来 ,
掌握与巩固授课 内容 , 就是一个不错的方法 .
在 教学 中 , 每章学 习前 应 就本 章对 学生 的要 求
要明确 , 其 是 重 点 知识 与难 点 应 指 出 , 尤 有利 于 学
提高学生的学习兴趣 . 例如在讲解 L R类 的语法分 析过 程 中 , 先介 绍 L R分析 器 的结 构 , 出 L ( ) 给 R 0 分
编译原理课程设计内容

编译原理课程设计内容一、教学目标本节课的教学目标是使学生掌握编译原理的基本概念和基本方法,能够理解源程序的词法分析、语法分析和语义分析等过程,并能够运用这些知识对简单的程序进行编译。
通过本节课的学习,学生应达到以下具体目标:1.知识目标:了解编译原理的基本概念、编译过程和编译器的基本结构;掌握源程序的词法分析、语法分析和语义分析的基本方法。
2.技能目标:能够运用编译原理的基本知识对简单的程序进行编译;能够使用至少一种编译器进行程序设计。
3.情感态度价值观目标:培养学生对计算机科学和编程的兴趣和热情,提高学生分析问题和解决问题的能力。
二、教学内容本节课的教学内容主要包括以下几个部分:1.编译原理的基本概念和编译过程;2.源程序的词法分析、语法分析和语义分析的基本方法;3.编译器的基本结构和工作原理;4.简单程序的编译实例。
三、教学方法为了达到本节课的教学目标,将采用以下几种教学方法:1.讲授法:通过讲解编译原理的基本概念、编译过程和编译器的基本结构,使学生掌握相关知识。
2.案例分析法:通过分析具体程序的编译过程,使学生理解和掌握词法分析、语法分析和语义分析的方法。
3.实验法:让学生亲自使用编译器进行程序设计,提高学生的实际操作能力。
四、教学资源为了支持本节课的教学内容和教学方法的实施,将准备以下教学资源:1.教材:《编译原理》;2.参考书:相关编译原理的专著和论文;3.多媒体资料:关于编译原理的PPT、视频等;4.实验设备:计算机和编译器。
五、教学评估为了全面、公正地评估学生在编译原理课程中的学习成果,将采用以下几种评估方式:1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,评估学生的学习态度和理解程度;2.作业:布置与课程内容相关的编程作业,评估学生的实际操作能力和对知识的掌握程度;3.考试:进行期中考试和期末考试,评估学生对课程知识的全面理解和运用能力。
六、教学安排本学期的编译原理课程安排如下:1.教学进度:按照教材《编译原理》的章节顺序进行教学,确保每个章节都有足够的时间进行讲解和讨论;2.教学时间:每周两节课,每节课45分钟,共计18周;3.教学地点:计算机实验室,以便学生进行实验和实践。
编译原理c语言课程设计

编译原理c语言课程设计一、课程目标知识目标:1. 理解编译原理的基本概念,掌握C语言编译过程的关键步骤;2. 学会运用C语言进行程序设计,掌握基本语法、数据类型、运算符和控制结构;3. 了解编译器如何将C语言代码转换为机器语言,理解编译器优化和错误处理机制;4. 掌握使用调试工具对C程序进行调试和优化,提高程序性能。
技能目标:1. 能够运用所学知识独立编写简单的C程序,解决实际问题;2. 学会使用编译器和调试工具对C程序进行编译、链接和调试,具备基本的程序调试能力;3. 能够分析C程序中的错误,并进行修正,提高编程能力;4. 培养良好的编程习惯,编写规范、易读、高质量的C代码。
情感态度价值观目标:1. 培养学生对编译原理和C语言的兴趣,激发学习热情,树立自信心;2. 培养学生的团队合作意识,学会与他人共同解决问题,提高沟通能力;3. 培养学生的创新精神,敢于尝试新方法,勇于克服困难,追求卓越;4. 培养学生严谨、踏实的学术态度,遵循学术道德,尊重他人成果。
课程性质:本课程为实践性较强的学科,要求学生具备一定的计算机基础和编程能力。
学生特点:学生处于高年级阶段,已具备一定的编程基础和问题解决能力。
教学要求:注重理论与实践相结合,强调动手实践,培养学生解决实际问题的能力。
在教学过程中,关注学生的个体差异,因材施教,确保课程目标的实现。
通过本课程的学习,使学生能够掌握编译原理和C语言的核心知识,具备实际编程和调试能力。
二、教学内容1. 编译原理基本概念:介绍编译过程、编译器的组成、编译器的优化和错误处理;- 教材章节:第1章 编译原理概述2. C语言基础知识:回顾C语言的基本语法、数据类型、运算符、表达式和控制结构;- 教材章节:第2章 C语言基础3. C程序设计:学习函数、数组和指针的运用,编写简单的C程序;- 教材章节:第3章 函数、第4章 数组与指针4. 编译器与调试工具的使用:学习如何使用编译器、链接器和调试器对C程序进行编译、链接和调试;- 教材章节:第5章 编译器与调试器5. C程序调试与优化:分析C程序中的错误,学习调试技巧和性能优化方法;- 教材章节:第6章 程序调试与优化6. 综合案例分析与实战:结合实际案例,进行编译原理和C语言的实战训练;- 教材章节:第7章 综合案例分析与实战教学内容安排和进度:1. 第1周:编译原理基本概念;2. 第2周:C语言基础知识回顾;3. 第3-4周:C程序设计;4. 第5周:编译器与调试工具的使用;5. 第6周:C程序调试与优化;6. 第7-8周:综合案例分析与实战。
编译原理的课课程设计

编译原理的课课程设计一、教学目标本课程的教学目标是使学生掌握编译原理的基本概念、理论和方法,能够运用编译原理解决实际问题。
具体分为以下三个部分:1.知识目标:学生需要掌握编译原理的基本概念,包括编译器的基本结构、词法分析、语法分析、语义分析、中间代码生成、目标代码生成和优化等。
2.技能目标:学生需要具备使用编译原理解决实际问题的能力,包括能够使用编译器开发工具,进行词法分析、语法分析和语义分析等操作。
3.情感态度价值观目标:通过本课程的学习,使学生认识到编译原理在软件工程中的重要性,增强学生对计算机科学的热爱和责任感。
二、教学内容本课程的教学内容主要包括以下几个部分:1.编译器的基本结构:包括前端和后端的基本组成部分,以及它们之间的交互关系。
2.词法分析:包括词法规则的定义、词法分析器的实现和词法分析的过程。
3.语法分析:包括语法规则的定义、语法分析树的构建和语法分析的方法。
4.语义分析:包括语义规则的定义、语义分析的方法和语义分析的实现。
5.中间代码生成:包括中间代码的定义、中间代码生成的方法和中间代码优化的方法。
6.目标代码生成:包括目标代码的定义、目标代码生成的方法和目标代码优化的方法。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:教师通过讲解编译原理的基本概念和理论,使学生掌握相关知识。
2.案例分析法:教师通过分析实际的编译器案例,使学生了解编译原理在实际中的应用。
3.实验法:学生通过动手实现编译器的基本功能,加深对编译原理的理解。
4.讨论法:学生通过分组讨论,共同解决问题,培养团队协作能力。
四、教学资源本课程的教学资源包括以下几个部分:1.教材:选用《编译原理》作为主要教材,为学生提供系统性的理论知识。
2.参考书:提供相关的参考书籍,为学生提供更多的学习资源。
3.多媒体资料:制作PPT、视频等多媒体资料,丰富课堂教学。
4.实验设备:提供计算机实验室,让学生能够实际操作编译器。
编译原理课程设计

编译原理课程设计一、设计目的和依据编译原理是计算机科学专业的核心课程,通过学习该课程,可以使学生了解编译器的基本原理和设计方法,培养学生的编译器设计和实现能力。
本课程设计旨在通过设计一个简单的编译器,对学生掌握的编译原理知识进行实践应用,加深对编译原理的理解。
设计依据主要包括编译原理课程的教学大纲和参考教材。
二、设计内容和要求1.设计一个简单的编译器,要求实现从源程序到目标汇编语言的完整编译过程。
2.编译器要支持基本的语法解析、语义分析和代码生成功能。
3.编译器要求能够把源程序编译成可执行的目标程序,能够在特定的计算机系统上运行。
三、设计步骤和方法1.确定语言和文法:选择一种简单的高级程序设计语言作为源语言,设计对应的文法。
例如,可以选择类C语言作为源语言,设计相应的文法规则。
2.构建词法分析器:根据语言的词法规则,设计并实现词法分析器,将源程序分割成一系列的单词符号。
3.设计语法解析器:根据文法规则,设计并实现语法解析器,将词法分析器输出的单词流转化为语法树。
4.进行语义分析:根据语义规则,对语法树进行语义分析,并生成中间代码。
5.进行代码生成:根据目标机器的特点,设计并实现代码生成器,将中间代码翻译成目标机器的汇编语言。
6.进行代码优化:对生成的目标代码进行优化,提高代码的运行效率。
7.进行目标代码的装配:将生成的目标代码和运行库函数进行链接,生成可执行的目标程序。
四、实施过程和方案1.使用合适的编程语言和工具进行实现:可以选择使用C/C++等传统的编程语言进行实现,也可以使用较新的编程语言如Python等。
同时,可以借助工具如LEX/YACC等进行词法分析和语法解析器的实现。
2.设计合适的数据结构和算法:设计合理的数据结构和算法,提高编译器的效率和性能。
如采用符号表、语法树、中间代码等数据结构来辅助编译器的实现。
3.进行测试和调试:在实现过程中,要进行充分的测试和调试,保证编译器的正确性和可靠性。
c语言编译原理课程设计

c语言编译原理课程设计一、教学目标本课程的教学目标是使学生掌握C语言的编译原理,理解编译器的基本工作原理和编译过程,能够使用编译器进行C语言程序的编写和调试。
具体来说,知识目标包括掌握编译器的基本组成部分,了解词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成的基本原理和方法;技能目标包括能够使用编译器进行C语言程序的编写、编译和调试,能够理解和分析编译器生成的汇编代码和目标代码;情感态度价值观目标包括培养学生的编程兴趣和主动性,提高学生的问题解决能力和创新精神。
二、教学内容本课程的教学内容主要包括C语言的编译原理和编译器的设计与实现。
具体来说,教学大纲如下:1.编译器的基本概念和组成部分2.词法分析的基本原理和方法3.语法分析的基本原理和方法4.语义分析的基本原理和方法5.中间代码生成和代码优化的基本原理和方法6.目标代码生成的基本原理和方法7.C语言程序的编译和调试方法三、教学方法本课程的教学方法主要包括讲授法、案例分析法和实验法。
具体来说,将采用以下方法进行教学:1.讲授法:通过讲解和演示的方式,使学生掌握编译原理的基本概念和方法。
2.案例分析法:通过分析典型的编译器设计和实现案例,使学生理解和掌握编译器的设计和实现技巧。
3.实验法:通过上机实验,使学生能够实际操作编译器,掌握C语言程序的编写和调试方法。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
具体来说,将采用以下教学资源进行教学:1.教材:《C语言编译原理》(英文版),作者:Alfred V. Aho,Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman。
2.参考书:《编译原理》(中文版),作者: Alfred V. Aho, Monica S.Lam, Ravi Sethi, Jeffrey D. Ullman。
3.多媒体资料:包括课件、教学视频和案例分析资料。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计(论文)任务书
软件学院学院软件工程专业10-4 班
一、课程设计(论文)题目 First集和Follow集生成算法模拟
二、课程设计(论文)工作自 2013 年 6 月17 日起至2013 年6 月 21 日止。
三、课程设计(论文) 地点: 软件学院实训中心
四、课程设计(论文)内容要求:
1.本课程设计的目的
进一步培养学生编译器设计的思想,加深对编译原理和应用程序的理解,针对编译过程的重点和难点内容进行编程,独立完成有一定工作量的程序设计任务,同时,强调好的程序设计风格,并综合使用程序设计语言、数据结构和编译原理的知识, 熟悉使用开发工具VC /JA V A/C#/.NET 。
2.课程设计的任务及要求
1)课程设计任务:
设计一个由正规文法生成First集和Follow集的动态过程模拟
动态模拟算法的基本功能是:
1、输入一个文法G;
2、输出由文法G构造FIRST集的算法;
3、输出First集;
4、输出由文法G构造FOLLOW集的算法;
5、输出FOLLOW集。
2)创新要求:
在基本要求达到后,可进行创新设计,如改进算法效率。
3)课程设计论文编写要求
(1)课程设计任务及要求
(2)设计思路--工作原理、功能规划
(3)详细设计---数据分析、算法思路、功能实现(含程序流程图、主要代码及注释)、界面等。
(4)运行调试与分析讨论---给出运行屏幕截图,分析运行结果,有何改进想法等。
(5)设计体会与小结---设计遇到的问题及解决办法,通过设计学到了哪些新知识,巩固了哪些知识,有哪些提高。
编译原理课程设计
(6)报告按规定排版打印,要求装订平整,否则要求返工;
(7)课设报告的装订顺序如下:封面---任务书---中文摘要---目录----正文---附录(代码及相关图片)
(8)严禁抄袭,如有发现,按不及格处理。
4)课程设计评分标准:
(1)学习态度:20分;
(2)系统设计:20分;
(3)编程调试:20分;
(4)回答问题:20分;
(5)论文撰写:20分。
5)参考文献:
(1)张素琴,吕映芝. 编译原理[M]., 清华大学出版社
(2)蒋立源、康慕宁等,编译原理(第2版)[M],西安:西北工业大学出版社
6)课程设计进度安排
1.准备阶段(4学时):选择设计题目、了解设计目的要求、查阅相关资料
2.程序模块设计分析阶段(4学时):程序总体设计、详细设计
3.代码编写调试阶段(8学时):程序模块代码编写、调试、测试
4.撰写论文阶段(4学时):总结课程设计任务和设计内容,撰写课程设计论文
学生签名:
2013 年 6 月21 日
课程设计(论文)评审意见
(1)学习态度(20分):优()、良()、中()、一般()、差();(2)系统设计(20分):优()、良()、中()、一般()、差();(3)编程调试(20分):优()、良()、中()、一般()、差();(4)回答问题(20分):优()、良()、中()、一般()、差();(5)论文撰写(20分):优()、良()、中()、一般()、差();
评阅人:职称:副教授
2013 年 6 月日
XXX:First集和Follow集生成算法模拟
中文摘要
随着计算机科学的飞速发展,形式语言与自动机理论和方法的研究也越来越受到人们的重视,但前者已经成为计算机科学的理论基础。
本课程设计主要研究自动机在编译方面的应用,并将讨论重点放在求First集和Follow集。
根据构造FIRST集的算法和FOLLOW集算法,编写一个程序,程序具有通用性,即编制的语法程序能够适用于不同文法。
基本思想描述,通过对输入的文法进行判断,进而根据构造算法计算FIRST集和FOLLOW 集,并把计算所得的FIRST集和FOLLOW集输出。
构造FIRST集的算法和FOLLOW集算法的核心算法教材上已给出,因此所要做的事只是将其实现。
关键字:FIRST集、FOLLOW集、算法
编译原理课程设计
目录
一、课程设计任务及要求 (1)
二、需求分析 (2)
三、设计思路 (3)
四、详细设计 (6)
五、运行调试与分析讨论 (7)
六、设计体会与小结 (11)
七、参考文献 (12)
XXX:First集和Follow集生成算法模拟
一、课程设计任务及要求
设计一个由正规文法生成First集和Follow集并进行简化的算法动态模拟。
动态模拟算法的基本功能是:
1、输入一个文法G;
2、输出由文法G构造FIRST集的算法;
3、输出First集;
4、输出由文法G构造FOLLOW集的算法;
5、输出FOLLOW集。
在基本要求达到后,可进行创新设计,如改进算法效率。
设计体会与小结中给出设计遇到的问题及解决办法,通过设计学到了哪些新知识,巩固了哪些知识,有哪些提高。
编译原理课程设计
二、需求分析
问题描述
设计一个由正规文法生成First 集和Follow 集并进行简化的算法动态模拟。
【基本要求】
动态模拟算法的基本功能是: (1) 输入一个文法G ;
(2) 输出由文法G 构造FIRST 集的算法; (3) 输出First 集;
(4) 输出由文法G 构造FOLLOW 集的算法; (5) 输出FOLLOW 集。
【测试数据】
输入文法: E->TE ’ E ’->+TE ’|ε T->FT ’ T ’->*FT ’|ε F->(E)|i 【实现提示】
用数据库存储多行文法,用LIST 控件显示算法,用GRID 类依据算法进行作图。
并实现算法与生成过程的关联。
首先文法G 的获取通过用户自行输入,动态获取并运行。
程序用UI 界面风格显示。
实现与实际软件的无差别性。
并且,为了方
i )
(
*
+ F 的f i r s t 集
T 的f i r s t 集 E 的f i r s t 集 1
1
1
1 1
1
1 1 1
XXX:First集和Follow集生成算法模拟
便做好的程序在任意地方运行。
可以将其做成exe安装程序,而不再依赖于编程环境。
程序能够对读取到的任意符合要求的文法进行识别,并能够计算出每一个非终结符的First 集Follow集,并且能够将First 集Follow集显示出来。
三、设计思路
1.各功能模块程序流程图
1)用户操作界面控制流图
图3-1 UI用户操作界面控制流图
2).识别非终结符集和终结符集
编译原理课程设计
图3-2 识别非终结符集和终结符集3).计算各个非终结符的First集
XXX:First集和Follow集生成算法模拟
图3-3 计算各个非终结符的First集说明:在求First集合时,主要用的思想是递归求解。
4. 计算各个非终结符的Follow集
编译原理课程设计
图3-4 计算各个非终结符的Follow集
四、详细设计
核心类:FF
FF类:主要用于处理输入的文法,分析出文法中的终结符,非终结符,计算出每个非终结符的First集和Follow集。
两个核心算法函数如下:
add_First(char a[], String b, String firstVn[], int flag)
add_Follow(char a[], String b, String followVn[], int flag)
其中textArea是用于动态显示算法求解过程的控件。
actionPerformed方法:用于处理显示add_First、add_Follow方法计算得到的结果。
五、运行调试与分析讨论
1.程序启动运行
图5-1 程序启动运行2.从文本框输入文法
3.判断是否正规文法并计算FIRST集和FOLLOW集
4.显示相应文法的FIRST集和FOLLOW集
图5-4显示相应文法的FIRST集和FOLLOW集
注:求解过程在下面的文本框中输出,并且,显示结果都是根据读取到的
文法动态的生成。
并且动态更新显示在界面上。
六、设计体会与小结
下面总结此次课程设计的一些收获:
1.对程序设计的理解及算法的设计,有了进一步的提高。
2.对程序调试的技巧收获不小。
因为该程序主要是算法研究,所以程序分支较复杂。
断点调试是必不可缺并且很实用的工作。
3.加强了对编译原理的理解,能够很好地理解程序设计与编译原理的关系。
七、参考文献
[1] 张素琴,吕映芝. 编译原理[M]. 清华大学出版社
[2] 付京周.JA V A程序设计语言[M].北京:人民邮电出版社
[3] 蒋立源、康慕宁等.编译原理(第2版)[M].西安:西北工业大学出版社
[4] 丁振凡. Java语言实用教程[M].北京邮电大学出版社
-第12 页-。