词法分析器的设计与实现

简介: 加深对词法分析器的工作过程的理解;加强对词法分析方法的掌握;能够采用一种编程语言实现简单的词法分析程序;能够使用自己编写的分析程序对简单的程序段进行词法分析。

一、实验目的

加深对词法分析器的工作过程的理解;加强对词法分析方法的掌握;能够采用一种编程语言实现简单的词法分析程序;能够使用自己编写的分析程序对简单的程序段进行词法分析。

二、实验内容

自定义一种程序设计语言,或者选择已有的一种高级语言,编制它的词法分析程序。词法分析程序的实现可以采用任何一种编程语言和编程工具。
从输入的源程序中,识别出各个具有独立意义的单词,即关键字、标识符、常数、运算符、界符。并依次输出各个单词的内部编码及单词符号自身值。(遇到错误时可显示“Error”,然后跳过错误部分继续显示)
1.对单词的构词规则有明确的定义;
2.编写的分析程序能够正确识别源程序中的单词符号;
3.识别出的单词以<种别码,值>的形式保存在符号表中,正确设计和维护符号表;
4.对于源程序中的词法错误,能够做出简单的错误处理,给出简单的错误提示,保证顺利完成整个源程序的词法分析;

三、设计与编码

1、用一个Symbol,一个Digit map映射存储变量和常数
2、input 接受输入串,,指针p指向当前读取的字符,character用来存储读入的一个字符 token就是已经读入的字符序列

相关文章
|
自然语言处理 C语言
编译原理实验-词法分析
编译原理实验C语言实现
115 0
|
自然语言处理 前端开发 算法
编译原理 (二)词法分析、语法分析、语义分析以及中间代码生成器的基本概念
编译原理 (二)词法分析、语法分析、语义分析以及中间代码生成器的基本概念
798 0
|
2月前
|
自然语言处理 编译器 C语言
软考:区分词法分析、语法分析、语义分析
本文解释了编译过程中的词法分析、语法分析和语义分析三个阶段的区别,并提供了相关练习题,帮助读者理解各阶段在编译过程中的作用和重要性。
74 4
|
6月前
|
自然语言处理 编译器 测试技术
详尽分享词法分析程序
详尽分享词法分析程序
30 2
|
6月前
|
自然语言处理 容器
S语言词法分析器设计
还有很多需要优化的地方,作为小白发出了也和大家一起交流下,这次我是分文件写的,因为考虑到以后的实验都用这一套代码,分文件写方便一点,用的是C++14标准
36 0
编译原理(六) 文法的分类
编译原理(六) 文法的分类
119 0
|
自然语言处理 C语言 C++
编译原理 实验二:词法分析器的手动实现(基于状态机的词法分析器)
编译原理 实验二:词法分析器的手动实现(基于状态机的词法分析器)
1089 0
编译原理 实验二:词法分析器的手动实现(基于状态机的词法分析器)
|
存储 自然语言处理 Unix
编译原理 实验一:词法分析器的自动实现(Lex词法分析)
编译原理 实验一:词法分析器的自动实现(Lex词法分析)
1068 0
编译原理 实验一:词法分析器的自动实现(Lex词法分析)
|
自然语言处理 编译器 网络安全
编译原理笔记2:词法分析基础与模式的形式化描述
词法分析,是词法分析器将源程序转化为线性记号流的过程。该过程中会对各种符号进行分类,比如将变量名换为标识符。 词法分析的含义: 规定词形成的规则,定义什么词是合法的; 根据规则识别输入的序列(词法分析),识别合法单词、指出非法的输入序列。
编译原理笔记2:词法分析基础与模式的形式化描述