码迷,mamicode.com
首页 > 其他好文 > 详细

第三章 - 有穷自动机与词法分析(一)

时间:2018-12-16 23:23:07      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:标识符   判断字符串   ascii码   词法分析   1.9   构造   数组   顺序   顺序表   

使用自动机和正则表达式判断字符串是否合法。

构造词法分析器的方法可以分为人工方法和自动化方法。

3.1.1 词法分析器的功能

①每当程序员敲击键盘上一个键时,自动向计算机输入一个相应的8位二进制码,这种码称为ASCII码。程序在计算机中被表示为ASCII码序列,通常称为源程序文件

②翻译时的最小语义单位是单词,Token是源程序中单词的内部表示,也称为记号

首先从源程序文件中一个字符一个字符的读字符,并逐个的分离出单词,然后构造他们的机内表示Token。(源程序的处理过程)

 

关于Token的结构没有统一的规定,至少包含两部分内容:一是单词的类别,二是单词的内容(语义 )。

单词的Token表示也没有固定的模式,其结构可随着编译器的不同而变化。

标识符单词、常量单词、保留字单词

【词法分析器的任务】根据程序的ASCII码序列依次拼出单词的ASCII码表示,然后将其转换成相应的Token码(分为语法分析器的子程序编译器的独立一遍处理器

3.1.2 单词识别

 词法分时首要任务是如何从源文件中的ASCII码序列依次分离出单词,即如何判定新单词的开始、如何判定一个单词的结束以及如何判定是什么类的单词的问题。(但是比起语法分析还是词法分析简单)

3.1.3 词法分析的复杂性(有时需要根据后面遇到的符号往回扫描)

3.1.4 字符串

如何设计字符串空间?(字符数组法和(指针数组法

3.1.5 保留字:关键字不能作为用户定义的标识符。两种处理方法:(保留字表)和(不用保留字表)

保留字表又分为三种(顺序表结构)、(散列表结构)和(散列和顺序表结合的一种结构)

不用保留字表主要思想是(在拼单词的过程中就判断是否为保留字,拼完就判断完了)

3.1.6 空格符、回车符、换行符

空格符分隔单词,回车符和换行符也没有任何实际意义,对错误处理有重要意义(判断bug在第几行出现)

3.1.7 括号类配对预检

有错误不停下,还会继续向下分析,预检就是增加计数器,左括号加一,右括号减一,最后结果为零就配对。

3.1.8 词法错误修正

程序错误可分为三层:(词法层)、(语法层)和(语义层

词法层:错误的字符;语法层:错误的单词;语义层:语义中出现错误的语法单位。

3.1.9 词法分析独立化的意义

 

第三章 - 有穷自动机与词法分析(一)

标签:标识符   判断字符串   ascii码   词法分析   1.9   构造   数组   顺序   顺序表   

原文地址:https://www.cnblogs.com/yangf428/p/10127817.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!