阐述解释执行语言和编译执行语言(面试常见)
A、解释程序 所谓解释程序是高级语言翻译程序的一种,它将源语言(如BASIC)书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。就像外语翻译中的“口译”一样,说一句翻一句,不产生全文的翻译文本。这种工作方式非常适合于人通过终端设备与计算机会话,如在终端上打一条命令或语句,解释程序就立即将此语句解释成一条或几条指令并提交硬件立即执行且将执行结果反映到终端,从终端把命令打入后,就能立即得到计算结果。这的确是很方便的,很适合于一些小型机的计算问题。但解释程序执行速度很慢,例如源程序中出现循环,则解释程序也重复地解释并提交执行这一组语句,这就造成很大浪费。 B、编译程序 这是一类很重要的语言处理程序,它把高级语言(如FORTRAN、COBOL、Pascal、C等)源程序作为输入,进行翻译转换,产生出机器语言的目标程序,然后再让计算机去执行这个目标程序,得到计算结果。 编译程序工作时,先分析,后综合,从而得到目标程序。所谓分析,是指词法分析和语法分析;所谓综合是指代码优化,存储分配和代码生成。为了完成这些分析综合任务,编译程序采用对源程序进行多次扫描的办法,每次扫描集中完成一项或几项任务,也有一项任务分散到几次扫描去完成的。下面举一个四遍扫描的例子:第一遍扫描做词法分析;第二遍扫描做语法分析;第三遍扫描做代码优化和存储分配;第四遍扫描做代码生成。 值得一提的是,大多数的编译程序直接产生机器语言的目标代码,形成可执行的目标文件,但也有的编译程序则先产生汇编语言一级的符号代码文件,然后再调用汇编程序进行翻译加工处理,最后产生可执行的机器语言目标文件。 在实际应用中,对于需要经常使用的有大量计算的大型题目,采用招待速度较快的编译型的高级语言较好,虽然编译过程本身较为复杂,但一旦形成目标文件,以后可多次使用。相反,对于小型题目或计算简单不太费机时的题目,则多选用解释型的会话式高级语言,如BASIC,这样可以大大缩短编程及调试的时计算机并不能直接地接受和执行用高级语言编写的源程序,源程序在输入计算机时,通过"翻译程序"翻译成机器语言形式的目标程序,计算机才能识别和执行。这种"翻译"通常有两种方式,即编译方式和解释方式。编译方式是指利用事先编好的一个称为编译程序的机器语言程序,作为系统软件存放在计算机内,当用户将高级语言编写的源程序输入计算机后,编译程序便把源程序整个地翻译成用机器语言表示的与之等价的目标程序,然后计算机再执行该目标程序,以完成源程序要处理的运算并取得结果。解释方式是指源程序进入计算机后,解释程序边扫描边解释,逐句输入逐句翻译,计算机一句句执行,并不产生目标程序。
c语言面试题
int a = 0x01020304;
int func(unsigned char arg)
{
return arg;
}
int main(int argc, char* argv[])
{
printf("0x%08x\n",func(a));
} 我见过一个C编译器,char是16位的…… computer00 发表于 2014-2-21 09:17 static/image/common/back.gif
我见过一个C编译器,char是16位的……
我专门又看了谭浩强的C书 上面有这么一句强调 任何编译器char都是8位的 就不懂了 zhangmangui 发表于 2014-2-21 09:23 static/image/common/back.gif
我专门又看了谭浩强的C书 上面有这么一句强调 任何编译器char都是8位的 就不懂了 ...
我听说过有16位的,但是没见过。 貌似下面这两个都是16位的char:
http://www.seeddsp.com/service/bbs/archiver/?tid-19096.html
http://wenku.baidu.com/link?url=2R8vmABMAULTH_Ui9L4duC5kpWLPkl5XUyllfpuSRTJZqpEn3hIo2Si9m9BSkmMzeM1CpsuHnOOMs7vAkgYy-2cxZl6aY2u4ZZjXDxvMNdW 本帖最后由 zhangmangui 于 2014-2-21 10:26 编辑
computer00 发表于 2014-2-21 09:36 static/image/common/back.gif
貌似下面这两个都是16位的char:
http://www.seeddsp.com/service/bbs/archiver/?tid-19096.html
http://we ...
查看了一下确实如此 谢谢老大指点 请看@msblast
https://bbs.21ic.com/forum.php?mod=attachment&aid=MTc1MzQ4fDliODNhYTZlfDEzOTI5NDg5NzN8NzAyMjcyfDU1NjA1Ng%3D%3D&noupdate=yes
页:
[1]