南京工业大学 编译原理实验 词法分析 南京工业大学 编译原理实验 基于C#的词法分析程序
1
设计、编制、调试一个词法分析程序,加深对词法分析原理的理解。 通过对PL0词法分析程序的分析,编制出一个词法分析程序。此程序应具有如下功能: (1)输入为PL0源程序,输出为由(单词自身值、单词类别值)组成的二元组。 (2)有一定的出错处理能力。
1
以开始定义的C语言子集的源程序作为词法分析程序的输入数据。在词法分析中,自文件头开始扫描源程序字符,一旦发现符合“单词”定义的源程序字符串时,将它翻译成固定长度的单词内部表示,并查填适当的信息表。经过词法分析后,源程序字符串(源程序的外部表示)被翻译成具有等长信息的单词串(源程序的内部表示),并产生两个表格:常数表和标识符表,它们分别包含了源程序中的所有常数和所有标识符。 0.定义部分:定义常量、变量、数据结构。 1.初始化:从文件将源程序全部输入到字符缓冲区中。 2.取单词前:去掉多余空白。 3.取单词后:去掉多余空白。 4.取单词:利用实验一的成果读出单词的每一个字符,组成单词,分析类型。
2022-11-04 21:00:11 186KB 编译原理
1
北京邮电大学编译原理课的词法分析和语法分析,都包含代码和说明文档
1
使用java编程实现简单的词法分析器,该词法分析器要求如下 (一)、该个词法分析器要求至少能够识别以下几类单词: a. 关键字:else if int return void while共6个,所有的关键字都是保留字,并且必须是小写; b. 标识符:识别与C语言词法规定相一致的标识符,通过下列正则表达式定义:ID = letter (letter | digit)*; c. 常数:NUM = digit digit*(.digit digit* |ε)(e(+ | - |ε) digit digit* |ε),letter = a|..|z|A|..|Z|,digit = 0|..|9,包括整数,如123等;小数,如123.45等;科学计数法表示的常数,如1.23e3,2.3e-9等; d. 专用符号:+ - * / < <= > >= == != = ; , ( ) [ ] { } /* */; (二)、分析器的输入为由上述几类单词构成的程序,输出为该段程序的机内表示形式,即关键字、运算符、界限符变为其对应的机内符,常数使用二进制形式,标识符使用相应的标识符表指针表示。 (三)、词法分析器应当能够指出源程序中的词法错误,如不可识别的符号、错误的词法等。
2022-09-26 22:35:24 9KB java编程词法分析器 编译原理
1
一. 实验内容 功能: 1.C++源代码扫描程序识别C++记号。C++语言包含了几种类型的记号:标识符,关键字,数(包括整数、浮点数),字符串、注释、特殊符号(分界符)和运算符号等。 2.打开一个C++源文件,打印出所有以上的记号。 3.* 选作部分:为了提高C++源程序的可读性,C++程序在书写过程中加入了空行、空格、缩进、注释等。假设你想牺牲可读性,以节省磁盘空间,那么你可以存贮一个删除了所有不必要空格和注释的C++源程序的压缩文本。因此,程序中还应该有这样的压缩功能。 4.* 选作部分:进一步思考或实现——如何进一步实现减小源文件大小的压缩功能。 5.应该书写完善的软件文档。
1
编译原理:第4章 词法分析(1、2、3).ppt
2022-07-14 17:14:49 698KB 编译原理
编译原理:第4章 词法分析(1、2、3节).ppt
2022-07-14 17:14:48 622KB 编译原理
词法分析器,用于输入表达式后输出单个独立的数据项-lexical analyzer for the importation of expression output of a single independent data item
2022-07-09 09:08:51 10KB 词法分析器
编译原理课件:Chapter-3 词法分析.ppt
2022-07-07 09:11:11 1.16MB 编译原理