与解释执行相比较,编译执行的另一个优点是,编译器可以对代码做更彻的优化,这是为在生成机器代码时,编译器对整个程序进行检查,通过分析程序意图,尽可能地减少程序计算量。
如下所示算法,根据键盘输入值,执行一个简单计算,并将计算结果输出:
(1)从键读入W;
(2)X<--W+W;
(3)Y<--X+X;
(4)Z<--Y+;
(5)输出Z至屏幕
a.如果是解释器,则逐句执行整个程序,共有五条语句。请问在程序执行过程中,解释器至少要执行多少次算术运算?请详细说明。
b.如果是编译器,在代码生成之前,将对整个程序做分析,然后优化代码。如果底层ISA具备所有的算术能力(如:加、减、乘、除),请问完成该程序至少需要执行多少次操作,请详细说明。
(1)从键读入W;
(2)X<--W+W;
(3)Y<--X+X;
(4)Z<--Y+;
(5)输出Z至屏幕
a.如果是解释器,则逐句执行整个程序,共有五条语句。请问在程序执行过程中,解释器至少要执行多少次算术运算?请详细说明。
b.如果是编译器,在代码生成之前,将对整个程序做分析,然后优化代码。如果底层ISA具备所有的算术能力(如:加、减、乘、除),请问完成该程序至少需要执行多少次操作,请详细说明。