编译器设计难点

编译器设计难点

ID:37574186

大小:88.50 KB

页数:10页

时间:2019-05-25

编译器设计难点_第1页
编译器设计难点_第2页
编译器设计难点_第3页
编译器设计难点_第4页
编译器设计难点_第5页
资源描述:

《编译器设计难点》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、现代编译器的设计及其难点摘要:我们常用的计算机软件,都需要通过编译的方式,把使用高级计算机语言编写的代码(比如C代码)编译(compile)成计算机可以识别和执行的二进制代码。在现代计算机系统中,编译器的设计始终都是一个重点与难点。此文主要介绍了编译器的设计方法,交叉编译的诞生及其应用。关键词:代码、编译器、交叉编译。导论:首先谈谈编译器的主要功能及其设计步骤,然后对主机编译器进行研究,具体分析设计步骤,思考什么时候要用到交叉编译。回顾:编译器是将便于人编写,阅读,维护的高级计算机语言翻译为计算机能解读、运行的低级机器语言的程序。编译器将原始程序(Sourceprogram)作为输

2、入,翻译产生使用目标语言(Targetlanguage)的等价程序。编译程序完成从源程序到目标程序的翻译工作,是一个复杂的整体的过程。一个现代编译器的主要工作流程如下:源程序(sourcecode)→预处理器(preprocessor)→编译器(compiler)→汇编程序(assembler)→目标程序(objectcode)→连接器(链接器,Linker)→可执行程序(executables)。从概念上来讲,一个编译程序的整个工作过程是划分成阶段进行的,每个阶段将源程序的一种表示形式转换成另一种表示形式,各个阶段进行的操作在逻辑上是紧密连接在一起的。一般一个编译过程划分成词法分

3、析、语法分析、语义分析、中间代码生成,代码优化和目标代码生成六个阶段,这是一种典型的划分方法(如图1)。图1但有的目的平台上不允许或不能够安装我们所需要的编译器,而我们又需要这个编译器的某些特征;或者目标平台上的资源贫乏,无法运行我们所需要编译器,此时就需要用到交叉编译。什么是交叉编译呢,简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统(OperatingSystem)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说的x86

4、Linux平台实际上是Intelx86体系结构和Linuxforx86操作系统的统称;而x86WinNT平台实际上是Intelx86体系结构和WindowsNTforx86操作系统的简称。,例如:编译程序在宿主机A上运行,将应用程序的源程序生成目标机B的代码(如图2)。与主机编译相比,交叉编译受的限制更多,虽然在理论上我们可以做任何形式的交叉编译,但事实上,由于受到专利、版权、技术的限制,并不总是能够进行交叉编译,尤其是在业余条件下!举例来说,至今无法生成惠普公司专有的som格式的可执行文件,因此我们根本无法做目的平台为HPPA-HPUX的交叉编译。SOIOAB图2 要进行交叉编译

5、,需要在主机平台上安装对应的交叉编译工具链(crosscompilationtoolchain),然后用这个交叉编译工具链编译我们的源代码,最终生成可在目标平台上运行的代码。常见的交叉编译例子如下:  1、在WindowsPC上,利用ADS(ARM开发环境),使用armcc编译器,则可编译出针对ARMCPU的可执行代码。  2、在LinuxPC上,利用arm-linux-gcc编译器,可编译出针对LinuxARM平台的可执行代码。  3、在WindowsPC上,利用cygwin环境,运行arm-elf-gcc编译器,可编译出针对ARMCPU的可执行代码。理论分析:编译器各阶段的分组

6、前端:依赖于语言并很大程度上独立于目标机器。一般包括语法分析、词法分析、符号表的建立、语义分析、中间代码生成以及相关错误处理。后端:依赖于目标机器的阶段或某些阶段的某些部分。一般来说,后端完成的任务不依赖于源语言而只依赖于中间语言。主要包括代码优化、代码生成以及相关的错误处理和符号表操作。下面对编译器的各个阶段进行详细分析:一、词法分析词法分析又称扫描器(Scanner),是编译的第一个阶段,是语法分析的必要准备。词法分析器读入源程序,产生语言的基本词法单元,还完成和用户接口的一些任务词法分析的主要任务:对构成源程序的字符串从左到右的扫描,逐个字符地读入源程序字符并按照构词规则切分

7、成一个一个具有独立意义的单词。并确定其属性(如保留字、标识符、运算符、界限符和常量等)。再把它们转换成长度统一的标准形式—属性字(Token)。在这一阶段,我们主要要掌握从正规式到有限自动机的构造方法。Ø构造词法分析器的一般方法和步骤:<1>用正规式对模式进行描述;<2>为每个正规式构造一个NFA,它识别正规式所表示的正规集;<3>将构造出的NFA转换成等价的DFA,这一过程也被称为确定化;<4>优化DFA,使其状态数最少,这一过程也被称为最小化;<5>从优化后的DF

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。