编译原理概述
1)简述编译程序与翻译程序、汇编程序的联系与区别?
翻译程序是指这样一个程序,它把一种语言所写的源程序翻译成与之等价的另一种语言的目标程序。
编译程序是一个翻译程序,它能把高级的语言编译成等价的机器语言或汇编语言的目标程序。
汇编程序指编译生成与之等价的 机器语言。
2)编译过程包括哪几个主要阶段及每个阶段的主要功能?
编译过程一共有5个阶段。分别就是词法分析,语法分析,语义分析与中间代码产生、优化、目标代码生成。
词法分析是后台把输入进去的源程序进行扫描分析,并且识别每一个单词。
语法分析是在词法分析的基础上,把每一个单词识别出来整理成一个句子,并且判断这个句子是否合理,用法是否恰当。
中间代码生成是在语法分析的过程中,把源程序转变成部分代码。
优化是把中间代码产生的代码进行优化,把一些重复的代码,无用的代码进行删除。
目标代码形成是把中间代码(或经优化处理之后)变换成特定机器上的低级语言代码。这阶段实现了最后的翻译。
3简述解释程序与编译程序的区别
编译程序:编译程序的功能是把用高级语言书写的源程序翻译成与之等价的目标程序。编译过程划分成词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成6个阶段。目标程序可以独立于源程序运行。(编译程序是一个语言处理程序,它可以把高级语言程序给语言翻译成某个机器的汇编语言程序或者是二进制代码程序,这个阶段叫做编译阶段。需要注意的是编译和运行是分两个阶段进行的,也就是说程序必须要全部编译完成后,才能运行。即编程方式执行程序会把源代码翻译成二进制文件的目标代码。)
解释程序:解释程序是一种语言处理程序,在词法、语法和语义分析方面玉编译程序的工作原理基本相同,但在运行用户程序时,它是直接执行源程序或源程序的内部形式(中间代码)。因此,解释程序并不生成目标程序,这是它和编译程序的主要区别。(解释程序的工作模式是一个个的获取、分析并且去执行源程序的语句,一旦第一个语句分析结束后,源程序就会开始运行并且去生成结果,它比较适合以交互方式来进行工作的情况。即解释程序不会生成目标代码。)