注:本教程中所使用的变成语言已被淘汰,这个教程只是面向复古计算机爱好者的,建议从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 variablesNdataypesSub Main()Dim a As ShortDim b As IntegerDim c As Doublea = 10b = 20c = a + bConsole.WriteLine("{0}",c)Console.ReadLine()  '输出30End 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架构计算机那样。

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

  1. 千寻的计算机字符,R语千寻 | 非结构化数据--文本数据的读入

    原标题:R语千寻 | 非结构化数据--文本数据的读入 " 上一期(),我们介绍了普通数据读入的方法,一般来说,如果你的数据够规矩,够整齐,按照我们上期介绍的方法,注意注意路径.分隔符等常见问 ...

  2. Spark(六):SparkSQLAndDataFrames对结构化数据集与非结构化数据的处理

    为什么80%的码农都做不了架构师?>>>    一:简单了解SparkSQL. Spark SQL 是结构化的数据处理一个Spark模块.与基本的Spark RDD API不同,Sp ...

  3. 【C/C++13】天气APP:数据挖掘/HTTP协议/非结构化数据存储(filetoblob.cpp),数据管理/监控告警(hsmtable.cpp,tbspaceinfo.cpp)

    文章目录 1. 数据挖掘:/etc/rc.local,sudo su 2.HTTP协议:优先wget 3.非结构化数据存储:blob,pzhrain24file 4.数据管理子系统:数据字典表 5.监 ...

  4. 非结构化数据和结构化数据提取

    页面解析和数据提取 一般来讲对我们而言,需要抓取的是某个网站或者某个应用的内容,提取有用的价值.内容一般分为两部分,非结构化的数据 和 结构化的数据. 非结构化数据:先有数据,再有结构, 结构化数据: ...

  5. R语言编程实现批量化处理非结构化的QQ聊天记录(优化版)

    昨日天朗气清,惠风和畅,突然跟群友聊天,说到QQ群聊天记录的事,正好手边有时间,立刻导出QQ的群消息聊天记录,打算分析一下,然并卵--腾讯对QQ聊天记录不知道是按啥规则保存,反正就是标准的非格式化数据 ...

  6. Python小案例(一)非结构化文本数据处理

    Python小案例(一)非结构化文本数据处理 日常业务需求中,仅凭SQL一招鲜是没法吃遍天的,这个时候就需要更为强大的Python进行支持了.这个系列主要分享一些Python小案例,都是根据笔者日常工 ...

  7. 独家 | 使用机器学习对非结构化数据加速查询-第2部分(具有统计保证的近似选择查询)...

    作者:Daniel Kang, Edward Gan, Peter Bailis, Tatsunori Hashimoto, and Matei Zaharia 翻译:殷之涵 校对:方星轩 本文约28 ...

  8. 独家 | 使用机器学习加速对非结构化数据的查询-第1部分(使用BlazeIt加速聚合和限制查询)...

    作者:Daniel Daniel,Peter Bailis和Matei Zaharia 翻译:Kay 校对:王雨桐 本文约2800字,建议阅读13分钟. 本文为大家介绍了针对非结构化数据如何加快聚合和 ...

  9. MaxCompute与OSS非结构化数据读写互通(及图像处理实例)

    为什么80%的码农都做不了架构师?>>>    摘要: MaxCompute作为阿里巴巴集团内部绝大多数大数据处理需求的核心计算组件,拥有强大的计算能力,随着集团内外大数据业务的不断 ...

  10. 【演讲实录】银行PB级别海量非结构化数据管理实践

    近期,巨杉数据库的技术总监郝大为受邀在第七届数据技术嘉年华中做了"银行PB级别海量非结构化数据管理实践"为主题的演讲,分享了巨杉数据库有关金融行业数据库管理以及金融级数据库技术与应 ...

最新文章

  1. win10系统的qq无网络连接网络连接到服务器,Win10系统下误报无法连接internet该怎么办?新手速看...
  2. Android开发 Butterknife使用方法总结
  3. 服务器e5系列和e5v4系列,“芯”力量:四款至强E5 v4双路服务器横评
  4. 【图像】imagededup照片去重(感知哈希,汉明距离)
  5. 【thymeleaf】th:with
  6. Spring的配置与使用
  7. d3中文案例_D3.js柱状图例子
  8. 开启Cisco交换机DHCP Snooping功能
  9. SDL学习——画图、点阵显示
  10. 为什么我推荐你立刻使用Java 8 Stream?性能逆天了
  11. Mac OS 加入域
  12. Easy2d 文档教程之 Visual Studio 安装 Easy2D 游戏引擎
  13. wps缺少字体ubuntu
  14. 雅虎邮箱客户端服务器设置
  15. Window c++ 创建子进程
  16. kkFileView优化PDF图片预览增加JPEG2000标准图片支持
  17. oracle图书操作、sql语句查询+授权、视图、索引、表操作
  18. 卷尺精度标准_卷尺的精度为多少mm 卷尺测量误差的原因有哪些
  19. druid.io剖析
  20. DNS(域名系统)介绍,深入解析DNS解析失败发生的原因及解决方法

热门文章

  1. SAP PS-项目物资(Project Materials)详解(1)-PLM220项目实操
  2. 分享:新媒体运营专员到新媒体运营总监的成长过程,我用了5年到总监
  3. mysql数据库崩溃时事务恢复机制_mysql数据库 InnoDB崩溃恢复机制总结
  4. HTTPS协议、流媒体协议、P2P协议和DNS协议学习总结
  5. BJTU 懒羊羊的作业
  6. 菜单根据菜单ID向下递归
  7. 区块链学习笔记之以太坊(二)
  8. R学习 / 回归分析的输出及交互作用的计算
  9. android动态侧滑菜单,【Android】侧滑菜单的实现方式
  10. 去年新车上险仅808辆,这家造车新势力准备“变卖”工厂