9.4 作业1-了解编译原理
作者:互联网
1)简述编译程序与翻译程序、汇编程序的联系与区别。
翻译程序是指把高级语言源程序翻译成机器语言源程序(目标代码)的软件。
翻译程序有两种:一种是编译程序,它将高级语言源程序一次性全部翻译成目标程序,每次执行程序时,只要执行目标程序。另一种是解释程序,它的执行过程是翻译一句执行一句,并且不会生成目标程序。
编译程序是先完整编译后运行的程序,如C、C++等;解释程序是一句一句翻译且边翻译边执行的程序,如JavaScript、Python等。附C语言编译链接过程:
汇编程序也是一种语言翻译程序,它把汇编语言源程序翻译成机器语言程序。
编译程序与汇编程序的区别:如果源语言是诸如C、C++、Java等“高级语言”,而目标语言是诸如汇编语言或机器语言之类的“低级语言”,这样的一个翻译程序称为编译程序。如果源语言是汇编语言,而目标语言是机器语言,这样的一个翻译程序称为汇编程序。
2)编译过程包括哪几个主要阶段及每个阶段的主要功能。
编译过程主要包括预编译处理(.c) -->编译、优化程序(.s、.asm)-->汇编程序(.obj、.o、.a、.ko)--> 链接程序(.exe、.elf、.axf等)这四个阶段。
这四个阶段的主要功能分别如下:
预编译:将.c 文件转化成.i文件 使用的gcc命令是:gcc–E 对应于预处理命令cpp
编译:将.c/.h文件转换成.s文件 使用的gcc命令是:gcc–S 对应于编译命令 cc –S
汇编 :将.s 文件转化成.o文件 使用的gcc 命令是:gcc–c 对应于汇编命令是 as
链接:将.o文件转化成可执行程序 使用的gcc命令是: gcc 对应于链接命令是 ld
3)简述解释程序与编译程序的区别。
编译程序是专指将高级语言变成低级语言,而解释程序是指接受某高级语言的一个语句输入,进行解释并控制计算机执行,马上得到这句的执行结果,然后再接受下一句。
编译程序是将源程序进行编译之后最终转变成目标程序然后输入数据执行得出计算结果。而解释程序则是同时输入数据和源程序进行解释然后得出计算结果。
4)了解新开源的华为方舟编译器(https://www.openarkcompiler.cn/home),理解并谈谈它的基本思想与采用的技术路线,以及它对安卓软件生态会有什么影响。
华为方舟编译器采取了静态编译的方式,是首个取代了安卓虚拟机模式的静态编译器。它会对安卓软件生态会产生影响。比如锻炼人才,为Android注入新活力,提供更好的用户体验。
标签:gcc,翻译程序,作业,解释程序,源程序,编译,9.4,编译程序 来源: https://www.cnblogs.com/heiyedeshihouh/p/11457675.html