basic使用什么打字系统?

What typing system does BASIC use?

我注意到,我找不到任何地方能给我一个对上述问题的明确答案。当我注意到在声明变量时,您不必在qbasic中声明变量的类型时,我首先想到了这一点,尽管您可以在变量名称中添加一个后缀,以确保它是一个特定的类型。

另外,当一些基本方言被解释和编译时,这会影响打字系统吗?


有很多基本的味道,有些只是历史的,有些还在使用中,不可能给出一个真正的答案。

一些旧的基础(行编号基础)有两种数据类型:字符串或整数。苹果II电脑附带的最初的基础是"整数基础",后来的基础介绍了浮点运算,通常是单精度浮点运算。TI-99/4A附带的基本版是80年代早期的浮点基本版的一个例子。"回到"时",您将使用引号创建一个字符串文本,并在标识符名称后面使用一个带有$符号的字符串变量。没有$符号的变量通常默认为给定风格的基本支持的数字变量类型(整数或浮点)。例如,gwbasic将默认为浮点,除非您指定了%符号,这意味着"整数"。ti extended basic没有整数类型,但是浮点数字类型有15个有效数字,如果我记得的话(浮点数学错误是无法承受的)。

这些早期的基础知识基本上是静态类型的,尽管区别远不如在更强大的语言中有用。数据类型的选择很少:字符串、数字(有时是int,有时是fp),有时还可以指定数字是int还是fp。在幕后,有些甚至可以根据需要在int和浮点之间自由转换。通常这种幕后转换没有很好地记录下来。

但那是80年代的情况,那时所有拥有家用电脑的人都是最爱玩的,而且标准也很宽松。每一个硬件制造商似乎都有自己的看法,如何基本的工作。

更现代的基础更强大,并允许更严格地控制变量类型(当需要时)。


早期的基本方言都是静态类型。数字变量、字符串变量和数组都需要不同的语法。此外,名字的长度通常仅限于一个符号。最常用的语法是V表示数字,V$表示字符串,数组用DIM单独声明。

因为我已经15年没有用基础语言编程了,所以我不能确定现代方言中到底发生了什么。


多值数据库系统中使用的增强版basic使用动态类型。这意味着编译器根据语句的逻辑和上下文决定如何处理变量。

双引号中的任何内容都是字符串,而不是双引号中的任何数值都是数字。对于以双精度或浮点形式写入数字数据,可以使用各种格式表达式来实现这一点,这些表达式应用于变量。

最终,所有内容都以ASCII字符串的形式保存在数据库级别。因此,开发人员在业务逻辑级别强制执行类型,而不是数据库强制执行类型。