编译技术综述

来源 :科学与财富 | 被引量 : 0次 | 上传用户:hsqcn
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文通过介绍编译技术的发展历史,进而引入编译系统,通过对编译系统的五大步骤的系统介绍,使读者初步认识什么是编译系统,以及编译系统各个步骤的主要功能。最后联系当前人工智能技术,分布式技术,多核技术对编译技术的影响,对未来的编译技术的发展进行展望。
  关键词:DFA,NFA,句柄,最左素短语
  一、编译技术发展历史
  在二十世纪五十年代,编译器的开发还是一件非常困难的事情。因为早期大多数的编译工作是人们手动将算术公式翻译为机器代码,当面对复杂的运算公式时,这项工作就变得十分繁琐。在这个时期,出现了许多高级编程语言,然而第一个Fortran编译器却经历了多年的开发才完成。到二十世纪年代末期,研究人员开始研究能够自动编译的工具。从二十世纪六十年代开始,人们开始使用自展技术来构造编译程序。
  近二十年来,随着计算机技术的迅猛发展,编译技术也有了长足进步,涌现出了多种优异的编译技术,如并行编译技术,交叉编译技术等等。与此同时,认人们也开发了多种自动生成工具,LEX用于生成词法分析程序,YACC用于生成语法分析程序等。
  二、编译系统
  我们使用高级编程语言边写程序,通常是将我们对业务逻辑的理解转化为程序代码。编译则是将我们编写的源程序通过转化,成为计算机能够运行的机器代码。编译过程主要分为以下五个阶段(如下图一)。
  (一)词法分析
  词法分析器工作的首要步骤是对输入的源程序进行预处理,即去除空白符,回车符等编辑性字符,此外还要去除程序中出现的注解。其次,通过超前搜索来对输入的单词符号进行识别。最后,构建非确定有限自动机(NFA),并对NFA进行确定化,使其转换为有限自动机(DFA)来识别字符串。
  (二)语法分析[1]
  语法分析是建立在词法分析的基础之上进行的,它根据文法的产生式来识别输入的字符串是否可以构成一个句子。下面会介绍两种语法分析的方法。
  自上而下分析法是基于文法进行的,以文法产生式的开始符号作为树根,自顶向下的构建一棵语法树。语法分析过程从本质上来讲,是一种试探性的分析过程,是一个不断使用不同的产生式来进行字符串匹配的过程。
  自底向上分析法分为算符优先分析法和规范分析法。它们均利用了计算机中的栈,用一个栈区来存储产生式中的符号,利用栈先进后出的特性,先把符号一个一个移进到栈中。当栈顶出现某一个产生式的候选式时,把栈顶的这一部分进行规约。其中规范规约首先利用产生式规则,对输入串构建一棵语法树,根据构建的语法树寻找句柄,并在符号栈内进行规约。算符优先分析同样需要根据产生式规则建立一棵语法树,并寻找最左素短语来进行规约,由于算符优先分析跳过了所有单非产生式对对应的规约步骤,由此可能会出现无法构成句子的输入串,误认为是一个句子的错误。
  (三)语义分析与中间代码生成[2]
  當词法分析和语法分析完成后,编译程序就要进行静态语义检查和翻译。所谓静态语义检查,即操作符的类型检查,对控制流语句使用的合法性进行检查,检查是否有对象被重复定义,以及相关名字检查。
  在编译过程中,我们还需要将源程序转化为中间语言,通常有后缀式、三地址代码以及DAG图三种方式。
  后缀式表示法,又被人们称之为逆波兰表达式。这一种表示方法,其主要作用是将表达式中的操作数写在表达式前面,将算符写在表达式的后面。
  图表示法包括两种表达方式,分别为DAG和抽象语法树。
  (四)优化
  优化的目的是为了提高代码效率,在优化时,对代码的变换需要遵守以下原则:
  1)等价原则。代码经优化过后不会影响代码最终的执行结果。
  2)有效原则。使代码优化后,尽可能的降低时间复杂度和空间复杂度,使减少代码运行时间,占用较小的内存
  3)合算原则。尽可能以较小代价取得较好的优化效果。
  代码优化通常使用这几种方法:
  1)删除公共子表达式
  假设一个表达式S被计算过一次,且在计算之后表达式S之中的变量值为发生改变,那么我们将S称之为公共子表达式。我们为了避免对这些公共表达式的重复计算,要将它们删除,也可以称为删除多余运算。
  2)复写传播[3]
  例如H1:=H2; Z:=X[H1];
  H2将值付给H1,Z=X[H1];引用了H1的值,我们可以将Z=X[H1];改为Z=X[H2];我们称这种变换方式为复写传播。
  3)删除无用代码
  对于进行复写传播的表达式中的变量以及一些临时变量,因为在整个程序中不会被再次使用,且这些变量的赋值对程序运行的最终结果没有影响。我们可以将其删除。
  4)代码外提
  对于程序之中的循环结构,若一些代码在循环中产生的结果是不改变的,我们可以将这一部分代码从循环内部提取出来,将它们放在该循环结构外面。
  5)强度削减
  将循环中的乘除法变为加减法,因为在计算机中,加减法的运算速度要比乘除法的运算速度快。
  6)删除归纳变量
  (五)目标代码生成
  该阶段利用经语义分析或者优化后的中间代码转化为目标代码。
  目标代码通常有以下三种形式:
  1)计算机可以立即执行的机器代码
  2)待装配的机器语言模块
  3)汇编语言代码。
  三、对未来编译技术的展望
  随着人工智能技术的崛起,将人工智能技术应用与编译技术,为大幅提升编译效率带来了希望。如今,双向长短期神经网络已经初步运用到了词法分析当中,使词法分析效率进一步提高。此外,就目前的分布式技术发展情况来看,并行编译技术已经使编译速度大大提高,近年来分布式技术的迅速发展发展,并行运算量将会再上一个台阶,这将极大推动并行编译技术的发展。从硬件发展的角度来看,随着多核技术的不断成熟,编译技术正逐步从单核编译技术向多核编译技术转变,从而提高编译执行的效率,我们相信随着未来技术的不断进步,编译技术必将迎来革命性的发展。
  参考文献:
  [1]陈火旺,钱家骅,孙永强。著,程序设计语言编译原理 [M]国防工业出版社,2017.3
  [2]Alfred V.Aho ,Monica S.Lam,Ravi Sethi,Jeffrey D.Ullman 著,机械工业出版社,2008.12
  [3]赵雄芳,白克明,易忠兴,张克强,编译原理例解析疑。长沙:湖南科技出版社,1991
