编译原理第一章作业
简述翻译程序和编译程序的基本概念
翻译程序是指把高级语言源程序翻译成机器语言源程序(目标代码)的软件。
翻译程序有两种:一种是编译程序,它将高级语言源程序一次性全部翻译成目标程序,每次执行程序时,只要执行目标程序。另一种是解释程序,它的执行过程是翻译一句执行一句,并且不会生成目标程序。
编译程序是先完整编译后运行的程序,如C、C++等;解释程序是一句一句翻译且边翻译边执行的程序,如JavaScript、Python等。
编译过程分为几个阶段?每个阶段的主要任务是什么?
词法分析阶段、语法分析阶段、语义分析阶段、中间代码生成阶段、代码优化、目标代码生成。
词法分析阶段
词法分析阶段:读入源程序,对构成源程序的字符流进行扫描和分解,识别出单词
语法分析阶段
语法分析阶段:机器通过词法分析,将单词序列分解成不同的语法短语,确定整个输入串能够构成语法上正确的程序。
语义分析阶段
语义分析阶段:检查源程序上有没有语义错误,在代码生成阶段收集类型信息
中间代码生成阶段
中间代码生成阶段:在进行了上述的语法分析和语义分析阶段的工作之后,有的编译程序将源程序变成一种内部表示形式