第一次作业
1)简述编译程序与翻译程序、汇编程序的联系与区别。
答:编译程序、翻译程序、汇编程序都是解释程序,编译程序是把高级语言源程序翻译成机器语言源程序的软件。翻译程序是先生成目标程序然后在输入、输出。编译程序和汇编程序的区别在于编译程序的源语言是诸如C、C++、Java等“高级语言”,而目标语言是诸如汇编语言或机器语言之类的“低级语言”,而汇编程序源语言是汇编语言,而目标语言是机器语言。
2)编译过程包括哪几个主要阶段及每个阶段的主要功能。
编译过程主要包括词法分析、语法分析、语义分析、中间代码生成、中间代码优化、目标代码生成和目标代码优化。
词法分析这个阶段的任务是一个一个字符地读入源程序,对构成源程序的字符流进行扫描和分解。
语法分析阶段的任务是在词法分析的基础上将单词序列分解成各类语法短语。
语义分析是审查源程序有无语义错误,为代码生成阶段收集类型信息。
中间代码生成是在上述阶段的工作之后将源程序变成一种内部形式。
代码优化这一阶段是将产生的中间代码进行变换、改造,使得生成的目标代码更为高效。
目标代码生成这一阶段的任务是把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。
3)简述解释程序与编译程序的区别。
解释程序直接对源代码进行输入输出,不需要在运行前先把源程序翻译成目标代码,而编译程序则需要在运行前先将源程序翻译成目标代码,然后再输入输出。
浙公网安备 33010602011771号