其他文献
摘要:随着现代建筑工程施工技术的不断发展与改革,建筑行业的发展速度越来越快。机电安装工程在现代建筑施工中所占的位置较重,不仅会影响工程的最终质量,还会局限建筑基本功能的合理发挥。如果机电安装工程存在问题,会影响生活中电器的使用安全,并且还会存在较强的建筑安全隐患。因此,本文对机电安装工程的施工技术要点、施工常见问题及提高机电工程安装施工技术的主要措施进行了探讨。  关键词:机电工程;安装施工技术;
期刊
摘要:目前,对于电源技术而言,特别是电子电源技术,其是一门注重实践性的技术,很好的服务与各个行业之中。电子稳压电源和先前较为传统的稳压电源电路来进行对比分析,主要优势表现在电压稳定度高、操作方便之上。如今,电子式直流稳压电源则是电子技术之中最为常用的设备之一,大范围的运用在我们的日常生活、工作、科学研究以及其它各个领域之中。鉴于此,本文主要分析可调式直流稳压电源设计。  关键词:可调式;直流稳压电
期刊
摘要:变压器作为一个电能转换设备,是电力系统的特别重要的部分,被广泛应用于电力系统之中,因此,要准确监控其运行状态,对即将发生的故障进行预警。本文中,对500kv变压器故障诊断和检修技术进行研究,首先对变压器常见故障类型进行分析,然后就变压器故障诊断方法进行详细阐述,并在此基础上提出变压器检修策略,最后根据本文所提出的变压器检修策略进行实验分析。  关键词:变压器;故障诊断;检修策略  引言  变
期刊
摘要:随着我国社会的不断发展,对于基础设施的建设也在不断地增加。虽然我国的水利水电工程的起步和发展时间比较晚,但是在近几年中我国水利水电工程的发展十分迅速,我国对于水利水电工程的建设速度越来越快,施工的工艺水平不断地提升,水利水电工程的施工建设质量也不断地在提高。水利水电工程的工程质量和人民生活的稳定、社会经济的发展有着紧密的联系。因此,我们要加强对水利水电工程施工质量的重视。本文就是针对当前水利
期刊
摘要:为汽车行驶必不可少的安全部件,汽车灯具在汽车主动安全方面的作用至关重要。80年代后期伴随高亮度发光二级管技术的出现,LED在汽车外部照明的应用成为可能。LED可靠性强、使用寿命长、色纯度高、响应速度快、体积小便于设计等优点,使其在车外照明方面得到越来越普遍的應用。进入21世纪,LED车灯已经成为汽车潮流的新宠,被广泛应用于转向灯、制动灯等信号灯具上,并应用于前照灯。  关键词:LED技术;汽
期刊
摘要:在现今知识产权十分重要的现代社会,谁拥有先进的生产技术谁就擁有话语权,所以我国的制药行业要注重新药的研发、研制、生产工艺的创新。制药技术要结合现代数字化的新技术,以及制药的产品的开发创新是制药工业发展的重要方向。  关键词:制药工艺;创新技术;对策  引言  随着社会的不断发展和进步,制药工程也迎来了新的春天。创新制药技术是推进制药工程向前发展的一个重要的因素。作为制药工程,应该主动参与到技
期刊
摘要:针对海外河油田调剖技术效果下降的问题,开展了多轮次调剖技术研究。明确了多轮次调剖产量递减影响因素,提出相应对策;确定了经济调剖轮次;改进了海外河油田多轮次调剖技术方法,通过交替注入不同调剖剂及扩大处理半径,减少重叠面影响;以注采井组为单元,开展了对应调堵,实现调剖堵水一体化。  关键词:调剖;多轮次;影响因素;方法  1 前言  海外河油田为注水开发的砂岩稠油油藏,为抑制注水开发矛盾,控制含
期刊
摘要:差压铸造ZL201A合金底座铸件探伤时,发现部分铸件上平板面存在缩孔型Cu、Ti偏析。由于薄厚交替处最后凝固,补缩困难,Cu含量较高;Cu全部富集在缩孔处。通过工艺优化,合理设计浇注系统和使用冷铁,严格控制合金中Cu含量,可防止此类缺陷的产生。  主题词:ZL201A合金;缩孔;Cu偏析;形成机理  1 引言  ZL201A合金是Al-Cu-Mn系高强优质铸造铝合金,该合金在室温和高温下的力
期刊
摘要:电气监控机、炉、电一体化操作,有助于提高热电厂工作效率及现代化水平。本文着眼于目前我国热电厂的实际情况,总结出热电厂电气监控的对象及其特点,并对当前環境下的电气监控体系进行了深入分析,提出了电气监控机炉电一体化的方案,以期能够为我国热电厂电气监控工作提供帮助,提升热电厂竞争力,推动其发展。  关键词:热电厂;电气监控;机炉电一体化  前言:  热电厂既能发热又能提供电力,十分受我国能源市场欢
期刊
摘要:在数字电路的相关实验过程中,数字电路芯片的检测对于后期的试验结果有着直接的影响,而数字电路芯片检测系统的应用可以合理的判断芯片是否存在损坏情况。本文从供电部分、单片机、芯片检测口及人机交互四个部分入手,对数字电路芯片检测系统的结构组成展开论述,同时对数字电路芯片检测系统的实际应用进行深入分析,希望能为相关实验研究的开展提供建议,保证研究工作的顺利进行。  关键词:数字电路;芯片检测系统;人机
期刊