问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

把高级语言编写源程序变成目标程序,需要经过什么?

发布网友 发布时间:2022-04-18 19:10

我来回答

3个回答

懂视网 时间:2022-04-18 23:32

把高级语言写的源程序变为目标程序要经过编译程序。

  

  把源程序转换为目标程序的过程叫编译。所以能将高级语言编写的源程序转换为目标程序的是相应的高级语言编译程序。

  

  编译程序也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。编译程序属于采用生成性实现途径实现的翻译程序。它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。

热心网友 时间:2022-04-18 20:56

高级语言编译成机器码的过程如下:
1.词法分析
词法分析的任务是对由字符组成的单词进行处理,从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。执行词法分析的程序称为词法分析程序或扫描器。
源程序中的单词符号经扫描器分析,一般产生二元式:单词种别;单词自身的值。单词种别通常用整数编码,如果一个种别只含一个单词符号,那么对这个单词符号,种别编码就完全代表它自身的值了。若一个种别含有许多个单词符号,那么,对于它的每个单词符号,除了给出种别编码以外,还应给出自身的值。
词法分析器一般来说有两种方法构造:手工构造和自动生成。手工构造可使用状态图进行工作,自动生成使用确定的有限自动机来实现。

2语法分析
编译程序的语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序,按该语言使用的语法规则分析检查每条语句是否有正确的逻辑结构,程序是最终的一个语法单位。编译程序的语法规则可用上下文无关文法来刻画。
语法分析的方法分为两种:自上而下分析法和自下而上分析法。自上而下就是从文法的开始符号出发,向下推导,推出句子。而自下而上分析法采用的是移进归约法,基本思想是:用一个寄存符号的先进后出栈,把输入符号一个一个地移进栈里,当栈顶形成某个产生式的一个候选式时,即把栈顶的这一部分归约成该产生式的左邻符号。

3中间代码
中间代码是源程序的一种内部表示,或称中间语言。中间代码的作用是可使编译程序的结构在逻辑上更为简单明确,特别是可使目标代码的优化比较容易实现中间代码,即为中间语言程序,中间语言的复杂性介于源程序语言和机器语言之间。中间语言有多种形式,常见的有逆波兰记号、四元式、三元式和树。

4代码优化
代码优化是指对程序进行多种等价变换,使得从变换后的程序出发,能生成更有效的目标代码。所谓等价,是指不改变程序的运行结果。所谓有效,主要指目标代码运行时间较短,以及占用的存储空间较小。这种变换称为优化。
有两类优化:一类是对语法分析后的中间代码进行优化,它不依赖于具体的计算机;另一类是在生成目标代码时进行的,它在很大程度上依赖于具体的计算机。对于前一类优化,根据它所涉及的程序范围可分为局部优化、循环优化和全局优化三个不同的级别。

5目标代码
目标代码生成是编译的最后一个阶段。目标代码生成器把语法分析后或优化后的中间代码变换成目标代码。目标代码有三种形式:
① 可以立即执行的机器语言代码,所有地址都重定位;
② 待装配的机器语言模块,当需要执行时,由连接装入程序把它们和某些运行程序连接起来,转换成能执行的机器语言代码;
③ 汇编语言代码,须经过汇编程序汇编后,成为可执行的机器语言代码。
目标代码生成阶段应考虑直接影响到目标代码速度的三个问题:一是如何生成较短的目标代码;二是如何充分利用计算机中的寄存器,减少目标代码访问存储单元的次数;三是如何充分利用计算机指令系统的特点,以提高目标代码的质量。

6表格管理
编译过程中源程序的各种信息被保留在种种不同的表格,编译各阶段的工作都涉及到构造、查找、或更新有关的表格。
编译程序的公共辅助部分。对源程序中的各种量进行管理,登记在相应的表格。编译程序处理时通过查表得到所需的信息。

7出错处理
如果编译过程中发现源程序有错误,编译程序应报告错误的性质和错误的发生的地点,并且将错误所造成的影响*在尽可能小的范围内,使得源程序的其余部分能继续被编译下去,有些编译程序还能自动纠正错误,这些工作由错误处理程序完成。
需要注意的是,一般上编译器只做语法检查和最简单的语义检查,而不检查程序的逻辑。

热心网友 时间:2022-04-18 22:31

编译,连接
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
茶叶可以放在冰箱里吗茶叶能不能放冰箱 茶叶放冰箱里好吗茶叶放冰箱里好不好 茶叶可以放冰箱保存么 茶叶放冰箱放冷藏好吗 甲、乙两根绳子/,甲绳长63米,乙绳长29米、两根绳子前去同样的长度)剩下... 新华书店在送图书下乡活动中,送去的连环画战50%,余下的是故事书,故事书... 李老师带了300元钱去新华书店为学校图书室买《现代汉语词典》38.50.他... dnf55传承重甲套多少钱 dnf漫游55传承套叫什么名字 Dnf刺客五十五级刷图传承套多少钱?叫什么名字? DNF55级传承皮甲套多少钱,每个部位价格分别是多少,20分 华为手机哪个系列有耳机插口 华为p40没有耳机孔怎么办 华为nova8手机怎么没有耳机孔 华为手机怎么没有插耳机的口 计算器怎么开机关机键 新买的得力计算器怎么关机 没有off键啊 有图 普通计算器哪个是关机键 学生计算器怎么关机? 计算器如何关机? 计算器的开机键是什么,关机键是什么 在计算器中,(  )键是用来关机的. A.ON B.OFF C.CE D.SET 昨天在微信团队里辅助验证了帮别人。会不会有什么危险?好担心! 微信帮好友扫码辅助解封,对我自己微信有什么影响? 帮人辅助一下微信有危害吗? 帮助别人微信解封对自己有什么影响吗 需要留身份证号 微信的好友辅助会造成什么影响? 帮他人辅助验证解封,会对自己的号有影响吗 辅助别人注册有什么风险吗 笔记本怎么连外置显示器 苹果手提电脑外接显示器线用什么? 把高级语言编写的源程序转换为可执行程序的过程叫什么? 高级语言编写的程序转换为计算机能直接执行的目标程序,必须经过?A编辑B编译C汇编 把源程序转换为目标程序的过程叫什么? 由高级语言编写的源程序要转成计算机能直接执行的目标程序,必须经过A、编辑或执行 B、编译或解释 C、汇编 4. 把高级语言的源程序变为目标程序要经过( )。 能将高级语言编写的源程序转换为目标程序的是什么? 将用高级语言编写的源程序转换成等价的目标程序的过程,称为? 21.把高级语言的源程序变为目标程序要经过 ______。 A.汇编 B.解释 C.编辑 D.编译 22.解释程序的功 高级语言编写的源程序需经什么程序翻译成目标程序,计算机才能执行 能将高级语言源程序转换成目标程序的是( )。 用高级语言编写的源程序,要转换为与之等价的目标程序,须经过编译还是翻译? 164.由高级语言编写的源程序,要转换成计算机能直接执行的目标程序,必须经过( )。 1. 把汇编语言编制的源程序变为目标程序,要经过(   &#160 用高级语言编写的源程序,要转换为与其等价的目标程序,必须经过 编译。编译和解释的区别是什么啊? 高级语言编写的源程序必须经过______才能执行 将用高级语言编写的源程序装换成等价的目标程序的过程称为 商家旺旺号在哪里显示 旺旺号在哪里里面怎么打开 旺旺号在哪里的? 我在拼多多上买的东西 用朋友家天猫店铺打印机打印的退货单 拼多多的老板没能联系到我 结果用旺旺号找_问一问