2012-06-23 6 views
10

私は気づいたことがありますが、上記の質問に私が決定的な答えを与えることができるところはありません。最初に、QBasicで宣言時に変数の型を宣言する必要がないことに気付いたときに、変数の名前に接尾辞を追加して特定の型であることを確認することができました。BASICはどんなタイピングシステムを使用していますか?

また、BASICのいくつかの方言が解釈され、他の方言がコンパイルされるので、これはタイピングシステムに影響しますか?

答えて

6

ベーシックの味は、歴史的なものもあれば、まだ使用されているものもたくさんあります.1つの真の答えを与えることは不可能です。

古いBASIC(行番号付きBASIC)には、StringまたはIntegerという2つのデータ型がありました。 Apple IIコンピュータに同梱されていたオリジナルのBASICは、「Integer BASIC」でした。その後のBASICでは浮動小数点が導入されました。これはしばしば単精度FPです。 TI-99/4aに同梱されているBASICは、80年代初期の浮動小数点BASICの一例です。 "戻ってくる"ときは、引用符で文字列リテラルを作成し、識別子名の後ろに$ sigilという文字列変数を作成します。 $ sigilを持たない変数は、通常、指定された基本ベーシックフレーバ(整数または浮動小数点数)の数値変数の型にデフォルト設定されます。たとえば、GWBasicは、% sigil(「整数」を意味する)を指定しないかぎり、デフォルトで浮動小数点になります。 TI Extended Basicは整数型を持っていませんでしたが、浮動小数点数値型の場合、浮動小数点数のエラーは耐えられません。

これらの初期の基本は本質的に静的に型付けされていましたが、その区別はより強力な言語よりもはるかに有用ではありませんでした。データ型の選択肢は、文字列、数値(時にはInt、時にはFP)、および場合によっては数値をIntまたはFPとして指定する機能があります。シーンの裏には、必要に応じてintと浮動小数点の間で自由に変換するものもありました。多くの場合、そのような場面では、コンバージョンは十分に文書化されていませんでした。

しかし、それは80年代の家庭のコンピュータを持つ皆が趣味であり、基準が緩んでいた80年代の状況でした。すべてのハードウェアメーカーは、BASICがどのように動作すべきかを自分で考えていたようです。

近代的なBASICは、より強力であり、必要に応じて可変型をより厳密に制御することができます。

+1

詳細な回答ありがとうございます。 –

2

以前のBASICの方言は、常に静的に型指定されていました。数値変数、文字列変数、配列にはそれぞれ異なる構文が必要です。また、名前の長さはたいてい1つの記号に限られていました。よく使われる構文は、数字の場合はV、文字列の場合はV$、配列は​​と別々に宣言されました。

私はBASICで15年間良いプログラムを作っていなかったので、現代の方言で何が起こっているのかを確かめることはできません。

1

MultiValueデータベースシステムで使用されるBASICの拡張版では、動的な型指定が使用されます。つまり、コンパイラは、ステートメントのロジックとコンテキストに基づいて変数を処理する方法を決定します。

二重引用符で囲まれたものはすべて文字列で、二重引用符で囲まれていない数値は数字です。数値データを倍精度浮動小数点数型の形式で書き込むには、これを実現するために使用できるさまざまなフォーマット式があります。これを変数に適用します。

最終的にすべてがデータベースレベルでASCII文字列として保存されます。したがって、開発者は、データベースを強制するのではなく、ビジネスロジックレベルで型を強制します。

関連する問題