励志名言网:激励无数奋斗的朋友,分享的励志名言范文让我们成长得更快更好
您现在的位置:网站首页 > 范文范本 > 诗词鉴赏 > 一个小语言的词法分析程序原理及

一个小语言的词法分析程序原理及其实现(1

来源: 本站搜集 发布时间:2016-05-24 18:11:50 点击:

词法分析是程序的第一步,是以后步骤语法分析,语义分析以及代码生成的基础.目前可以利用LEX进行词法分析程序的编写,如果所要的语言比较庞大则应该使用LEX,这就需要学习LEX的使用了,本文不使用该工具,而自己手工编写一个,旨在解除大家对系统的神秘感,也希望能给大家一个提示吧.网上有些词法分析程序的原代码,觉得写的挺复杂的。其实词法分析程序的原理都是一样的,所以我想只要搞明白了简单的词法分析程序,再写复杂的就不难了,无非是多加几个关键字,多写几个条件判断语句而已。词法分析是程序的基础,也是最简单的。好,现在让我们开始吧。

先让我们看看这个小语言的文法吧。

G#60;程序#62;:

#60;程序#62;∷=#60;程序首部#62;;#60;分程序#62;.

#60;程序首部#62;∷=program#60;标识符#62;

#60;分程序#62;∷=#60;复合语句#62;

#60;复合语句#62;∷=begin#60;语句序列#62;end

#60;语句序列#62;∷=#60;语句#62;{;#60;语句#62;}

#60;语句#62;∷=#60;赋值语句#62;|#60;复合语句#62;|#60;条件语句#62;

#60;赋值语句#62;∷=#60;标识符#62;:=#60;表达式#62;

#60;条件语句#62;∷=if #60;布尔表达式#62; then #60;语句#62; else #60;语句#62;

#60;表达式#62;∷=#60;项#62;{(+|-#60;项#62;}

#60;项#62;∷=#60;因式#62;{(|/#60;因式#62;}

#60;因式#62;∷=#60;标识符#62;|#60;无正负号常量#62;|’(’#60;表达式#62;’’

#60;布尔表达式#62;∷=#60;表达式#62;#60;关系运算符#62;#60;表达式#62;

#60;关系运算符#62;∷= =|#60;|#60;=|#62;|#62;=|#60;#62;

#60;标识符#62;∷=#60;字母#62;{#60;字母#62;|#60;数字#62;}

#60;无正负号常量#62;∷=#60;数字#62;{#60;数字#62;}.#60;数字#62;{#60;数字#62;}

#60;字母#62;∷=a|b|c|d|e|f|g|……|u|v|w|x|y|z

#60;数字#62;∷=0|1|2|3|4|5|6|7|8|9

根据此文法,构造一词法分析程序。输入以“#”为结束符

按照这个文法,找出该语言的关键字,如program,begin,end ,if,then,else,以及其他一些特殊符号,然后再构造一个分析表,如下表:

单词符号

类别编号

单词符号

类别编号

标识符

1

14

常数

2

#62;

15

if

3

#62;=

16

then

4

#60;#60;/p#62;

17

else

5

#60;=

18

program

6

#60;#62;

19

begin

7

:=

20

end

8

;

21

+

9

.

22

-

10

23

11

/

12

(

13


这篇一个小语言的词法分析程序原理及其实现(1文章怎么样?希望它对您有帮助。如果喜欢一个小语言的词法分析程序原理及其实现(1,请分享给好友。本文网址:http://www.daozhou.net (转载请保留)。

    一个小语言的词法分析程序原理及其实现(1内容概述:词法分析是程序的第一步,是以后步骤语法分析,语义分析以及代码生成的基础.目前可以利用LEX进行词法分析程序的编写,如果所要的语言比较庞大则应该使