1701066400
1701066401
在介绍自复制程序之前,还要先解释一些会用到的编程语言的相关知识。
1701066402
1701066403
参考图8.1给出的计算机存储器示意图。在我们高度简化的例子中,计算机存储器由有编号的位置或“地址”组成,图中编号为1—5,依次往后。各位置中有一些字符。这些字符可以作为程序的指令或程序使用的数据。如果执行当前存储的程序,会显示输出:
1701066404
1701066405
Hello, world!
1701066406
1701066407
Goodbye.
1701066408
1701066409
1701066410
1701066411
1701066412
▲图8.1 计算机存储器简化示意图,位置用1—5依次编号,其中4个存储有程序。指令指针指向计算机当前存储的指令。有些指令行前面带有空格,在执行的时候会被忽略
1701066413
1701066414
要执行程序,计算机要有一个“指令指针”——同样存储在存储器中的一个数字,记录当前执行的指令在存储器中的位置。指令指针——简记为ip——最初设为程序第一行的存储地址。我们称之为“指向”那条指令。在计算的每一步ip指向的指令会被执行,ip加1。
1701066415
1701066416
例如,在图8.1中,ip的值为2,也就是说指向的是print(“Hello, world!”)。
1701066417
1701066418
我们称ip为变量,因它的值随着计算的进行而不断变化。
1701066419
1701066420
还可以定义变量line[n]表示地址n中的字符串。例如,指令print(line[2])会显示输出:
1701066421
1701066422
print(“Hello, world!”)
1701066423
1701066424
此外,我们的编程语言中还包括loop指令(循环)。例如,下面的程序代码:
1701066425
1701066426
x=0
1701066427
1701066428
loop until x=4
1701066429
1701066430
{
1701066431
1701066432
print(“Hello, world!”)
1701066433
1701066434
x=x+1
1701066435
1701066436
}
1701066437
1701066438
会输出:
1701066439
1701066440
Hello, world!
1701066441
1701066442
Hello, world!
1701066443
1701066444
Hello, world!
1701066445
1701066446
Hello, world!
1701066447
1701066448
大括号之间的代码会反复执行直到循环结束条件(这里是x=4)满足。变量用作计数器——从0开始,每循环一次加1。增加到4时循环停止。
1701066449
[
上一页 ]
[ :1.7010664e+09 ]
[
下一页 ]