浅谈编译技术在软件开发中的地位

来源 :电脑迷·中旬刊 | 被引量 : 0次 | 上传用户:nayinian2688
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:编译技术在计算机软件工程开发中的有不可代替的地位,它不光是一种语言生命的开始,还伴随着该语言功能的逐渐壮大。基于语言的软件设计想要更加完美,离不开编译技术。本文从编译技术的背景及软件工程开发的现状开始介绍,讲解了程序设计语言的基本编译过程,列举了基于编译技术的程序可视化,及编译技术在排版上的应用。
  关键词: 编译技术;软件工程开发;编译过程;程序可视化;排版;未来编译
  1 前言
  近些年来,计算机软件行业在我国飞速发展,日益壮大。各种高级语言(如C,C++,Java,PHP,Python语言等)的队伍在软件业中迅速扩大,但多数软件工程开发程序员把大量的时间用在编程上面,进而忽略了一些计算机基础知识对软件工程的重要影响。本文对编译技术及其某些应用进行一个概括,以体现编译技术在软件工程开发中占据极其重要的地位,希望更多的软件爱好者和软件相关从业者能够重视编译技术,对未来的编译技术做出坚实有力的伟大贡献。
  2 编译技术及软件开发
  2.1编译技术的背景
  很早之前人们构造的几乎所有的编译程序都是用机器语言或者是汇编语言来实现,但低级语言编写的程序有着复杂难懂,易出错,不易移植,可维护性和可扩充性差,编写效率低等问题。为解决此问题,和充分发挥硬件系统的效率,高级语言编译程序应运而生,不过它的核心仍离不开机器语言或者是汇编语言。编译技术,简单地说就是将高级语言代码翻译成逻辑上等价的计算机可以运行的二进制机器语言代码的技术。
  2.2软件工程开发的现状
  我国软件工程的发展迅速,市场对软件工程的人才的需求量随着计算机的普及不断地增加,但是我国常用的主流软件开发的工具都是由国外研发的,相比我国的软件技术比较落后。这就对我国软件工程开发技术人员有了更高的要求。
  2.3编译程序的开发过程
  编译程序的工作过程一般分为五个阶段,词法分析、语法分析、语义分析与中间代码的产生、优化、目标代码生成。
  1.词法分析:输入源程序,通过有限自动机的状态转换矩阵,对构成语言源程序的字符串进行识别和分解,得到一个个单词字符。
  2.语法分析:需要和词法分析搭配进行,根据语言的语法描述规则,通过自上而下或自下而上的分析方法,识别出各类语法单位。
  3.语义分析及中间代码的产生:对语法分析识别出的各类语法范畴,进行静态语义检查和翻译,生成中间代码。
  4.优化:遵循等价、有效、合算三原则对中间代码进行变换,优化可以在编译过程的各个阶段,最重要的一次是在产生目标代码之前。
  5.目标代码的生成:依赖于操作系统和目标语言把经过优化的中间代码变换成特定机器上的低级语言代码。
  3 编译技术在某些方面上的运用
  3.1词法分析器和语法分析器的开发工具
  基于编译技术的应用自然离不开词法分析器和语法分析器,在此就介绍一下词法分析器的生成工具LEX和语法分析器的生成工具YACC。一个LEX程序由一组正规式以及与每个正规式相应的一个“动作”组成。“动作”就是一段小程序,它代表当LEX程序按该正规式识别出一个单词符号时应该执行的命令。LEX程序就是用来识别和生成单词符号的。YACC通过输入用户提供的语言语法描述,基于LALR语法分析的原理,产生一个能够分析该语言语法的语法分析器。在结构化输入程序中,编译程序首先要识别出每个单词符号还要知道每一个语句的含义,但在调用过程中并不是LEX将所有单词符号都识别并传给YACC,而是当YACC的语法结构需要下一个单词符号时,就会调用LEX,因此需要反复调用这两个工具。
  3.2程序可视化
  程序的可视化即随时都可以看到结果程序与结果同步,这里的可视指的是无需编程,只需要通过直观的操作可以完成的界面设计。实现一个可视化工具,根据可视化特征,利用LEX生成C语言词法分析器和YACC生成C语言插装语法分析器。为了使词法分析器分离出的是一些有意义的标记串,需要两个缓冲容纳标记串,一个缓冲ECHOTOKEN用于容纳原始标记,另一个缓冲QUOTETOKEN用于容纳那些在某些情况下需要标记前面加转义字符而转换了的标记。除此之外,还要采用文件指针记住标记读取以前的位置,当插装语法分析器读到标记串之后,在文件指针记住的位置插装代码。
  3.3排版
  简单排版,实现一个只能按某一种特定的“排版规则”进行排版的工具,可以利用已有的LEX和YACC工具的编译技术。利用词法分析器把输入的该语言源程序分解成单词序列,语法分析与词法分析部分思想一样,语义分析对源程序进行类型检查、填表、计算,再按一定的“排版规则”对输入单词符号进行排版输出。
  3.4其他方面的应用
  由上述的应用可以看出只要能够用文法来描述一门语言的词法规则和语法规则,就可以通过编译技术来设计这门语言应用到不同的领域中。编译技術除了用于程序可视化和简单排版上,还可用于设计信息检索系统,文本编辑器,模式识别器等。
  4 结束语
  以往的编译器,程序员花费了很多时间在程序的界面设计上,而实现程序的核心算法时间不足,导致设计出来的软件功能上不够好,整个程序的设计效率也不高。设想未来编译技术能够使程序员通过一些简单操作来构思、布局、设计软件的功能等,不需要花大量的时间在如何用代码实现,和维护等方面。如此,未来对软件开发从业者注重的不再是编程能力,而是创新、设计、构造等方面的能力。这会使更多敢想敢做的人涌进软件工程开发的激流中,推进软件行业的发展。
  参考文献:
  [1]陈火旺等.程序设计语言编译原理(第三版)[M].北京市:国防工业出版社.1980.
  [2]张墉.浅析软件工程开发的现状及发展[J].商情.2017(07).
  [3]但静培等.基于编译技术的程序可视化[J].计算机应用研究.2002(10).
  [4]蔡苗苗.编译技术在排版的应用[J].现代计算机.2003(175):93-96.
  作者简介:孙杰凡(1997—)女,汉族,河南郑州人,河南大学软件学院,2015级本科生,软件工程专业。
