【发布时间】:2018-07-13 13:38:51
【问题描述】:
GW-BASIC 和许多其他旧的 BASIC 方言(如 C64 BASIC)允许您执行以下操作:
20 PRINT "World"
10 PRINT "Hello"
这将在执行RUN 命令/语句时产生以下输出:
Hello
World
LIST 命令/语句将列出程序:
10 PRINT "Hello"
20 PRINT "World"
换句话说,这些 BASIC 方言会自动重新排序执行以符合您使用的行号指定的顺序,而不管您最初在另一个编辑器中键入/保存它们的顺序(例如 EDLIN.EXE) .但是,QuickBASIC 和 BASCOM2 未能做到这一点。
我可以在网上找到的最古老的 QuickBASIC 版本是 QuickBASIC 2.0,它在那里不起作用,只是忽略行号以按我写的顺序打印内容(即“World Hello”)。
BASCOM2——我能找到的最古老的 MS/IBM BASIC 编译器——显然也不支持该功能,而是因错误而失败(SQ = 乱序?):
0046 0006 10 PRINT "Hello"
^ SQ
50434 Bytes Available
50325 Bytes Free
0 Warning Error(s)
1 Severe Error(s)
虽然我当然了解行号是多余的,但支持以显式行号顺序 (20, 10, 30 => 10, 20, 30) 而不是隐式行号顺序 (20 , 10, 30 => 20, 10, 30)。
有人知道为什么这种传统的 BASIC 行为被忽略了吗?
【问题讨论】:
-
旧方言 (GW-BASIC) 可能将代码放入由行号索引的数组中。
-
GW-BASIC程序中的行号是指令执行的顺序。