永发信息网

编译程序是一种

答案:2  悬赏:30  手机版
解决时间 2021-12-22 16:59
  • 提问者网友:欲望失宠
  • 2021-12-22 14:06
编译程序是一种
最佳答案
  • 五星知识达人网友:渡鹤影
  • 2021-12-22 15:30
问题一:什么是编译程序? 编译程序也叫编译系统,是把用高级语言编写的面向过程的源程序翻译成目标程序的语言处理程序。
编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。
(1) 词法分析
词法分析的任务是对由字符组成的单词进行处理,从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。执行词法分析的程序称为词法分析程序或扫描器。
源程序中的单词符号经扫描器分析,一般产生二元式:单词种别;单词自身的值。单词种别通常用整数编码,如果一个种别只含一个单词符号,那么对这个单词符号,种别编码就完全代表它自身的值了。若一个种别含有许多个单词符号,那么,对于它的每个单词符号,除了给出种别编码以外,还应给出自身的值。
词法分析器一般来说有两种方法构造:手工构造和自动生成。手工构造可使用状态图进行工作,自动生成使用确定的有限自动机来实现。
(2) 语法分析
编译程序的语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序,按该语言使用的语法规则分析检查每条语句是否有正确的逻辑结构,程序是最终的一个语法单位。编译程序的语法规则可用上下文无关文法来刻画。
语法分析的方法分为两种:自上而下分析法和自下而上分析法。自上而下就是从文法的开始符号出发,向下推导,推出句子。而自下而上分析法采用的是移进归约法,基本思想是:用一个寄存符号的先进后出栈,把输入符号一个一个地移进栈里,当栈顶形成某个产生式的一个候选式时,即把栈顶的这一部分归约成该产生式的左邻符号。
(3) 中间代码生成
中间代码是源程序的一种内部表示,或称中间语言。中间代码的作用是可使编译程序的结构在逻辑上更为简单明确,特别是可使目标代码的优化比较容易实现。中间代码即为中间语言程序,中间语言的复杂性介于源程序语言和机器语言之间。中间语言有多种形式,常见的有逆波兰记号、四元式、三元式和树。
(4) 代码优化
代码优化是指对程序进行多种等价变换,使得从变换后的程序出发,能生成更有效的目标代码。所谓等价,是指不改变程序的运行结果。所谓有效,主要指目标代码运行时间较短,以及占用的存储空间较小。这种变换称为优化。
有两类优化:一类是对语法分析后的中间代码进行优化,它不依赖于具体的计算机;另一类是在生成目标代码时进行的,它在很大程度上依赖于具体的计算机。对于前一类优化,根据它所涉及的程序范围可分为局部优化、循环优化和全局优化三个不同的级别。
(5) 目标代码生成
目标代码生成是编译的最后一个阶段。目标代码生成器把语法分析后或优化后的中间代码变换成目标代码。目标代码有三种形式:
① 可以立即执行的机器语言代码,所有地址都重定位;
② 待装配的机器语言模块,当需要执行时,由连接装入程序把它们和某些运行程序连接起来,转换成能执行的机器语言代码;
③ 汇编语言代码,须经过汇编程序汇编后,成为可执行的机器语言代码。
目标代码生成阶段应考虑直接影响到目标代码速度的三个问题:一是如何生成较短的目标代码;二是如何充分利用计算机中的寄存器,减少目标代码访问存储单元的次数;三是如何充分利用计算机指令系统的特点,以提高目标代码的质量。...余下全文>>问题二:高级语言编译程序是一种什么软件 编程软件,用来程序,应用软件,编程软件有很多种,如C++,JAVA,C语言,C#等等问题三:什么是翻译程序,编译程序,解释程序 翻译程序是指将用某种语言编写的程序转换成另一种语言形式的程序的程序,如编译程序和汇编程序等。
编译程序是把用高级语言编写的源程序转换(加工)成与之等价的另一种用低级语言编写的目标程序的翻译程序。
解释程序是解释、执行高级语言源程序的程序。问题四:BASIC语言解释程序属于()。 A 应用软件 B 系统软件 C 编译程序的一种 D 汇编程序的一种 C 编译程序的一种问题五:1.一个Java源程序编译后会生成一种扩展名为 的字节码文件。 会产生一个扩展名为class的类文件,问题六:用C语言编写的代码程序( B ) A)可立即执行 B)是一个源程序 C)经过编译即可执行 D) C语言写的代码程序肯定是源程序,B是对的,它不能立即执行,必须经过编译成可执行代码,所以A是错误的,如果这个源程序中不含有main函数,编译后的代码也是不可执行的,所以C是错误的,C语言不是解释执行的,D也不正确问题七:编译程序和解释程序都是( )。 编译程序就是把用高级语言编写的面向过程的源程序翻译成目标程序的语言处理程序弧简单说就是翻译成计算机能识别的2进制。
解释程序由一个总控程序和若干个执行子程序组成。解释程序的工作过程如下:首先,由总控程序执行初始准备工作,置工作初态;然后,从源程序中取一个语句S,并进行语法检查。如果语法有错,则输出错误信息;否则,根据所确定的语句类型转去执行相应的执行子程序。返回后检查解释工作是否完成,如果未完成,则继续解释下一语句;否则,进行必要的善后处理工作。
解释执行方式与编译执行方式是不同的,其根本区别在于:编译方式把源程序的执行过程严格地分成两大步:编译和运行。即先把源程序全部翻译成目标代码,然后再运行此目标代码,获执行结果。解释方式则不然。它是按照源程序中语句的动态顺序,直接地逐句进行分析解释,并立即执行。所以,解释程序是这样一种程序,它能够按照源程序中语句的动态顺序,逐句地分析解释并执行,直至源程序结束。
与编译程序一样,解释程序也与源语言及计算机有关。同一台计算机上不同语言的解释程序是不同的;同一种语言在不同的计算机上的解释程序也可能不同。同一种高级语言的源程序,它可以采用解释执行方式,也可以采用编译执行方式。例如,BASIC语言有解释BASIC和编译BASIC之分。前者执行速度慢;后者执行速度快。编译程序和解释程序都属于系统程序。
所以都是在做处理。问题八:编译程序将高级语言编写的程序翻译成机器语言程序需要执行下列选项中的那三个步骤?(多选) 编译程序将高级语言编写的程序翻译成机器语言程序需要执行下列选项中的那三个步骤?(多选)
A、翻译 B、编译 C、连接 D、装入
选BCD
编译程序进行编译生成目标文件,然后是连接成链接文件,最后就是装入问题九:程序设计语言的编译程序属于系统软件还是应用软件。 编译程序与解释程序是属于语言处理系统,负责把高级语言转化成低级语言,语言处理系统是系统软件的一种,所以编译程序属于系统软件。而编程语言是用于开发各种软件包括系统软件的,所以编程语言是应用软件,比如说编译程序解释程序汇编程序是系统软件,而高级语言低级语言汇编语言是应用软件。问题十:每一种高级语言都有它对应的编译程序这句话是不是对的? 所谓高级语言,是跨平台的。
即在不同的硬件系统、不同的操作系统,都可以工用。
那么,每一种高级语言,在不同的硬件系统,以及不同的操作系统中,都要有对应的编译程序。
而且,有可能不止一种编译程序。
只有这样,高级语言,才能被称为“高级语言”。
全部回答
  • 1楼网友:鱼芗
  • 2021-12-22 16:19
这个问题的回答的对
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