编译原理第三章笔记--词法分析

本文详细介绍了词法分析器的构造,包括对词法分析器的要求、单词符号的表示形式,以及词法分析器的设计方法如超前搜索和直接分析法。重点讲解了正规表达式与有限自动机的关系,包括正规式与正规集的定义、有限自动机的构造和等价性,并探讨了DFA和NFA的转换和化简过程。
摘要由CSDN通过智能技术生成

3.1对词法分析器的要求

一、单词符号

语言中具有独立意义的最小的语法符号

单词的种类:

    基本字    if...else这种

    标识符    起名来表示变量名、函数名

    常数

    运算符

    界符      ;  {}  ()  , 这种

二、单词的表示形式

    常常用二元式来表示    <单词种别,单词符号的属性值>

    单词种别

        (1)关键字,运算符,界符

                    一字一种编码(处理起来方便?)

        (2)常数

                    按类型分别给出编码      整形  布尔型

        (3)标识符

                    统归一种,只给一个编码

        若一个种别只包含一个符号,种别编码可以代表

        若一个种别包含多个符号,需要用种别编码+属性值来区分

单词符号的属性信息

    属性值的表示方法:

        (1)基本字,运算符,界符       只给出种别编码

        (2)常数      标准二进制表示

        (3)标识符   字符串编码或对应的符号表项地址

3.2词法分析器的设计

一、词法分析器的结构

        

    1、输入缓冲区。、预处理子程序

    (1)输入源程序文本,放入输入缓冲区中,词法分析工作可在这个输入缓冲区中工作

    (2)剔除无用的空白,跳格(TAB),回车,换行等编辑性字符;若空白符号为单词符号的界符,就将若干空白和并为1个

    (3)剔除注释行,比如/*…*/

    (4)源程序的出错列表打印

    (5)将预处理好的子程序放到扫描缓冲区中

    2、扫描缓冲区、扫描器

    (1)扫描缓冲区

            设两个半区,可互补使用

                                

            设两个指针
                起点指针:指出正在识别单词起点位置

                搜索指针:向前搜索以寻找单词终点

    (2)扫描器:扫描缓冲区,直接进行单词的识别

三、单词符号的识别

    1. 超前搜索

        在单词识别的过程中,通过向前多读几个符号的形式,准确的进

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值