我们为什么要费心去加行号呢?

42

当你使用BASIC语言编写代码时,需要使用行号,例如:

10 PRINT "HOME"
20 PRINT "SWEET"
30 GOTO 10

但我想知道:到底是谁想出来使用行号的呢?这真是一件麻烦事,在开发(故意双关)世界中留下了相当大的“回声”!


1
很棒的屏幕名,remco!喜欢那些倒过来的字符。 - David Koelle
你是怎么让你的名字倒过来显示的? - gnovice
@gnovice:这是通过使用看起来像其他字符倒置的Unicode字符完成的。请参见http://www.revfad.com/flip.html作为示例。 - Joachim Sauer
3
@DavidD, gnovice:它使用了一些特殊的Unicode字符,可以查看www.flipmytext.com。 - oɔɯǝɹ
这是为什么:https://youtu.be/OFUHjDhTIJg?t=18m45s - Koray Tugay
16个回答

1

并非所有版本的BASIC都需要行号。例如,QBasic支持标签。然后,您可以使用GOTO跳转到这些标签(暂时忽略Dijkstra的“Go To语句被认为是有害的”)。


QBasic是最早不需要行号的BASIC版本之一。它附带了一个程序,可以从GW-BASIC代码中删除不需要的行号。 - dan04

1
答案已经在上面了。Paul Tomblin写了它(附带对zabzonk的警告)。实际上,我会认为任何没有提到“穿孔卡片”的答案都是不完整的,如果既没有提到穿孔卡片也没有提到FORTRAN,那么就是错误的。我可以肯定地说这是正确的,因为我的父母都经常使用穿孭卡片(他们从FORTRAN 66和77开始),然后在80年代转移到Basic和COBOL。

1
在早期,大多数程序都是通过打孔卡输入的。这些打孔卡通常按顺序输入,每张卡片通常只有一条指令,并且标签(JMP/JSR目标)是单独的指令卡。
要编辑您的程序,您需要替换该卡片。
后来的实现在行的右端添加了一个可选的序列号,以便在它们失序时可以通过自动读取器重新排序。
Fortran在左侧(列1-5)使用数字目标标签,并在右侧(73-80)留下保留块用于序列或注释。
当最初编写BASIC时,决定将序列号移至左侧,进入FORTRAN的标签字段,并允许覆盖先前卡片的内存占用...作为编辑模式。这是为交互式开发环境而设计的,但在某些早期实现中也可以很好地使用卡片。
请注意:许多计算机直到1970年代末期仍然使用读卡器和打印机接口。即使交互式模式基础已经可用,也经常使用打孔基本程序。由于许多计算机只是进入IDE,它们的工作方式完全相同。包括需要在结尾处放置一个“运行”卡片。在这种情况下,您可以简单地添加一个更正卡和另一个运行卡以使用某个变量的变化重新运行;同样,在复杂的程序中,只需在运行之前添加一行更正的卡片即可编辑出问题,而无需花费宝贵的时间查找错误的卡片本身。

0

我喜欢《飞出个未来》中的机器人教堂,墙上写着各种东西。

10 SIN
20 GOTO HELL

在Speccy上,你不能在没有行号的情况下编辑一行代码。

0

在配对编程时,我觉得它们非常有帮助。当我的搭档使用键盘时,我不需要指着一行代码说,“在第74行,应该是getMoreBeer()吧?”


我认为问题是关于那些需要自己输入行号的语言。我同意编辑器自动显示行号非常有用。 - Mendelt
是的,你说得对。似乎有一些情绪倾向于摆脱它们,但仍然有人发现它们很有用,所以我想提一下。 - Don Branson

-1

DOS 的原始编辑器是一个名为 edlin 的绝妙实用工具。你只能编辑单行。在许多版本的 BASIC 中,为了使生活更有趣,你可以按任意顺序输入行号,如 10、20、30、25、5。执行将按行号而非出现顺序进行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接