词法分析与编译原理:单词种别与属性值

需积分: 15 0 下载量 118 浏览量 更新于2024-07-12 收藏 12.99MB PPT 举报
"本文档主要介绍了编译原理中的词法分析部分,特别是关于单词种别和单词符号的属性值的概念。" 在编译原理中,词法分析是编译器的第一步,它的主要任务是从源程序中识别出一个个有意义的单元,即单词符号,将源代码转换成由这些单词符号组成的中间形式。词法分析器,也称为扫描器,负责执行这个过程。 单词种别是单词符号的分类,它们通常使用整数进行编码。比如,关键词、标识符、常数、运算符和界符等都是不同的单词种别。每个种别都有特定的含义,如关键词是语言预定义的具有特殊意义的标识符,如"Pascal"中的"begin"和"end"。标识符用于表示变量、数组或过程名,它们可以是任意数量的。常数则包括不同类型的数值,如整型、实型等。运算符如加减乘除,以及界符如逗号、分号等,它们在语法中起到分隔和控制作用。 单词记录由两部分组成:单词种别和单词属性值。如果一个单词种别只包含一个单词符号,那么通常不需要额外的属性值。但当一个种别包含多个单词符号时,就需要提供属性值来区分它们。例如,如果所有运算符都被归为一类,那么属性值可能用来区分"+"和"-"。属性值可以是任何能够描述单词符号特征的信息,如标识符的内存地址或者常数的具体数值。 在设计词法分析器时,如何划分单词种别是一个技术问题,可以根据处理的便利性来决定。例如,标识符通常归为一类,常数按照类型(整型、实型等)划分,关键词可以单独为一类,也可以每个关键词单独一类。运算符可以每个运算符单独一类,也可以根据共性归类,而界符通常是每个符号一个种别。 单词符号的属性是指单词的特性,属性值则是反映这些特性的具体值。例如,对于标识符,其属性值可能是指向该标识符在符号表中的表项的指针,以便在后续的编译阶段访问和解析。 在实际应用中,词法分析器会将源程序的字符流转化为单词流,生成一系列的二元式,每个二元式包含一个单词种别和相应的属性值。例如,代码"while(i>=j)i--"会被转化为一系列的二元式,每个二元式对应源代码中的一个单词,并携带相应的种别和属性信息。 总结来说,词法分析是编译过程的基础步骤,它通过识别单词种别和属性值,将源代码分解为便于进一步语法分析和语义分析的形式。理解这一过程对于编写编译器或理解编译原理至关重要。