第一次作业

∥☆過路亽.° 提交于 2019-11-29 04:13:21

1)编译程序与翻译程序、汇编程序的联系与区别

编译程序是一类很重要的语言处理程序,它把高级语言(如FORTRAN、COBOL、Pascal、C等)源程序作为输入,进行翻译转换,产生出机器语言的目标程序,然后再让计算机去执行这个目标程序,得到计算结果。编译程序工作时,先分析,后综合,从而得到目标程序。

  翻译程序是指一个程序,它把一种语言所写的源程序翻译成与之等价的另一种语言的目标程序。解释程序也是一种翻译程序,它将源程序作为输入并执行它,边解释边执行。它与编译程序的主要区别在于在解释程序执行的过程中不产生目标程序,而是按照源语言的定义解释执行源程序本身。

  汇编程序要一个翻译策程序,它把汇编语言程序翻译成机器语言程序。

2)编译过程包括哪几个主要阶段及每个阶段的主要功能。

  编译程序划分为6个阶段,分别是词法分析、语法分析、中间代码生成、代码优化和目标生成。词法分析是编译过程的第一个阶段,是从左到右一个字符一个字符地读入源程序,对构成源程序的字符流行进行扫描和分解,从而识别一个个单词。语法分析是在词法分析的基础上将单词序列分解成各类语法短语,如:“程序”、“语句”、“表达式”等。语义分析是审查源程序有无语义错误,为代码生成阶段收集类型信息。中间代码生成是在进行了上述的语法分析和语义分析阶段的工作之后,有的编译程序将源程序变成一种内部表示形式,这种内部表示叫做中间语言或中间代码。所谓中间代码是一种简单的结构。代码优化是对前一阶段产生的中间代码进行交换或进行改造,目的是使生成的目标代码更为高效、即节省时间和节省空间。目标代码生成是把中间代码变成特定机器上的绝对指令代码或重定位的指令代码或汇编指令代码。这是编译的最后阶段,它的工作最为重要。

3)简述解释程序与编译程序的区别。

  解释程序是一个语言处理程序,它把一个高级语言程序翻译成某个机器的汇编语言程序或二进制代码程序,这个二进制代码程序在机器上运行以生成结果。但是不把整个程序全部翻译完成,另外一个语言处理程序叫解释程序,它不需要在运行前先把源程序翻译成目标代码,这也可以实现在某平台上运行并生成结果。解释与程序接受某个语言的程序并立即运行这个源程序。

  编译程序和解释程序的存储组织也有很大的不同。经由编译程序处理时,在源程序被编译的阶段,存储中要为源程序和目标代码开辟空间,要存放编译要用的各种表格;所谓编就是对源程序和中间语言程序从头到尾扫描并完成规定的任务的过程。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!