Next: , Previous: , Up: Forth Tutorial   [Contents][Index]


3.12 Types

Forth では、 演算子の名前はオーバーロードされません。 したがって、 異なる型に対する同様の演算には異なる名前が必要です。 たとえば、 + は整数の加算をしますが、 浮動小数点数を加算するには f+ を使用する必要があります。 以下のプレフィックスは、 さまざまな型の関連する演算によく使用されます:

(none)

符号付き整数

u

符号なし整数

c

文字(character)

d

符号付き2倍長整数(signed double-cell integer)

ud, du

符号無し2倍長整数(unsigned double-cell integer)

2

2 つのセル(必ずしも 2倍長整数(double-cell numbers)とは限りません)

m, um

単一セルとダブル・セルの混合操作

f

浮動小数点(注意: スタック・コメントでは、 ‘f’ はフラグを表し、 ‘r’ は FP 数値を表すことに注意してください。 また、 リテラル FP 数値には指数部分を含める必要があります see Floating Point)。

符号付きのバリエーションと符号なしのバリエーションに違いがない場合(例えば + の場合)、 プレフィックスのないバリエーションのみが存在します。

Forth は、 コンパイル・モード時もインタプリタ・モード時も型チェックを実行しません。 以下のように間違った操作を行うと、 データが正しく通訳(interpret)されません:

-1 u.

あなたが、 これまで型チェック言語しか使用したことがなく、 型チェックがいかに重要であるかを聞いたことがある場合でも、 パニックに陥る必要はありません。 著者の経験(および他の Forth 利用者(Forthers)の経験)では、 Forth コードの型エラーは通常(慣れてしまえば)簡単に見つかります。 プログラマの警戒心が高まると、 ほとんどの型エラーに加えて、 より困難なエラーも発見される傾向があります。 型システムを回避する必要がまったくないため、 ほとんどの状況では型チェックがないことが利点であるようです(Forth に型チェックを追加するプロジェクトは普及していません)。