zoukankan      html  css  js  c++  java
  • 第三章 词法分析

    第三章 词法分析

    3.1 对于词法分析器的要求

           词法分析器的任务:

                  就是把写好的代码翻译成一个个由单词符号组成的程序。

           词法分析器的构造:

    1. 可以自己编写程序。
    2. 可以利用工具Lex等

           单词符号概念:

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

           单词符号的种类:

                  基本字,标识符,常数,运算符,界符。

           单词的表现形式:

                  <单词种别,单词符号的属性值>

          

    3.2 词法分析器的设计

           1.词法分析器的结构:

                 

           源程序文本放入输入缓冲区,在缓冲区可以处理空格,回车,换行等编辑性字符,打印出错列表,除去注释行。

           最后将处理好的子程序放到扫描缓冲区。

     2.单词符的识别

           1)超前搜索:通过对多个单词的识别来准确地识别一个单词。

            2)直接分析:保留字,数字,变量等可以直接识别

               直接分析流程图:

                  

                         

    3.3 正规表达式与有限自动机

           1.词法分析器的构造的基本思路:

                  程序语言的描述:

                  词法规则,正规表达式,有限自动机,词法分析程序。

    1. 正规式和正规集

    我们可以把具有相同特征的字放在一起组成一个集合,即所谓的正规集

    然后使用一种形式化的方法来表示正规集,即所谓的正规式

    1. 有限自动机

    定义:一个确定有限自动机(DFA)M是一个五元式:

    M = (S, ∑, f, s0, F),其中

    1)S是一个有限的状态集合,它的每个元素我们称为一个状态

    2)∑是一个有穷的输入符号的字母表,它的每个元素我们称为一个输入字符

    3)f是从 S×∑ →S的单值部分映射

    4)s0是S的一个元素,为初始状态,它是唯一的

    5)状态集合F是终止状态的集合,它是S的子集(可空)

  • 相关阅读:
    idea 从svn导入项目遇到的错误
    用sql语句处理字符串以逗号截开分别获取值
    tree grid 实现编辑保存然后整体存入数据库
    EasyUI的TreeGrid的json格式,树状图显示问题
    vue.js--菜鸟级入门
    Django3.0知识笔记——WSGI&ASGI是什么?
    open stack
    shell脚本简介及常用文本编辑命令
    shell脚本之变量与运算符
    shell编程之流程控制(for、while、case、break、continue)
  • 原文地址:https://www.cnblogs.com/wuwangchuxin0924/p/8719413.html
Copyright © 2011-2022 走看看