文档详情

基于Lex和Yacc的C_Minus编译器.pdf

发布:2017-06-01约1.15万字共5页下载文档
文本预览下载声明
2011年第5期 中图分类号:TP313文献标识码:A 文章编号:1009-2552(2011)05-0122—03 臧秀娟,刘维亭 (江苏科技大学电子信息学院,镇江212003) 摘要:基于Windows环境下的Lex和Yacc集成环境Parser 语言子集)语言为源语言的编译器。主要从编译技术的角度对C—Minus语言的词法分析、语法 分析、符号表的建立以及目标代码生成的过程进行详细的阐述。 Generator 关键词:C—Minus编译器;YACC;LEX;目标代码;Parser Lex C—Minus basedon andYacc compiler ZANG Xiu-juan.LIUWei.ting and Information,JmgmUniversity荫Science (Sch砌0f日印咖岫岱and onParser WindowsofLexandYacc Abstract:Based Generator,thesystem integrationenvironment, the is used subsetofC source completedC—Minus(a language)language鹊thelanguage.This compiler article focusesonthe lexical and C—.Minus mainly languageanalysisgrammaticalanalysis,thesymbol tableand ofcode inthis fromthe ofthe target generationprocess perspectivecompilationtechnique. Generator wordb:C—Minus code;Parser Key compiler;YACC;LEX;object 0 引言 精度型等,支持二维数组,不支持指针,支持全局变 编译程序是计算机系统软件的重要组成部分, 量和局部变量;支持负数及负数运算;支持算术运 其基本原理和实现技术也适应于一般软件的设计和 算、关系运算和逻辑运算;支持C语言的大部分语 实现,而且在软件工程、软件自动化、程序分析等领 句;支持通用函数和系统函数等。 域有着广泛的应用。通常把编译程序视为高级语言 C—Minus语言的编译模型可如下设计: 到机器语言的转换程序,这种转换不是结构上的变 控制区:存储配置信息 换,而是基于语言语义的等价变换,因此编译程序设 程序区:存储指令代码 计的难度和复杂性是极高的【lJ。在自动化软件编 数据区:存储常量等,变量配置等 程领域中涉及较多的高级语言为C语言、C++语言堆栈区:作为程序内部的
显示全部
相似文档