词法分析

词法分析(lexical analysis)程序 :
又称词法分析器或扫描器,主要功能是逐个读入源程序字符并按照构词规则切分成一系列单词。单词是语言中具有独立意义的最小单位,包括保留字、标识符、运算符、标点符号和常量等。词法分析是编译过程中的一个阶段,在语法分析前进行 。也可以和语法分析结合在一起运行

  • 词法分析程序的主要任务:
    • 扫描源程序,识别出具有独立意义的单词
  • 词法分析程序的其他任务:
    • 滤掉空格,跳过注释、换行符
    • 追踪换行标志,将行号与出错信息相联系起来。
    • 宏展开, ……

词法分析程序的输出格式 :
词法分析的输出常采用二元式(单词类别,单词自身的值)
单词类别通常用一个整数类码或单词记号表示,单词记号比整数码含义明确。
若还需记录单词的一些其它属性值:如标识符的类别、层次等,可将这些属性统一放到符号表中,并将单词的二元式表示为:(标识符,指向该标识符所在符号表中位置的指针)

词法分析程序的结构 :
词法分析从语法分析部分独立出来的原因 :

  • 使整个编译程序的结构更简洁、清晰、条例化
  • 改进编译效率
  • 增加编译系统的可移植性

词法分析程序的常用设计方法 :

  • 手工构造
    • 首先确定出能够识别程序中单词的确定的有穷自动机(DFA),然后可以采用直接编程的方法或者表驱动的方法来构造词法分析器。
  • 借助相关工具的自动构造
    • 如:Lex编译系统
posted @ 2017-12-27 10:27  qianbuhan  阅读(517)  评论(0编辑  收藏  举报