1.1 高级程序设计语言有哪些特点?
答:(1)直观、易写、易读、工作量小
(2)不依赖于具体的机器
(3)便于程序交流
(4)不可直接在计算机上运行,经编译程序编译成机器语言后方可运行
1.2 典型的编译程序可划分为几部分?各部分的主要功能是什么?每部分都是必不可少的
吗?
答:典型的编译程序可分为词法分析、语法分析、语义分析、中间代码生成、代码优化、
目标代码生成六个部分。
(1)词法分析的功能:
识别单词。从词法分析的层面来看,语言是由字符组成的单词的集合。进行词法
分析的程序称为扫描器(scanner)。
(2)语法分析的功能:
分析语法。从语法分析的层面来看,语言是由单词组成的句子的集合。进行语法
分析的程序称为语法分析器(parser)。
(3)语义分析的功能:
检查源程序是否和语言定义的语义一致。例如类型检查和类型转换(semantic
analyzer)。
(4)中间代码生成的功能:
独立具体机器的代码,便于进一步优化(intermediate code generator)。
(5)代码优化的功能:
为生成更有效的目标代码进行的修饰工作(code optimizer)。
(6)目标代码生成的功能:
生成特定机器上的目标代码(target code generator)。
每个部分并不是都是必不可少的,中间代码生成和代码优化可以省略。
1.3 解释方式和编译方式的区别是什么?
答: (1)解释方式:对源程序逐句翻译执行,目标代码只执行一次,运行速度慢
但容易实现(与用户的交互会话)人机对话,局部程序的改动不需重新翻译整
个程序。
(2)编译方式:是将全部源程序翻译成目标程序,再执行,可反复执行,速度
评论0