
为PL/0语言构建词法分析程序GETSYM(函数)-编译原理
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本文章详细介绍如何在编译原理课程中,为简单的PL/0编程语言设计并实现一个高效的词法分析器GETSYM函数,帮助学生掌握基础的编译技术。
关键字、算符及界符被视为语言固有的单词;标识符与常量则归类为用户自定义的单词。为此,我们设置了三个全局变量:SYM、ID 和 NUM。
- SYM 用于存放每个单词的类别,采用内部编码的形式表示。
- ID 存放的是用户所定义的标识符值,在程序中表现为标识符字符串的机内形式。
- NUM 则用来存储由用户自定义的数据数值。
GETSYM 函数的主要任务包括:
1. 过滤掉单词之间的空格;
2. 通过查询关键字表来识别关键字,当识别到的关键字时,将对应的类别编码放入 SYM 中。例如,“IF”的类别为 IFSYM,“THEN” 的类别则对应 THENSYM。
3. 对标识符进行辨识处理,其类别的设定为 IDENT,并且 IDRNT 被置于 SYM 内部;同时,标识符本身的值会被存储在 ID 位置上。需要注意的是,关键字或标识符的最大长度限制为10个字符;
4. 拼接数字并识别数值类型后将类别编码(NUMBER)放入 SYM 中,并把具体的数值存入 NUM 变量。
5. 辨识由两个字符组成的运算符号,例如:>=、<=等。这类符号被辨认之后会将其对应的类别信息记录在SYM中;
6. 在词法分析程序 GETSYM 的定义里包含一个读取单个字符的过程——GETCH,并且在此过程中实现源代码的实时显示功能。
以上就是关于单词识别和处理的基本说明,希望对理解相关概念有所帮助。
全部评论 (0)
还没有任何评论哟~


