【VB开源代码栏目提醒】:网学会员鉴于大家对VB开源代码十分关注,论文会员在此为大家搜集整理了“mcs51单片机汇编语言程序ide设计与实现 - 计算机教材”一文,供大家参考学习
单位
代码10476学号0408180004分类号TP314河南衙瓢大孳硕士学位
论文MCS.51单片机汇编语言程序IDE设计与实现学科、专业研究方向申请学位类别申请人指导教师:计算机软件与理论:嵌入式系统及应用:工学硕士:闰娟:毋茂盛教授二oo七年六月摘要〕DE即集成开发环境(IntegratedDevelopmentEnvironment)是进行软件开发必不可少的工具软件,一个方便、成熟、稳定、功能强大的IDE,可显著地提高开发效率.本文主要研究了如何设计与实现一个基于VC_卜}的MCS.51单片机汇编语言程序的DE系统。
该系统在WINDOWS环境下运行,通过编译器的两遍扫描实现对MCS.51汇编语言的编译,生成写入单片机的IntclHcx格式的目标文件,并为用户提供源码与目标码对照的列表文件(??.1st文件)以及编译过程中出现的错误反馈信息。
IDE中的编译模块按照词法分析、语法分析、语义分析、目标
代码生成等几个阶段进行,符号表的管理和出错处理贯穿编译工作的各个阶段,编译过程中源程序的各种信息被保留在各种不同的表格里。
由于该系统具有程序下载功能,要用到串口通信,因此本文还介绍了串行通信的基本原理、RS--232的定义以及串行通信的
常用连接方式,然后对W’mdows的通信机制进行了讨论。
在此基础上,对串行通信的W’mdows编程方法做了详细的探讨。
该软件系统将文件操作、参数设置、编辑、编译、
代码下载、实验演示、帮助信息(源程序、指令表等)等功能集成在统一的开发环境中,功能齐全,界面友好;在计算机上调试好的程序既可以通过编程器写入单片机中,也可以直接通过计算机的串口下载到实验仪上,使用方便灵活,特别适合于MCS.51单片机的实验教学。
本系统已通过河南省科技厅组织的会议鉴定,达国内领先水平。
关键词:单片机,汇编语言,IDE,编译器,串行
通信AbstractIntegratedDevelopmentEnvironment(1DE),playsaveryimportantroleinSoftwaredevelopingprocedure.Withamaua鸭stable,powerful,andconvenientIDEsoftware,wewillbemoreefficientinwork.Thisthesisres%rcheshowtodesignandrealizetheIDEofMCS-51assemblylanguagebasedontheVC++language.ThisIDEsystemcarriesoutundertheWINDOWSenvironment,throughtwosca31n岖thecompilerrealizesthetranslationofMCS-51assemblylanguage.Thesystemproduc髓theIntelHexfileandthe+.IsttabulateswhichprovidesthecomparisonoftheSOIfi’CA:codeandgoalcode幻theus瓯aswellasappearingwrongfeedbackinformation.Thecompilerpl’oc≈s¥accordingtothelexicalanalysis,thegrammaranalysis,the¥昀脚dcanalysis,thegoalcodeproductionandsoOnseveralstagescarrieson.Thesymboltablemanagementandmistakeprocessingpass4t∞ougheachstageofthetranslationwork..InthetranslationpI口∞鹊eachkindofinformationofsom’ceprogramisretainedinallsortsofdifferentforms??Thistextalsointrodttu镕basicmodebecausetheIDEhasthefunctionofdownloadingthecode.Itinu’oducesthedefinitionofRS-232andserialcommunicationdailyconnectionwayofserialcommunication,thendiscussescommunicationmechanisminWindows,onthisbasis.makesdetaileddescriptionofsorialW’mdowsprogrammingmethylofserialcommunication.ThisIDESoftsystemintegramsthedocumentoption,pemamcter∞tt:-m岛editor,compiler,codedownloading,experimentdemonstration,helpinformationandso011.Ithasafriendlyinterface.Besides,theobjectcodecanalsobedirectlydownloadtolheSCMbyserialportwithouttheprogrammer.ItisquiteusefulinMCU’sexperimentteaching.Ithasgettheidentificationoftbescienceandtechnologydepar衄entofHenanprovince,andkeepsaheadofthenationallevel.Keywortle:MCU,Assemblylanguage,IDE,Compiler,SerialcommunicationⅡ独创性声明本人郑重声明:所呈交的学位
论文是我个人在导师指导下进行的研究工作及取得的研究成果。
尽我所知,除了文中特别加以标注和致谢的地方外,
论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得河南师范大学或其他教育机构的学位或证书所使用过的材料。
与我一同工作的同志对本研究所做的任何贡献均已在
论文中作了明确的说明并表示了谢意。
签名:f主I必日期:趟1,≤,f2关于
论文使用授权的说明本人完全了解河南师范大学有关保留、使用学位
论文的规定,即:有权保留并向国家有关部门或机构送交
论文的复印件和磁盘,允许
论文被查阅和借阅。
本人授权河南师范大学可以将学位
论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位
论文。
(保密的学位
论文在解密后适用本授权书)引言引言“工欲善其事,必先利其器”,精良的工具装备,是搞研发成功的基本条件。
单片机IDE(集成开发环境)是开发单片机应用系统必不可少的工具。
目前,单片机IDE主要由世界几个大的软件公司开发,如德国的Koil、荷兰的Tasking,美国的Franklin,台湾的IAR等等。
其中Keil的产品pVision2和Tasking的产品EDE品质尤为出众,知名度颇耐n。
研究它们的设计原理和各自的优缺点,开发适合自己的IDE,成为摆在国内计算机界面前的一个迫切任务。
在本文中,笔者用VcH来开发实现了MCS一5l单片机汇编语言程序的集成开发环境。
首先,该系统将编辑、编译源程序和程序下载、帮助信息(源程序、指令表等)都集成在统一的开发环境中,功能齐全,界面友好;其次,该系统还提供了24个不同的硬件综合性或设计性实验
演示。
此外,该系统实现了
代码下载功能,在计算机上调试好的程序可以脱离编程器,直接通过计算机的USB或串口下载到单片机实验设备上,实验方便灵活。
其设计主要有以下几个部分:文件操作设计;编辑器的设计;编译器的设计;参数设置设计;用户登录模块设计;帮助文件模块设计;
代码下载功能的设计。
其中文件操作实现对文件的读、写、打印、关闭和保存等功能。
编辑器实现对源文件的编辑,如查找、剪切、复制等功能。
帮助文件显示单片机相关概念、指令附录、指导手册和每个实验的具体信息等。
编译器可实现对MCS.51汇编语言的编译功能,其主要目标是将单片机汇编语言源程序文件翻译成写入单片机的IntelttEX文件和为用户提供源码与目标码的对照的列表(1ist)文件。
整个编译过程按照词法分析、语法分析、语义分析、目标
代码生成等几个阶段进行,通过两遍扫描实现对MCS一51汇编语言的翻译,并生成写入单片机的目标文件、为用户提供源码与目标码对照的
列表文件的信息以及编译过程中出现的错误反馈信息伫】。
代码下载功能实现将生成的目标
代码(IntelHex格式)通过串口直接下载到单片机的功能,从而省去了以往必须要使用编程器才能下载的烦琐步骤及相关实验设备。
本课题隶属于河南省科技攻关项目I面向应用的Es教学实验系统研制’(项目编号t0524220074)l第一章绪论第一章绪论1.1选题依据与意义嵌入式技术在计算机、电子,通信、控制等学科或专业中具有极为重要的地位,对我国的
经济发展和国防建设有非常重大的影响。
中国有世界上最大的家用电子产品消费市场,同时,对于现代化的医疗、测控仪器和机电产品也需要有专用的嵌入式系统软件的支持。
各种各样的嵌入式设备已经应用到生活的各个方面,包括PDA、机顶盒、移动终端、工业控制设备等等。
这些需求都极大地刺激了嵌入式系统的发展和产业化的进程【3】。
2l世纪之初的十年被人们称为是“后PC时代”,嵌入式系统无处不在。
为了促进嵌入式技术在我国的发展,中国计算机学会微机专业委员会从2000年以来,每年都要举办一次全国性的“嵌入式系统技术与应用研讨会”。
我国嵌入式技术的发展在很大程度上取决于学校的教学。
为了进一步做好嵌入式系统的教学工作,2003年10月由清华大学、北京航空航天大学、‘单片机与嵌入式系统应用》杂志社、《电子产品世界》杂志社以及多家中、外著名公司联合在北京召开了主题为“
学习嵌入式、研究嵌入式、使用嵌入式”的首届高校嵌入式系统教学研讨会。
中国科学院院士沈绪榜、许居衍、中国微机单片机学会理事长陈章龙等出席了会议。
清华大学鄂贝贝教授、北京航空航天大学何立民教授等分别作了“嵌入式教学体系探讨”以及“嵌入式系统教学研究”等重要
报告,出席会议的其它高校院、系领导、教学主任、实验中心主任、一线教师、实验教师等在会上共同研讨了嵌入式教学体系发展与改革方案。
与会者普遍认为目前所使用的单片机教学实验系统大多是九十年代初研制的,已远远落后于嵌入式技术现在的发展水平。
对于MCU(Mica’oControllerUnit即微控制器)系统,许多新的有很高实用价值的技术,如CAN总线、USB接口、RS485、12C、SPI以及与Intemet接口技术等都被排斥在实验内容之外,因此,尽快开发新一代面向应用的单片机教学实验系统变得非常迫切和重要。
河南省科技攻关项目‘面向应用的ES教学实验系统研制》(项冒编号:0524220074)就是一个针对目前教学实验系统的现状,开发和研究新一代教学实验系统的项目。
本课题实现了该项目中的软件编制。
本文将用Vc十卜6.0开发单片机汇编2第一章绪论语言程序的IDE。
IDE即集成开发环境(Inte掣’ate.dDevelopmentEnvkonment),IDE软件是进行软件开发必不可少的工具软件。
不仅仅是普通PC机软件开发有此需求,在进行嵌入式软件的开发过程中,如果有一个方便、成熟、稳定、功能强大的IDE,能更加显著她提高开发效率14】。
本文主要介绍了在探索嵌入式系统软件IDE开发技术的过程中,如何设计与实现一个基于vc.H的McS巧1单片机汇编语言的IDE。
本系统在Ivies.51单片机上实现了
代码下载功能,在计算机上调试好的程序既可以通过编程器写入单片机或EPROM中,也可以直接通过
计算机的串口下载到应用系统中。
系统运行时,程序可存放在单片机内部,也可存放在单片机外部的EPROM或Flash存储器中,非常方便灵活。
1.2国内外研究现状学习单片机汇编语言理应有一个好的集成式的程序开发系统,其界面直观且能提高效率,可使初学者和程序员省去频繁输入命令的麻烦。
单片机DE(集成开发环境)是开发单片机应用系统必不可少的工具之一。
目前,单片机IDE主要由世界几大专门面向嵌入式系统的软件公司提供;德国的Keil、荷兰的Tasking,美国的Franklin,台湾的IAR等等。
其中Kcil的产品jtVision2和Tasking的产品EDE品质尤为出众,知名度颇高。
研究它们的设计原理和各自的优缺点,开发适合自己的IDE,成为摆在国内计算机界面前的一个迫切任务.虽然目前市场上有许多MCS.5l汇编语言编译器,就其编辑、编译、连接、调试、运行等主要功能来说,大家虽然都已基本实现了,但也有不足之处,比如说有的
系统不能实现文件下载,有的费时费力不够直观且极易出错等,这些都在一定程度上为初学者带来了不便。
而且,目前对汇编语言编译器的开发大多采用Turboc、VB语畜等,但是随ⅥsualC++的广泛应用,其强大的功能、便捷性和直观性日益体现出来,其“可视”的资源编辑器与MFC类以及应用程序向导,为快速高效地开发出功能强大的W’mdowsb盘用程序提供了极大的方便嘲。
同时,在编译器的整体设计中要利用串口进行数据通讯。
而在串口通信的各神开发工具中间,VC由于其功能的强大和灵活,同时也得到了Microsoft的最大支持,利用RS-232进行数据信号的采集和传递也成为VC编程的一大热点〔61。
所以一般在涉及硬件操作的通讯编程中,大都推荐使用VC作为第一章绪论开发工具。
鉴于此,本文将用VC¨6.O来面向应用的单片机教学实验系统中的MCS.51单片机汇编语言IDE,此DE不仅应具有编辑、编译功能,而且还将具备专门为ES教学实验系统研制的能将编译过的汇编程序(即IntelHox格式)通过串口直接下载到单片机的功能。
这样一来,不但使编写程序变的更加便捷、直观,同时也省去了以往必须要使用编程器才能使程序下载到单片机的繁琐步骤及相关实验设备。
1.3
论文内容第一章主要介绍选题依据与意义、国内外研究现状、研究方法等;第二章主要探讨了一些理论基础和相关概念,如单片机的相关理论知识,一般〔DE的主要功能、开发环节,还有对编译器的相关概念、理论知识的介绍,同时对HEX文件的格式做了简单介绍等;第三章主要研究了该软件系统的具体
设计,首先介绍了对编程工具VCH哂.0的选择和其特点,以及编辑器的界面设计和具体实现的步骤,研究了编译器设计模块中的词法分析、语法分析和符号表管理等具体模块的设计,然后介绍了串口通信的基本概念、W’mdows串口通信API函数以及串口通信的设计实现过程和一些人性化设计,如用户登录模块、实验演示模块和帮助文件模块,最后简单介绍了该系统的使用方法;第四章主要介绍了该系统在高校单片机实践教学中的应用;第五章给出了作者的结论和建议。
4第二章MCS.51单片机汇编语言程序IDE的设计第二章MCS.5l单片机汇编语言程序〕DE的设计2.1单片机概述单片机又称微控制器,在工业控制中占据很重要的地位,目前8位单片机仍占有单片机市场60%以上的份额。
MCS一51系列单片机属于8位单片机,具有很强的功能,适用范围广,既可构成功能很强的复杂系统,也可组成较简单的应用系统用。
单片机靠写入存储器中的机器语言程序的执行来实现对各种系统的控制。
随着微电子工艺水平的提高,近二十余年来单片微型计算机有了飞跃的发展。
世界上著名的集成电路制造商纷纷推出各自的产品,单片机型号之多,已达到难以统计的地步。
以著名的芯片制造业巨头——血tcl公司为例,早期推出的MCS-48系列单片机是一种功能简单、寻址范围很有限的低性能8位单片机,这类单片机早已被稍后推出的MCS.51系列8位单片机所取代。
在MCS.51系列单片杌的内核8051/80C51的基础上,ATMEL公司、Philips公司、Siemens公司等很多大公司,纷纷推出了名目繁多的派生芯片。
这类单片机是目前世界上应用最广的一类单片机。
它的繁衍发展之路也是其它系列单片机发展的共同道路嘲。
归纳起来,它沿两条路发展;①改进集成电路制造工艺,提高芯片的工作速度,降低工作电压和降低功耗。
早期的8051的最高振荡器频率为12MHz,一个机器周期为11.ts。
Intel80C51ZX的一个机器周期仅为l/6J∞。
早期的8051的正常
工作电压都是5V,而Philips公司的80cL5l/80cL410可工作于1.8V的低电压。
80CL5l/80cL4lO是全静态设计的,当芯片采用外部时钟时,可工作于直流状态,即可把外部时钟完全关掉仍能够保持住芯片内部状态;当时钟重新加上时,芯片将继续正常工作。
当外部对钟停止时,芯片的消耗电流只有l“A。
②在保留共同的CPU体系结构、最基本的外设装置(如异步串行口、定时器等)和一套公用的指令系统的基础上,根据不同的应用领域,把不同的外设装置集成到芯片内,在同一家族内衍生出各种型号的单片机。
Intel公司在805l/80C51的基础上,已衍生出lO种共50多个型号的芯片;Phinps公司在80C51的基础上衍生出20多种近50个型号的单片机。
第二章MCS.51单片机汇编语言程序IDE的设计2.2MCS.5l单片机指令系统及其指令格式概述MCS一51单片机指令系统具有功能强、指令短、执行快等特点,共有111条指令和8条伪指令。
从功能上可划分成数据传送,算术操作、逻辑操作、程序转移位操作等五大类;从空问属性上分为单字节指令(49条)、双字节指令(46条)和最长的三字节指令(只有16条)。
从时间属性上可分成单机器周期指令(64条)、双机器周期指令(45条)和只有乘、除法两条4个机器周期的指令。
可见,MCS.51单片机指令系统在存储空间和执行时间方面具有较高的效率.指令系统中的指令描述了不同的操作,不同操作对应不同的指令。
但结构上,每条指令通常由操作码和操作数两部分组成。
操作码表示计算机执行该指令将进行何种操作,操作数表示参加操作的数的本身或操作数所在的地址。
MCS-51单片机的指令有无操作数、单操作数、双操作数三种情况。
汇编语言指令有如下的格式:【标号:】操作码助记符【目的操作数】【,源操作数】【.注释】伪指令不要求计算机做任何操作,也没有对应的机器码,不产生目标程序,不影响程序的执行,仅仅是能够帮助进行汇编的一些指令。
它主要用来指定程序或数据的起始位置,给出一些连续存放数据的地址或为中间运算结果保留一部分存储空间以及表示源程序结束等等。
不同版本的汇编语言,伪指令的符号和含义可能有所不同,但基本用法是相似的网.如表2.1所示;袭2-1伪指令表序号名称说明lORG汇编起始指令2DB定义字节指令3BW定义字指令4DS定义空间指令5EQU等值指令6BIT位地址符号命令7咖汇编结束指令8DATA数据地址赋值命令6第二章MCS.51单片机汇编语言程序IDE的设计2.3集成开发环境概述IDE的全称是IntegratedDevelopmentEnvironment,直译为集成开发环境,它包括编辑、编译、调试等功能。
2.3.1IDE的主要功能通过对于上述IDE软件的分析,以及其他成熟的比如VisualStudio等软件的分析,可以看出,一个理想中的IDE软件应带有下面的功能。
(1)
代码编辑。
使用IDE的过程中,用户60%的时间都是在进行
代码编辑.理想的IDE应该尽量在
代码编辑中提供对用户的帮助,改进开发效率。
具体的手段包括提高程序的可读性(改善显示效果)、简化用户的输入动作(如
代码自动生成)、方便用户对
程序的阅读(函数列表、交叉索引等)。
(2)Project管理及编译控制(此处不是指一般意义上的项目管理,而是一个软件包的编译选项等等)。
在使用IDE编辑软件的时候,有些软件引入了项目(Project)的概念。
例如VisualStudio就有专门的项目文件来记录当前软件的路径、编译信息、文件信息、类信息等掣1们。
也有不少Linux下面的〔DE并没有专门引入Project的概念,它们认为使用GNU的Makefile系统就可以很方便的实现软件的项目管理和编译控制,再加_J:Automake和Auteconf昝生成Makeffie的辅助程序,在编译软件的过程中不需要其他额外信息了.本文也未引入Projm管理,着重研究编译控制。
(3)平台管理(一般IDE没有,嵌入式需要针对不同开发板及环境预设一些基本的Profile,方便用户选择使用)。
针对嵌入式开发环境的目标平台多样性的特点,可以引入平台信息管理功能。
针对每个CPU体系、Processor的型号、开发板的名称,将所有的平台信息分类记录在平台信息管理模块中。
用户使用一个新的开发平台的过程中,就可以选取相应的配置文件,比较简单地获得他人已经在本平台下成功使用过的开发环境、操作系统等。
这样就能辅助开发人员很快地进入最终应用开发的阶段。
(4)软件调试。
IDE的调试功能是不可或缺的。
早期的TurboC2.0软件,就以简便且强大的调试功能而深受好评,广泛流行。
软件调试,通常是对本地运行的软件,利用操作系统提供的Trace功能,控制它的执行,并获取它的内部信息,从而检查出软件执行过程中所出现的错误。
而在嵌入式系统开发中,还必须支持远程调试。
需要说明的是,在本文中,并未能够实现上面的全部功能,主要着重点在于
代码编辑、调7第二章MCS.51单片机汇编语言程序1DE的设计试、连接和下载部分。
也就是在PC机上控制目标板中程序执行,从而检查
软件错误。
另外,嵌入式开发中,还可能利用到强大的TrAG在线调试功能,利用硬件断点寄存器等方式实现对系统软件的调试。
2.3.2单片机应用系统软件开发步骤综上所述,在嵌入式软件开发中,由于目标平台的资源有限性,所有的开发工作都是在HostPC上面完成的,所以,导致嵌入式系统中每一个软件的开发过程必须经历下面的环节:(1)源
代码编辑嵌入式开发主要使用的是C,c-H、汇编等类型的源程序。
因此,使用一个好的
代码编辑软件可以提高这个环节的工作效率。
(2)编译生成目标程序在源
代码编辑完成之后,必须要进行编译、出错处理、连接,然后生成目标
代码。
(3)下载或编程一
代码总是要在目标平台上才可以执行的。
所以编译生成的目标程序首先必须要下载到开发板。
代码下载的步骤比较复杂。
例如,下载Bootloader的动作是根据Prooessor所支持的方式来实现的,每个平台各不相同;而下载Linuxkernel的动作又是根据Bootloade:所支持的方式来实现的,每个Bootloader也各不相同;下载应用程序的方式又是根据操作系统所提供的方式来实现的,是
网络方式还是串口方式,通讯协议又是哪种,都无法确定。
所以,这个步骤难于统一完成。
本文采用的是通过串口将目标文件下载到单片机上。
(4)调试通常的软件调试,都是在本机运行调试软件(比如gdb)来完成的。
在嵌入式环境中,开发板上可能由于资源所限,无法运行gdb。
因此,嵌入式环境中的软件调试,通常采用的是软件远程调试的方法或者YrAG在线0n-ca℃-uit)调试的方法。
前者,即软件远程调试,是在开发板上运行一个小巧的调试服务器(例如gdbserver),由PC机上的gdb通过串口或者Ethemet进行连接。
所有的符号分析以及源
代码查看、动作控制都是在PC机上完成的,而具体的执行则是gdbserver进行控制,并将状态信息反馈回PCJ=的gdb,进行信息处理之后,再显示给用户以供分析【11J。
这种方式提供了基本的调试能力,对于一般应用软件来说,己经完全够用了。
8第二章MCS-51单片机汇编语言程序IDE的设计2.3|3开发系统软件实现
方案单片机开发系统软件包括下面两个方面的内容:单片机程序的建立(Build)和仿真调试(Debug)。
(1)单片机程序的建立建立过程可分成两步;编译和连接/定位。
编译只把源程序翻译成机器码,此过程由编译器完成。
经过编译产生的机器码的地址是浮动的,即地址是相对的,并不能在单片机中执行,要用连接定位器(简称连接器)将它们在单片机的绝对地址空间中进行定位,如Intel196单片机
代码必须从2080H单元开始放置,中断向量地址都是特定单元,连接器进行连接时要把相应的
代码装载到特定的地址中【121。
目前编译器和连接器一般是由单片机厂家提供,也有一大批由从事编译器/连接器开发的第三方供应商提供,各厂家的软件都有些差异和各自的特色。
Intcl公司早期是提供16位单片机的编译器和连接器的,后来把这一任务转交给了第三方供应商,如Tasking公司。
目前国内的开发者大多采用国外的编译器和连接器,也有某些汇编语言的编译器是自行开发的。
(2)单片机程序的调试只有编译器和连接器并不能进行开发,还要一个仿真运行的环境,能够将单片机程序放入仿真RAM或单片机的程序存储器中,控制单片机的运行,如单步运行、到断点、停止,并将运行过程中的状态和内部寄存器内容读出来嘲I。
早期的开发环境是分离地运行不同的指令。
如在DOS操作系统下,先是用文本编辑软件写源程序,然后在DOS系统下运行编译和连接程序,完成后再进入仿真软件进行仿真调试。
但目前的开发软件大都将所有功能集中于一体,并建立在W’mdows平台上,这种软件就是本文要研究的集成开发环境(IDE)041。
一般采用可视化的编程工具实现单片机集成开发环境的设计,如用VisualBasic、Visualc++等。
软件环境主要是进行调试的一个环境,它的优劣决定单片机开发的效率。
所以这种软件应当具有丰富的功能和友好的界面,而且要便于调试和发现程序中的错误。
笔者用VisualC++设计了一个使用相当方便和可靠的集成开发环境。
2.4编译器概述在整个IDE的开发中,编译模块的开发至关重要。
9第二章MCS-5I单片机汇编语言程序ⅢE的设计从理论上说,构造专用计算机来直接执行用某种高级语言编写的程序是可能的,但是,目前的机器能执行的是非常低级的语言,即机器语言。
那么一个基本的问题是,高级语言最终是怎样在计算机上执行的呢?答案是编译。
编译,代表从面向人的源语言表示的算法到面向硬件的目标语言表示的算法的一个等价变换。
通常情况下,人们将能够完成一种语言到另一种语言变换的软件称为翻译器,而本文要研究的编译器就是其中的一类。
编译器是程序员将命令翻译成可以在计算机上执行的
代码的软件开发工具,它的特点是目标语言比源语言低级。
编译器的工作可以分成若干阶段,每个阶段把源程序从一种表达形式变换成另一种表达形式。
在计算机研发方面,编译器与处理器的研发必须协调统一地进行,因为只有编译器的设计充分利用了处理器架构的优势,处理器才能达到最大效能。
同时,一个好的编译器可为软件开发和维护提供更有力的支持,可以构造出各种程序分析、理解和开发工具,这些工具对于新的软件开发模式的实践也有很好的支持。
由于编译系统具有上述两个重要意义,因此一个硬件系统如果缺乏一个良好的编译系统的支持,一方面不能充分发挥它的性能,另一方面,相关的各种软件无法有效地开发。
一个成功的硬件系统(如CPU、并行计算系统等)不仅要有很好的硬件特性,而且要有丰富的软件支持,否则就不可能在市场上生存。
目前,这些软件的开发,除了极少的核心部分可能使用汇编语言外,绝大部分的程序是用高级语言开发的,将这些高级语言程序翻译成正确的、高效的、在目标系统上运行的目标程序,必须依赖于编译器的支持。
而且,不同的硬件系统有不同特点,同一个软件在不同的硬件平台上的高效执行所要实施的程序优化也是不同的,面向具体硬件平台的优化编译技术可以很好地解决这方面的
问题。
编译器是一种特殊的程序,它可以把以特定编程语言写成的程序变为机器可以运行的机器码。
在文本编辑器中写好一个程序,然后程序员可以运行相应的编译器,通过指定需要编译的文件的名称就可以把相应的源文件(通过一个复杂的过程)转化为机器码了。
编译器,是将便于人编写,阅读,维护的高级计算机语言翻译为计算机能识别,运行的低级机器语言的程序。
它将源程序(Sourceprogram)作为输入,翻译产生使用目标语言(1缸ge£language)的等价程序115】。
源程序一般为高级语言或汇编语言(I-Iigh-levellanguage),如P弱cal,o卜}等,而目标语言则是目标机.