非结构化/行号BASIC(Line-Numbered BASIC)编程语言教程(1)——概述

        注:本教程中所使用的变成语言已被淘汰,这个教程只是面向复古计算机爱好者的,建议从Python开始学起。而且,就算没有这个教程,上世纪的BASIC教材也有很多,完全可以拿来学。因此,这篇教程只是我用来闲暇消磨时间写的了。

        非结构化BASIC在上世纪八九十年代非常常见,是国内外中小学生学习编程的首要语言。1982年,邓小平在上海展览馆前来参观。几个少年正在电脑前为观众进行程序的演示,李劲就是其中之一,其中“计算机的普及要从娃娃抓起”这句名言就是从这儿来的。而这个李劲使用的编程语言,正是那种非结构化的BASIC。(冷知识:C语言程序设计课本主编谭浩强曾经也写过BASIC语言教程)

        最早,BASIC的诞生是为简化FORTRAN语言而来的。美国达特茅斯学院约翰·凯梅尼(J. Kemeny)和托马斯·卡茨(Thomas E. Kurtz)认为FORTRAN那样的语言难度根本无法普及,于是设计出了世界上第一个面向初学者的语言——“初学者通用符号指令代码”(Beginner's All-purpose Symbolic Instruction Code),简称BASIC。

        后来,在七十年代末家用计算机开始渗透,为了使用户提供更简洁方便的体验,于是越来越多的微型计算机开始内置非结构化BASIC

        貌似现在BASIC编程语言已经很少出现了,不过大部分的七零八零后应该对一种BASIC非常熟悉……那就是自带行号的那个BASIC。那种BASIC不同于Microsoft的那个Visual Basic,这种需要自己输入行号的BASIC我们称之为:非结构化BASIC,又称行号BASIC(Line-Numbered BASIC)。

        结构化BASIC与Visual BASIC不同,具体体现在下面这一方面:

        比如,下面是非结构化BASIC程序实例,我们要讲的就是这个:

10 LET A = 10
20 LET B = 20
30 PRINT A+B
40 REM IT OUTPUTS 30

         下面是Visual Basic.NET的程序实例:

Module variablesNdataypes
   Sub Main()
      Dim a As Short
      Dim b As Integer
      Dim c As Double
      a = 10
      b = 20
      c = a + b
      Console.WriteLine("{0}",c)
      Console.ReadLine()  '输出30
   End Sub
End Module

       所以,虽然这两个都叫做BASIC,但是差别还是很大的。主要是让BASIC语言从原始的无操作系统的微机环境到适应现代的计算机环境。VB更趋向于现代的程序设计,而非结构化BASIC省去了变量类型的赋值。比如LET A,就是直接声明一个变量。这个变量可以是整形,是浮点也可以是字符串,但是在VB中每个一个变量需要声明一种类型,以此强化管理数据处理能力。

        首先,非结构化BASIC程序实例由两大部分组成——<行号> <代码内容>,其中因为需要自己手写行号,因此又称行号BASIC(Line-Numbered BASIC),这也是结构化BASIC的一大特点。

        行号顾名思义,有时候程序的跳转就需要用到行号。比如GOTO 10,意思是转移到行号10。这和C语言的GOTO不同。删除行号的时候,就直接输入这个行号。这个行号的代码就会消失掉。而且,你必须先输入行号才能输入程序,否则解释器会直接执行当前代码。依次输入完依次执行,虽然结果还是一样,但这样就失去了程序自动执行的特性了。

        非结构化BASIC相比于VB的优势有很多,比如有时候不需要声明变量即可直接使用。或者语句数量少且简洁,但是这样比的话显得有些没意义。毕竟,VB是为现代计算机系统服务的,在BASIC的基础上添加几个面向对象语言与面向过程语言的特征来更好地提高数据处理与对象管理能力,也就是说C语言,JAVA等的特性都占一遍。比如模块(Modula),函数(Main())的独特表达方式等……因此VB在十几年前的病毒领域很流行。而结构化BASIC是在相对简陋的八位计算机系统上,并不需要多复杂的数据处理能力,简简单单实现几个小游戏就行了,尽管它慢得一批(一个语句几百行汇编代码组成)又闪得一批(字符对象超出处理范围引起的闪烁)。不过,它虽小,但五脏俱全。常用的语句操作都有,就像RISC架构计算机那样。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值