2012-06-23 50 views
10

我注意到,無論我能找到什麼,都可以給我一個上述問題的明確答案。我首先想到了這一點,當我注意到在聲明它們時你從來沒有必要在QBasic中聲明變量的類型,儘管你可以爲變量的名稱添加後綴以確保它是特定類型的變量。BASIC使用什麼打字系統?

此外,由於BASIC的一些方言被解釋和其他編譯,這是否會影響打字系統?

回答

6

BASIC有許多不同的風格,有些只有歷史,有些仍在使用,所以不可能給出一個真實的答案。

一些舊的BASIC(行號BASIC)有兩種數據類型:String或Integer。 Apple-II計算機附帶的原始BASIC是「Integer BASIC」。後來BASIC推出了Floating Point,它通常是單精度FP。 TI-99/4a附帶的BASIC是早期80年代浮點BASIC的一個例子。 「回來的時候」,您將使用引號創建一個字符串文本,並在標識符名稱後面帶有一個符號爲$的字符串變量。沒有$ sigil的變量通常會默認爲基本支持(Integer或Floating Point)的給定風格的數值變量的類型。例如,GWBasic將默認爲浮點數,除非您指定% sigil,這意味着「整數」。 TI擴展基本沒有整數類型,但浮點數字類型有15位有效數字,如果我記得(浮點數學錯誤不能承受)。

這些早期的基礎知識基本上是靜態類型的,儘管這種區別遠不如在更強大的語言中有用。數據類型的選擇很少:字符串,數字(有時是Int,有時是FP),有時可以指定數字是Int還是FP。在幕後,有些甚至根據需要在整數和浮點之間自由轉換。這種幕後轉換常常沒有很好的文件記錄。

但這就是80年代的情況,當時家庭計算機的每個人都是最懶散的,而且標準很寬鬆。每個硬件製造商似乎都對BASIC的工作方式有自己的看法。

更現代的BASIC功能更強大,並允許對變量類型(需要時)進行更嚴格的控制。

+1

感謝您的詳細解答。 –

2

BASIC的早期方言總是靜態類型。數字變量,字符串變量和數組每個都需要不同的語法。名字的長度通常僅限於一個符號。對於數字,最常使用的語法僅爲V,對於字符串而言,V$僅與​​分別聲明。

因爲我沒有在BASIC編程15年,所以我無法確定現代方言中發生了什麼。

1

MultiValue數據庫系統中使用的BASIC的增強版本使用動態類型。這意味着編譯器根據語句的邏輯和上下文決定如何處理變量。

雙引號中的任何內容都是一個字符串,任何非雙引號的數字值都是一個數字。爲了將數字數據以雙精度或浮點數形式寫入,可以使用各種格式表達式來實現這一點,這些表達式適用於變量。

最終,所有內容都以數據庫級別保存爲ASCII字符串。所以開發人員在業務邏輯層面強制類型,而不是數據庫強制執行。