合工大宣城校区编译原理实验报告:词法分析设计及LL(1)、LR(1)分析法

需积分: 5 13 下载量 60 浏览量 更新于2023-12-01 1 收藏 1.18MB DOCX 举报
本次合工大宣城校区编译原理实验报告共包括了实验一、实验二和实验三三个部分。实验一主要是词法分析设计,利用VC/VB/JAVA语言实现对C语言子集的源程序进行词法分析,包括对字符串的扫描和分解,输出单词的内部编码及单词符号自身值,并进行标识符登记符号表的管理。实验二是LL(1)分析法,编制调试LL(1)分析程序,构造预测分析表并利用分析表和一个栈来实现对程序设计语言的分析。实验三是LR(1)分析法,对给定的文法使用LR(1)分析法对任意输入的符号串进行分析。通过这些实验,旨在使学生了解词法分析的任务,掌握词法分析程序设计的原理和构造方法,对编译的基本概念、原理和方法有完整的和清楚的理解,并能正确地、熟练地运用。这些实验旨在加深学生对编译原理的理解和实践操作。 实验一中进行了词法分析设计,通过输入源程序从左到右对字符串进行扫描和分解,输出各个单词的内部编码及单词符号自身值;若遇到错误则显示“Error”,然后跳过错误部分继续显示,同时进行标识符登记符号表的管理。主要工作包括从源程序文件中读入字符,统计行数和列数用于错误单词的定位,以及删除空格类字符等。 实验二是LL(1)分析法,通过编制调试LL(1)分析程序,并构造预测分析表,利用分析表和一个栈来实现对程序设计语言的分析。LL(1)分析法的功能是利用LL(1)控制程序根据显示栈栈顶内容、向前看符号以及LL(1)分析表,对输入符号串自上而下的分析过程。 实验三是LR(1)分析法,通过对给定的文法使用LR(1)分析法对任意输入的符号串进行分析。LR(1)分析法实验的目的是通过实际操作,加深对LR(1)分析法的理解,提高对LR(1)分析法的掌握程度。 这些实验的目的是通过实际操作,使学生了解编译原理的基本任务和方法,掌握词法分析程序设计的原理和构造方法,加深对LL(1)和LR(1)分析法的理解,提高对编译原理的掌握程度。通过这些实验的学习,学生可以更深入地了解编译原理,掌握词法分析的任务和方法,从而能够正确地、熟练地运用这些知识。