随着软件开发工具的不断完善,面向问题的语言开始 世 题的语言提供了与应用域 同或接近的说明 域,使得其说明间距越来越小,而执行间距却越来越大 整个执 的填补都是由语言处理程序来完成的,这对软 件提高软件开发的质量和降低软件的开发成本有着及其积极 对于程序设计者来说也是降低了劳动强度 效率和设计出的软件的具有较高的可靠性。可以预期令 后还会产生更接近 然语言直接 可以描述应用领域的问题,此时说明间距接近零,全部工 都是由填补执行间距的软件来完成
随着软件开发工具的不断完善,面向问题的语言开始问 世。面向问题的语言提供了与应用域完全等同或接近的说明 域,使得其说明间距越来越小,而执行间距却越来越大,但 整个执行间距的填补都是由语言处理程序来完成的,这对软 件提高软件开发的质量和降低软件的开发成本有着及其积极 的意义。对于程序设计者来说也是降低了劳动强度、提高了 工作效率和设计出的软件的具有较高的可靠性。可以预期今 后还会产生更接近应用域的说明语言,甚至用自然语言直接 可以描述应用领域的问题,此时说明间距接近零,全部工作 都是由填补执行间距的软件来完成
1.2高级语言的翻译 程序设计语言的实质是算法的一种描述工具,它把初始 状态的数据转变为某个终止状态。高级语言的翻译程序就是 对程序设计语言寻找一种等价的变换使得变换后的程序对初 始状态的数据能变换为终止状态。通常高级语言的翻译方式 有:一种是填补高级语言执行间距的解释程序,另一种是填 补高级语言说明间距的编译程序
1.2 高级语言的翻译 程序设计语言的实质是算法的一种描述工具,它把初始 状态的数据转变为某个终止状态。高级语言的翻译程序就是 对程序设计语言寻找一种等价的变换使得变换后的程序对初 始状态的数据能变换为终止状态。通常高级语言的翻译方式 有:一种是填补高级语言执行间距的解释程序,另一种是填 补高级语言说明间距的编译程序
,2.1解释 对于任一种程序设计语言PL,可以定义一种抽象机,PL 的运 ,数据结构和控制结构的存储元素的指令,在这样的 机器上执行用PL写的算法称为解释,通常,这种抽象机是由 软件实现的,即程序设计语言和机器语言之间的间距是由软 来填 这样的软件叫做解释器或解释程序。图 1-2为 解释程序的执行图解 由于解释执 不直接产生目标代码它运行时所需的内 存相对较少,而且源程序修改后,又可立即重新执行,但 速度相对较慢。故目前釆用解释执行的高级语言少 解释程序在执行重复语句 多次重复解释执 其
1.2.1 解释 对于任一种程序设计语言PL,可以定义一种抽象机,PL 的运算,数据结构和控制结构的存储元素的指令,在这样的 机器上执行用PL写的算法称为解释,通常,这种抽象机是由 软件实现的,即程序设计语言和机器语言之间的间距是由软 件来填补的,这样的软件叫做解释器或解释程序。图1-2为 解释程序的执行图解。 由于解释执行它不直接产生目标代码它运行时所需的内 存相对较少,而且源程序修改后,又可立即重新执行,但是 解释程序在执行重复语句时,需多次重复解释执行,其运行 速度相对较慢。故目前采用解释执行的高级语言较少
解捏 内存 修序计嫩感 据程啤数器 出的语匀; 惊框序中的数据 姨合诬行变换 汗完毕,德改 除计数括 图12解释图解
1.2.2编译 编译器又称编译程序是用另一种方式处理语义间距的, 它是通过翻译序列(SL,L1) L)来得到和源程序SL等价的TL 工L表示目 ≤i≤k)称做中间语 到的目标程序由机器硬 件解释执行,或由其它软件进一步处理。 种器 种语言变换的软件称为翻译器。编译器是翻 种类型。编译由于它产生目标代码尽管 储空间要比解释方式多,但它能多次运行目标代码,得到不 同的运行结果,仅需一次翻译。由于编译程序的以上优点, 大多数编译程序采用的是编译方式。如图1-3为编译程 序的翻译和运行的图解
1.2.2编译 编译器又称编译程序是用另一种方式处理语义间距的, 它是通过翻译序列(SL,L1),(L1,L2),(L2, L3)···(Lk,TL)来得到和源程序SL等价的TL语言,TL表示目 标语言,Li(1≤i≤k)称做中间语言,得到的目标程序由机器硬 件解释执行,或由其它软件进一步处理。 能够完成一 种语言到另一种语言变换的软件称为翻译器。编译器是翻译 器的一种类型。编译由于它产生目标代码尽管可能占用的存 储空间要比解释方式多,但它能多次运行目标代码,得到不 同的运行结果,仅需一次翻译。由于编译程序的以上优点, 目前大多数编译程序采用的是编译方式。如图1-3为编译程 序的翻译和运行的图解