其他文献
自94分税制改革后,土地出让收入(即土地出让金)成为地方财政的重要来源之一,享有着“第二财政”之称。不可否认,土地的有偿使用能使土地价格更好的反映土地这一生产要素的供需关系
学位
该文从挂篮荷载计算、施工流程、支座及临时固结施工、挂篮安装及试验、合拢段施工、模板制作安装、钢筋安装、混凝土的浇筑及养生、测量监控等方面人手,介绍了S226海滨大桥
爱立信于九月中旬在中国市场推出色彩丰富的“百变机壳王”A2618sc手机。A2618scGSM900/1800双频手机能够以多种方式展示用户的个性:rn时尚机壳随意搭配:通过全新可更换前后机壳
本文介绍了单片机通过电话网与上位计算机进行通信,并利用无线Moden芯片实现室内无线数据传输的方案.该方案使用大规模集成电路,简单灵活,传输可靠,可满足远距离监控和数据采
2005年7月21日起,中国开始实行以市场供求为基础、参考一篮子货币进行调节、有管理的浮动汇率制度。在经济全球化的今天,尤其是在日益开放的中国,汇率作为经济中的重要变量,
学位
当前区域经济一体化发展迅速,面对TPP的顺利签署和BIT的快速推进,外部的区域经济合作给我国带来了极大的挑战。面对此形势,我国立足周边,推动与他国建立自由贸易区协定,加快构建自
德国作为当今公认的经济和工业大国,完全得益于其开展的"双元制"人才培养模式.这种模式是以企业为主导,配合职业学校的管理和教学,进而达到其提出的"工业4.0"要求.本文就德国"双元制"的内涵及其得以成功发展的根本给予了阐述,并在此基础上给出了中德双方的培养模式介绍,最后结合中国的校企合作情况进行了对比和思考,进而对中国职业教育的人才培养做出一定启示.
1大豆蚜虫和红蜘蛛的发生情况1.1发生面积全镇总耕地面积12 333hm~2,2004年,大豆种植面积8 933hm~2,占全镇总耕地面积的72.4%。2004年,8 933hm~2大豆田中都有大豆蚜虫不同程
知识经济时代,创新能力与经济增长之间的关系更加密切,提升国家创新能力成为很多经济体的主要课题。由于扩大研发投入被普遍视作提升创新能力的有效工具,很多后发国家看到了通过
近年来,随着世界金融一体化进程的不断加快以及我国加入WTO以后金融领域的逐步开放,我国商业银行越来越重视多元化经营和发展,不断加大非利息收入业务的开拓力度,非利息收入