网站首页  词典首页

请输入您要查询的论文:

 

标题 《编译原理》中LR(0)语法分析动态演示系统分析与设计
范文

    石凤贵

    

    

    

    摘要:《编译原理》课程是高校计算机专业一门核心专业课,培养学生熟悉编译程序的内部结构及原理,为从事软件开发奠定基础,从而提升软件人员的素质和能力。LR(0)分析是构造其他LR分析器的基础。该文介绍了LR(0)语法分析可视化动态演示系统的分析与设计。

    关键词:编译原理;LR(0);文法

    中图分类号:TP311

    文献标识码:A

    文章编号:1009-3044(2020)03-0083-02

    1 背景

    《编译原理》是高等学校计算机专业的一门必修课,理论性比较强,主要介绍程序设计语言翻译的原理、技术及实现。计算机只能识别0和1所构成的指令序列,高级计算机语言编写的程序不能直接在机器上运行,需要将源程序转换为等价的目标程序,这个转换过程就是编译。从源程序到目标程序转换的过程就是编译过程,过程比较复杂,需要划分为多个阶段将源程序由一种表现形式转换为另一种形式,每个阶段的操作在逻辑上是紧密相连的。编译过程分为六个阶段(如图1所示):

    2 LR(0)

    LR(0)是一种“移进一规约”自底向上的分析文法,当栈顶符号串形成句柄时就采取规约,因此这种分析方法的关键是如何确定句柄。LR(k)分析方法是1965年Knuth提出的,参数k表示向右查看输入串符号的个数。

    LR(0)分析器由总控程序、分析表或分析函数、分析栈3个部分组成,其工作过程如图2所示[1]。

    LR(0)分析实例:

    A.对文法G的产生式编号:

    (0)S-→E (4)A→d

    (1) E→Aa

    (5)B→Cb

    (2) E→Bb

    (6)B→d

    (3) A→Ca

    B.构造这个文法的LR(O)分析表(如表1)[2][3]:C.对字符串bccd#用LR(O)分析器进行分析(如表2):

    3 系统总体设计

    3.1 系统功能分析

    本系统完成了对编译原理相关知识的基本操作,采用人机交互界面,有一定的规范性,操作方便,比较直观。主要功能有:

    1)新建窗口,用于創建新的工程,也可打开演示工程。

    2)在主窗口(一个类似VC的界面)中,可以编辑文法和源文件,系统并根据格式标准检查输入文档是否有错,若出错则产生提示。

    3)生成对应文法的分析表和状态机,并可以对状态机进行显示类型的操作。

    4)利用对应文法的分析表对相应的源文件进行动态分析,在这里显示四个窗口——语法树、源文件、堆栈、分析表,还可以进行单步显示,这样利于观察其变化;还可以通过窗口操作对窗口进行“层叠”“平铺”等操作。

    3.2系统功能模块框图

    3.3系统总体流程图

    4 系统详细设计

    4.1 生成LR(O)状态机的程序流程图

    4.2 LR(O)分析过程程序流程图

    参考文献:

    [1]姜淑娟,张辰,刘兵.编译原理及实现[M].北京:清华大学出版社,2016.

    [2]康慕宁,林奕,编译原理[M].北京:人民邮电出版社,2010.

    [3]黄贤英,王柯柯,曹琼,编译原理及实践教程[M].北京:清华大学出版社,2019.

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/6 4:06:29