Gio*_*hal 20 programming-languages basic
可能重复:
我们为什么要打扰行号呢?
我很好奇为什么早期版本的BASIC编程语言有如下行编号:
42 PRINT "Hello world!"
Run Code Online (Sandbox Code Playgroud)
当时的文本编辑没有行编号?
编辑:是的,我知道它们用于GOTO,但为什么呢?我的意思是标签的计算成本太高了?
Fer*_*cio 26
许多微型计算机在ROM中都有一个BASIC解释器,可以在启动时启动.问题是没有文本编辑器或文件系统可以说.您有一个交互式提示来完成所有事情.如果要插入一行代码,只需输入代码,从行号开始.它会将它插入到代码中的正确位置.例如:
>10 print "hello" >30 goto 10 >20 print "world" >list 10 PRINT "hello" 20 PRINT "world" 30 GOTO 10 >
(在该示例中>是BASIC提示符)
如果你想擦除一行,你会输入类似的东西ERASE 20.一些非常奇特的系统给了你一个行编辑器(即EDIT 10)如果你没有计划你的行号并且用完了(如何在10到11之间插入一行?)某些系统给你一个RENUM命令,它会重新编号你的代码(GOTOs并GOSUBs适当调整).
娱乐时间!
原始的BASIC行编号实际上是该语言不可或缺的一部分,用于控制流程.
GOTO和GOSUB命令将占用该行,并将其用于控制流.这是常见的(尽管现在不鼓励).
它们被用作GOTO和GOSUB的标签
像这样:
10 PRINT "HELLO WORLD"
20 GOTO 10
Run Code Online (Sandbox Code Playgroud)
某些早期BASIC版本中没有命名标签
如果您想在两个现有代码行之间插入一行,那么它们也是必需的,因为在早期,您没有全文编辑器.所有内容都必须在"交互式"解释器中输入.
所以,如果你输入:
15 PRINT "AND THE UNIVERSE"
Run Code Online (Sandbox Code Playgroud)
该计划将成为:
10 PRINT "HELLO WORLD"
15 PRINT "AND THE UNIVERSE"
20 GOTO 10
Run Code Online (Sandbox Code Playgroud)
当你没有行号时,你可以运行一个"重新编号"工具来重新编号程序中的所有行,但是在Commodore 64和其他家用电脑的早期阶段,我们甚至都没有,所以你' d必须手动重新编号.这就是为什么你必须在行号中留下10或更多的间隙,这样你就可以轻松地在它们之间添加行.
如果你想试用Commodore 64解释器,请查看用Flash编写的这个C64模拟器:http://codeazur.com.br/stuff/fc64_final/(无需安装)
小智 6
在一些较老的编程语言(如GW-BASIC)中,行号是语法的必需元素.[2] 主要原因是当时大多数操作系统缺少交互式文本编辑器; 由于程序员的界面通常仅限于行编辑器,因此行号提供了一种机制,通过该机制可以引用源代码中的特定行进行编辑,并且程序员可以通过该机制在特定点插入新行.行号还提供了一种方便的方法,用于区分要输入到程序中的代码和用户输入时立即执行的命令(没有行号).
| 归档时间: |
|
| 查看次数: |
4768 次 |
| 最近记录: |