What typing system does BASIC use?
我注意到,我找不到任何地方能给我一个对上述问题的明确答案。当我注意到在声明变量时,您不必在qbasic中声明变量的类型时,我首先想到了这一点,尽管您可以在变量名称中添加一个后缀,以确保它是一个特定的类型。
另外,当一些基本方言被解释和编译时,这会影响打字系统吗?
有很多基本的味道,有些只是历史的,有些还在使用中,不可能给出一个真正的答案。
一些旧的基础(行编号基础)有两种数据类型:字符串或整数。苹果II电脑附带的最初的基础是"整数基础",后来的基础介绍了浮点运算,通常是单精度浮点运算。TI-99/4A附带的基本版是80年代早期的浮点基本版的一个例子。"回到"时",您将使用引号创建一个字符串文本,并在标识符名称后面使用一个带有
这些早期的基础知识基本上是静态类型的,尽管区别远不如在更强大的语言中有用。数据类型的选择很少:字符串、数字(有时是int,有时是fp),有时还可以指定数字是int还是fp。在幕后,有些甚至可以根据需要在int和浮点之间自由转换。通常这种幕后转换没有很好地记录下来。
但那是80年代的情况,那时所有拥有家用电脑的人都是最爱玩的,而且标准也很宽松。每一个硬件制造商似乎都有自己的看法,如何基本的工作。
更现代的基础更强大,并允许更严格地控制变量类型(当需要时)。
早期的基本方言都是静态类型。数字变量、字符串变量和数组都需要不同的语法。此外,名字的长度通常仅限于一个符号。最常用的语法是
因为我已经15年没有用基础语言编程了,所以我不能确定现代方言中到底发生了什么。
多值数据库系统中使用的增强版basic使用动态类型。这意味着编译器根据语句的逻辑和上下文决定如何处理变量。
双引号中的任何内容都是字符串,而不是双引号中的任何数值都是数字。对于以双精度或浮点形式写入数字数据,可以使用各种格式表达式来实现这一点,这些表达式应用于变量。
最终,所有内容都以ASCII字符串的形式保存在数据库级别。因此,开发人员在业务逻辑级别强制执行类型,而不是数据库强制执行类型。