这三个数字组成的二进制文件长仅为ฦ6字节:

485abf7810f5

假定你正在用汇编语言设计程序,程序中使用了寄存器a、b和c。但在编程过程中,你

现此程序需要去做另一件事—一个小的计算,其中也要使用寄存器a,、bຘ、cນ。而你最终

load10h

store11้h

011

1้10

术展的结果。19世纪早期,你可以即时通信和远距离通信,但不能同时达到两个ฐ要求。即

时通信只能限制在你的声音能达到เ没有扩音器可用或是你的眼睛能看到也许得用望远

begin

print'thisismyfistalgolprogram!';

ende

可以用algol编译程序来编译firstalg程序,操作如下:

algolfirstalg

algol编译程序的响应可能是显示类似于下面的内容:

line3:unre9de'

algol对拼写的挑剔๶不亚于传统的英语教师。在输入程序时若拼错了单词end,编译程

序则会告知程序有一个语法错误。当它碰到ende时,它希望那是它可以识别的关键字。

修改了错误以后,可以再运行algol编译程序。有时,编译程序会直接生成一个可执行

文件名为firstcນom,或者是ms-dos下的firstexe;有时,还需要进行另一个步骤。

无论怎样,你都可以从命令行运行first程序:

第2๐4章高级语言和低级语言25๓5

下载

first

first程序的响应是显示:

thisismyfistalgolprogram!ำ

糟糕!还有一个拼写错误。这是一个编译程序不能ม现的错误,因此,称为运行时错误

run-timeerror—即只在运行程序时才出现的错误。

可以看出,在该aທlgol程序中,print语句在屏幕上显示一些内容,本例是一行文本因

此,这个ฐalgol程序等效于本章前面9t语句实际上并不是algol

语言正式定义的一部ຖ分,这里只假设正在用的这个algol编译程序包含有这样一个实用工ื具,

有时称作内部函数。print语句—就像许多aທlgol语句除begin和end外一样—后面必

须跟引号。print语句向里缩进不是必须ี的,只不过使得程序结构更清晰。

假设要编写一个程序计算两个数的乘๖法。每一个程序设计语言都有变量这个概念。在程

序中,变量名可以为一个字母、一个短的字母序列,甚至为一个短词。实际上,变量对应于

一个内存单元,但在程序中是通过名字来引用的,并不是通过内存地址。下面这个程序有3个

变量,名为a、b和c:

begin

reala,bຘ,c;

aທ:=๡53543๑;

b:=9๗771;๙

c:๘=axbຘ;

print'ูtheprodu9d',b,'ูis',c;

end

reaທl语句是说明语句,用来表明程序中ณ要说明的变量。本例中ณ,变量a、bຘ、c是实数或浮

点数algol也支持关键字integer,用来说明整型变量。通常,程序设计语言要求变量名

以字母开头。只要第一个字符是字母,变量名可以包含数字,但不能包含空格及许多其他字

符。通常编译程序要限制变量名的长度。本章的例子都采用一个字母作为变量名。

如果使用的algol编译程序支持ieee浮ด点数标准,则程序中的3个ฐ变量都需要4个ฐ字节的

存储空间对单精度数或8个ฐ字节的存储空间对双精度数。

接下来的三个语句是赋值语句。在algol中ณ,赋值语句定义为冒号后紧跟等号。在许

多计算机语言中,赋值语句只需用等号。赋值语句的左边是变量,右边是表达式。前两个ฐ赋

值语句是给a和b赋给一个值,第三个赋值语句中ณ变量c的值由变量a和b产生。

今天,在程序设计语言中,大家熟ງ悉的x乘号通常不允许使用,因为它不属于ascii

码和ebcdic的字符集。许