HNU编译原理作业2:词法分析与正则表达式详解

1 下载量 125 浏览量 更新于2024-08-03 2 收藏 14.76MB PDF 举报
本次HNU编译原理作业2(2021级)主要关注词法分析和正则表达式两个核心主题。以下是详细的知识点解析: 1. **词法分析简介**: - 词素:词法分析是编译器处理程序的第一步,将源代码分解为基本的有意义的符号,即词素。例如,常量如12), my house被识别为单个词素,它们的值分别是内存单元中的存储值和字符串本身。 - 常量与变量:常量包括数值(如512ㄥ和-100),它们有自己的固定值;变量如<x, x>和<x_x>,在某些上下文中可能代表内存地址,其值由上下文决定。 - 标点符号:标点符号如"<>"、","和"."通常没有独立的值,但有时用于表示语法结构。 2. **正则表达式** - 字符匹配:正则表达式用于描述字符串模式,如以"a"开头和结尾的字符串,可以表示为"a...a";零个1多次的多个字母组合,如"..."。 - 字母集:规定了特定字符集,如大写和小写字母的集合[a-jA-Z],辅音字母[bcdfghjklmnpqrst.mxwv],以及十六进制数字符[0-9abcdefABCDEF]。 - 语言特性:英语句子后的合法字符集包括标点符号"I?!",这表明这些字符可以出现在句子末尾。 3. **符号值和语法分析**: - 关键字:关键字如"if", "else", "while"等,它们在编程语言中有特殊含义,其值通常就是它们自身。 - 无值符号:如标点符号在词法分析阶段可能没有明确的值,它们的存在只是为了构成正确的语法结构。 4. **作业任务与实践**: - 学生需要根据上述规则设计词法分析器,识别并分类输入的源代码为不同的词法单元,如常量、变量、关键字、标点符号等,并处理正则表达式的模式匹配。 本次作业着重于理论与实践的结合,要求学生深入理解编译原理中的词法分析过程,能够运用正则表达式描述和匹配语言的语法规则,并将其应用于实际编程任务中。完成这项作业有助于巩固对编译原理基础概念的理解,提升对编程语言结构的敏感度。