zoukankan      html  css  js  c++  java
  • 编译原理-第三章 词法分析-3.1 词法分析器的作用

    词法分析器:

    • 作用:
      • 与符号表进行交互,存储和读取符号表中的标识符的信息
      • 读入源程序的输入字符,将他们组成词素,生成并输出一个词法单元序列,每个词法单元序列对应一个于一个词素
      • 过滤掉程序中的注释和空白
      • 将编译器生成的错误消息与源程序的位置联系起
    • 相关概念:
      • 词法单元:由一个词法单元名和一个可选的属性值组成,词法单元名是一个表示某种词法单位的抽象符号,词法单元名是语法分析器的输入符号
        • 在很多程序设计语言中:
          • 每个关键字有一个词法单元,一个关键字的模式就是该关键字本身
          • 表示运算符的词法单元,可以表示单个运算符,也可以表示一类运算符
          • 一个表示所有标识符的词法单元
          • 一个或多个表示常量的词法单元,比如数字和字面值字符串
          • 每一个标点符号有一个词法单元,比如左右括号、逗号和分号
        • 属性值:
          • 一个标识符的属性值是一个指向符号表中该标识符对应条目的指针
        • 例:
      • 模式:描述了一个词法单元的词素可能具有的形式
      • 词素:是源程序中与某个词法单元的模式匹配的一个字符序列,由词法分析器识别为该词法单元的一个实例
      • 例:
    • 词法错误恢复策略:
      • 恐慌模式恢复:从剩余的输入中不断删除字符,直到词法分析器能够在剩余输入的开头发现一个正确的词法单元为止
      • 可能采取的其他错误恢复动作:
        • 从剩余的输入中删除一个字符
        • 向剩余的输入中插入一个遗漏的字符
        • 用一个字符来替换另一个字符
        • 交换两个相邻的字符

    参考——《编译原理(第二版)》

  • 相关阅读:
    DEVOPS技术实践_02:jenkins自动构建项目
    DEVOPS技术实践_01:jenkins集成平台
    nginx和keeplive实现负载均衡高可用
    web简易MP3播放插件 Aplayer篇章一
    龙珠MAD-视频列表(收集更新)
    使用咪咕云做C站视频直链源
    自翻唱龙珠超OP2【限界突破X幸存者】
    龙珠超的新OP【限界突破×サバイバー】
    [盘点]现今热门的h5网游
    一个简单的“贪吃蛇”小游戏
  • 原文地址:https://www.cnblogs.com/fangzhiyou/p/12460698.html
Copyright © 2011-2022 走看看