1.1.2语言处理程序的工作 语言处理工作可以分为程序生成工作和程序执行工作 它们分别来填补说明间距和执行间距。 程序生成工作的作用是将某一应用领域的源程序生成 相应的目标程序。程序生成工作的目标是程序的自动生成。 程序生成器是一种软件系统,它接受被生成程序的说明书, 并根据说明书说明的规则自动生成可以运行的程序。如编 译程序、LEⅩ(词法分析程序生成器)都是程序生成器, 编译程序接受某程序设计语言格式的源程序生成目标机器 的用目标程序。LEX程序接受LX源程序生成词法分析 程序 程序执行工作的作用是将目标程序装入运行的计算机 系统,并按照程序的指令系列运行程序。目前目标语言是 低级语言,故通常是面向过程的。而源语言可以是面向问 题、面向对象或面向过程的
1.1.2 语言处理程序的工作 语言处理工作可以分为程序生成工作和程序执行工作, 它们分别来填补说明间距和执行间距。 程序生成工作的作用是将某一应用领域的源程序生成 相应的目标程序。程序生成工作的目标是程序的自动生成。 程序生成器是一种软件系统,它接受被生成程序的说明书, 并根据说明书说明的规则自动生成可以运行的程序。如编 译程序、 LEX(词法分析程序生成器)都是程序生成器, 编译程序接受某程序设计语言格式的源程序生成目标机器 上的用目标程序。LEX 程序接受LEX源程序生成词法分析 程序。 程序执行工作的作用是将目标程序装入运行的计算机 系统,并按照程序的指令系列运行程序。目前目标语言是 低级语言,故通常是面向过程的。而源语言可以是面向问 题、面向对象或面向过程的
例:根据平面几何的命题生成作图程序。在一个输入环境中 输入:已知三角形的二条角平分线相等,求证:该三角形是 等腰三角形。系统先检验其有效性,如:是否能构成二条角 平分线相等的等腰三角形等。在说明有效的前提下产生相应一 的若干画直线的语句的作图程序。最后证明其结论。 这样程序生成器引出了一个新的领域,它介于应用域 和目标程序域之间的域,称之为程序生成器说明域。从而说 明间距变为从应用域到程序生成器说明域之间的间距。由于 这一间距往往比从应用领域到目标程序域的间距要小得多, 这样间距的缩小提高了程序的可靠性。从而使设计者可程序 员为将生成的程序编写说明书更加容易。由程序生成器域到 目标程序域之间的大量工作量都是有生成器来完成的,减少
例: 根据平面几何的命题生成作图程序。在一个输入环境中, 输入:已知三角形的二条角平分线相等,求证:该三角形是 等腰三角形。系统先检验其有效性,如:是否能构成二条角 平分线相等的等腰三角形等。在说明有效的前提下产生相应 的若干画直线的语句的作图程序 。最后证明其结论。 这样程序生成器引出了一个新的领域,它介于应用域 和目标程序域之间的域,称之为程序生成器说明域。从而说 明间距变为从应用域到程序生成器说明域之间的间距。由于 这一间距往往比从应用领域到目标程序域的间距要小得多, 这样间距的缩小提高了程序的可靠性。从而使设计者可程序 员为将生成的程序编写说明书更加容易。由程序生成器域到 目标程序域之间的大量工作量都是有生成器来完成的,减少
了程序的测试工作、程序的正确性验证问题。如例1-1中用 不必考虑画直线的算法以及如何画直线保证其线段的相等 等问题。 程序执行工作的目标是完成程序的运行。从目标程序的说明 域到見机器行域仍存在一定的间距,完成其工作的程一 程序的执行主要包括 1装入目标程序 2取得一条语句或指令。 3.分析该语句以及确定所操作的数据集合。 4.完成该语句的含义,对定义的数据集合产生相应的变换
了程序的测试工作、程序的正确性验证问题。如例1-1中 用 户不必考虑画直线的算法以及如何画直线保证其线段的相等 等问题 。 程序执行工作的目标是完成程序的运行。从目标程序的说明 域到目标机器的执行域仍存在一定的间距,完成其工作的程 序称为程序的执行。 程序的执行主要包括: 1.装入目标程序。 2.取得一条语句或指令。 3.分析该语句以及确定所操作的数据集合。 4.完成该语句的含义,对定义的数据集合产生相应的变换
程序的执行工作的方式取决于目标代码的形式、运行的 目标机器和执行时的资源开销(所占用的时间和存储空间) 如果目标程序是机器语言代码,则目标程序的执行效率是 的。它比其它非机器语言的目标代码的执行要快得多。因此 目前的目标代码仍多数是类似于机器语言或汇编语言的一类 低级语言
程序的执行工作的方式取决于目标代码的形式、运行的 目标机器和执行时的资源开销(所占用的时间和存储空间)。 如果目标程序是机器语言代码,则目标程序的执行效率是高 的。它比其它非机器语言的目标代码的执行要快得多。因此 目前的目标代码仍多数是类似于机器语言或汇编语言的一类 低级语言
1.1.3语言处理程序的形式 语言的处理形式主要是由填补说明间距和填补执行间距 的程序两大类 言的翻译程序,如汇编程序、编译程序它填补了程序 设计语言到计算机系统的语言的执行间距。如反汇编程序 反编译程序则它填补了计算机系统的语言到程序设计语言执 间距。语言移植程序填补的是两个程序设计语言之间的说 明间距。由于预处理程序是将用户提供的源程序处理成另和 符号程序,它是在说明域之后的语义间距,则它提供了执 间距的一部分,但它不属于翻译程序。解释程序是将源程序 装入后逐步取语句并解释其含义执行之,因此它提供了执行 间距
1.1.3 语言处理程序的形式 语言的处理形式主要是由填补说明间距和填补执行间距 的程序两大类。 语言的翻译程序,如汇编程序、编译程序它填补了程序 设计语言到计算机系统的语言的执行间距。如反汇编程序、 反编译程序则它填补了计算机系统的语言到程序设计语言执 行间距。语言移植程序填补的是两个程序设计语言之间的说 明间距。由于预处理程序是将用户提供的源程序处理成另种 符号程序,它是在说明域之后的语义间距,则它提供了执行 间距的一部分,但它不属于翻译程序。解释程序是将源程序 装入后逐步取语句并解释其含义执行之,因此它提供了执行 间距