The REALbasic用語集
以下はREALbasicに関連した術語の常に更新されているリストです。REALbasic Universityコラムで新しい術語が現れたときに、それらはここに追加されます。もし、あなたがここに含まれるべきだと思われる術語があれば、わたくしまでお知らせ下さい。それらの追加を考慮します。


REALbasicの術語(*印は未翻訳)

アルゴリズム区切り子オブジェクト
API小さな三角形オブジェクト指向プログラミング
配列倍精度実数OOP
ASCII文字入力欄引数(パラメータ)
自動補完カプセル化*Parse
*BASICエラーチェック属性
*Binaryイベント*Pushbutton
*Bitファイルのパス*REALbasic
論理型*Flag*Recursion
2値論理*Functionリソース・フォーク
キャンバスハンドラ*Routine
クラス*Hexadecimalスコープ
コード統合開発環境*Sprite
*Collision Detection継承文字列
コンパイラインスタンスサブクラス
定数整数サブルーチン
コントロール*Interpreter構文
コントロール配列リストボックス構文エラー
データ・フォークローカライズスレッド
データ構造メソッド*Timer
データの型モーダル変数
デバッグモジュール*Visual Basic

REALbasic Terms

AlgorithmDelimiterObject
APIDisclosure TriangleObject-Oriented Programming
ArrayDoubleOOP
ASCIIEditfieldParameter
AutocompleteEncapsulationParse
BASICError-checkingProperty
BinaryEventPushbutton
BitFile PathREALbasic
BooleanFlagRecursion
Boolean LogicFunctionResource fork
CanvasHandlerRoutine
ClassHexadecimalScope
CodeIDESprite
Collision DetectionInheritanceString
CompilerInstanceSubclass
ConstantIntegerSubroutine
ControlInterpreterSyntax
Control ArrayListboxSyntax Error
Data forkLocalizeThread
Data structureMethodTimer
Data typeModalVariable
DebugModuleVisual Basic

アルゴリズム(Algorithm)

アルゴリズムは問題解決のための基本的なステップです。アルゴリズムはコード(code)ではありません。それは概念、処理過程そのものことです。例えば、有名なBubble Sortアルゴリズムはリストを並べ替えるための方法です。それは単純ですがとても遅いものです。つまりそれは、単純に前の行と一行一行比較をしていき、順序が間違っていれば順番を入れ替えます。そしてすべてのリストの入れ替えが行われなくなる(完全に順番どおりになる)まで、それを続けます。Bubble Sortを実装する際のコードは、言語によって変化しますが、アルゴリズムはすべての言語に共通するものです。

API

Application Programmer Interface(プログラム開発用インターフェイス)の頭文字。開発者がお馴染の Mac OS のインターフェイスを生成するのに1から書き始めることなく呼び出す(利用する)ことのできる無数のソフトウェアルーチンをアップル社は Mac OS の一部として供給しています。API はそれらのルーチンおよび引数(パラメータ)のリストです。本質的に API は他のプログラマの書いたルーチンの使い方の説明です。他人の書いた REALbasic のクラスをダウンロードしてくれば、そのクラスのいろんなメソッドの使い方をしめす API 解説がよく含まれています。

配列(Array)

配列はデータの表のようなものです。それは1つ以上の項目を保持できる 変数です。配列は1つの名前しか持ちませんので、ここの要素には番号で参照します。REALbasicでは、これは theArray(10) のように配列の名前の後に番号を括弧で続けることによりなされます。配列は情報のリストの保存に最適な単純な1次元のデータ構造です。配列は使用する前に定義しなければなりません:メモリーを確保しなければなりません。REALbasicでは、これは DIM あるいは REDIM コマンドで行ないます。もし、存在しない配列の要素にアクセスしようとすれば、プログラムはクラッシュするでしょう。例えば、theArray を10個の要素を持つとして宣言し、theArray(11) にアクセスしようとすれば、あなたのプログラムはクラッシュするでしょう。

ASCII(アスキー)

American Standard Code for Information Interchange(情報交換用米国標準コード)の頭文字です。これはそれぞれ0から127 までの一意の数値が割り振られている標準の英語の文字と句読点の集まりです。コンピュータはすべてのテキストを数値で保存します。ほとんど全てのコンピュータが ASCII コードを使っていますので、1つのコンピュータから別のものに渡されたテキストは変わることはありません。もし、異なるコンピュータが異なる標準化をしていれば、一方での文字 A は別のコンピュータでは Q であるかも知れません、そして混乱が生じます。実際には基本のアルファベットより多くのものを表す 256 の文字コードがありますが、それらの 127 あるいはそれ以下が標準化された部分です。それ以外の文字に対しては、それぞれのコンピュータは各自の標準化を行なっています。これはアクセント文字や記号のような特殊な文字が Mac から PC (あるいはその逆)へは正しく受け渡されない理由です。

自動補完(Autocomplete)

これはユーザが何をしようとしているかを推察し、ユーザに代わってそれを完結するある種のソフトウェアのもつ機能です。ユーザが変数名あるいはメソッドの最初の数文字をタイプしたときに、REALbasicが入力を完成させるのはそのいい例です。これはユーザの時間を節約するように考えられたものですが、慣れないユーザにとっては混乱を生じることもあります。

BASIC

Stands for Beginner's All-purpose Symbolic Instruction Set. BASIC was a programming language created in the 60's to be simple and easy-to-learn. Original versions of BASIC were limited and slow, and were interpreted, not compiled. Today there are many versions of BASIC which are nearly as powerful as C++ but far easier to use (such as REALbasic).

Binary

A base-2 counting system, which means it only uses two base digits (0 and 1). Decimal is the normal human counting system, which has ten base digits (0 through 9). Hexadecimal is a base-16 system (0 through H).

Bit

Short for BInary digiT. Since a binary number only contains 0's and 1's, a single digit would be a bit. Eight bits together is a byte.

論理型(Boolean)

論理型は真または偽(オンまたはオフ)を表すデータ型です。論理型はしばしばフラッグ(例えば、条件が状態 A または B のどちらであるかの設定)として使われます。REALbasicでは論理型変数を2つの方法で設定することが可能です。1つは、変数の値をキーワードtrueあるいはfalseによって指定します、他方は、論理式(結果が真か偽である表式)の評価を設定します。後者の例:
gameOver = (shipFuel < 1) and (numShips < 1)
ここでは論理変数gameOverはshipFuelとnumShipsの両方が1以下の場合にのみ真に設定され、それ以外では偽に設定されます。これはBoolean Logicとして知られており、非常に有用です。

2値論理(Boolean Logic)

2値論理はコンピュータの真髄です:全ての表現は真または偽として評価されます。REALbasicでは通常のAND, OR, NOTの論理演算子が使えます、そして複雑な論理式を作ることが可能です。例えば、keydownイベントのキーの種類を以下のように制限することにより、数値だけが入力可能な文字入力欄を作ることができます:
if (key < "0" or key > "9") and key <> "." then
return true
end if
このコードは、キーがピリオドでない限り、数値でない全ての入力されたキーを捨て去ります -- 我々はユーザに小数点の入力を許さなければなりません。

キャンバス(Canvas)

これはREALbasicに特有なオブジェクトです。それは長方形の描画領域を表しています。描画がプログラムのコードのコマンドでなされるので、統合開発環境では空の点線の箱で表示されています。キャンバスは多くのイベント (mouseDownなど)を受け付けますので、自分専用の特別なコントロールを作る、あるいは単に画像を表示するのに使うことができます。

クラス(Class)

クラスはオブジェクトの一種です。それはオブジェクトのインスタンスのための鋳型あるいは青写真として働きます。例えば、"Person" と呼ばれるクラスを作成し、そのクラスに名前、性別、身長、体重、靴の大きさ、電子メールアドレス、誕生日などのデータを属性として含ませることができます。その後、私のデータベースで必要とする個々の人々に対していくつでもそのクラスのインスタンスを生成することができます。

コード(Code)

コンピュータが理解できる言語での命令集です。コードには、アセンブリ、マシン語のような低レベル(人間が扱いにくい)、あるいはC++、パスカル、REALbasicのような高レベル(人間が扱いやすい)の二つに分けられます。「そのゲームのコードは何行あるの?」と言うように、プログラムの複雑さはコードの長さがしばしば目安にされています。

Collision Detection

A key issue with graphics, especially sprites, is the ability to tell when two objects "collide" (touch) each other. For instance, in a game a spaceship controlled by the user might explode if it touches the cave walls. It is up to the program to detect when the ship collides with the wall. Simple in concept, collision detection is difficult to program. Fortunately, REALbasic's built-in sprite system supports automatic collision detection.

コンパイラ(Compiler)

コンパイラは英語に近いプログラム構文をアセンブラ言語に変換するコンピュータプログラムです。インタプリタ言語と異なり、コンパイラはプログラムが実行される前に全プログラムを生成します。詳しくはインタプリタ(Interpreter)を参照。

定数(Constant)

変化することのない変数:すなわち、その情報はプログラムが動いている間に変化することはありません。一般的に、定数はプログラムの更新を容易にするために使われます。例えば、月の数を12と書く代わりに、それを表す定数を使い、一年の月の数に何か変化があったなら、あなたはただ定数を定義している1ヶ所でそれを変更すればいいだけです。よりありそうな話は、リストボックスのある情報の欄番号を表すのに、数値を直接書き込むことでしょう。例えば、あなたはコラム4に"数量"の値を保存しようと決めたとします。それで、プログラムのすべてにわたってそのデータを手に入れるためには、4番目のコラムを参照します。しかし後になって、あなたがそのコラムの前に新しいコラムを挿入したとたん、あなたはプログラム全体に目を通して、それらの直接に書き込んでいる全ての数値を正しい値に書き換えなければなりません。もし、あなたが定数を用いれば、プログラム全体を修正するために、1ヶ所を書き換えるだけで済みます。
コントロール(Control)

コントルールはユーザが変更することのできるインターフェースをもつオブジェクトです。ユーザコントロールとも呼ばれます。例えば、プッシュボタンではユーザはそれを押すことができます。ポップアップメニューでは項目のリストからの選択が可能です。リストボックス(listbox)はスクロールする情報のリストを表示します。文字入力欄(editfield)にはユーザがテキストを入力できます。

コントロール配列(Control Array)

これは単にコントロールの配列(array)です。コントロールの配列はすべて同じ名前を持ち、それぞれは独自の添え字(インデックス)によって のみ識別可能です。コントロール配列中のすべてのコントロールは、同じコードを持っていることがポイントです。すなわち、いくつかの同じよう なコントロールの複製が必要なときにコントロール配列を使用します。例えば、ボールド、イタリック、その他の強調ボタンが使えるHTMLエディ タを作っているとしましょう。テキストにタグを付ける方法はみんな同じで、唯一の違いはタグ自身です。ボタンのコントロール配列を作成するこ とによって、ほとんどのコードを再利用することができます。クリックされたボタンのインデックスを単にチェックするだけで、適用すべきタグが 明らかになります。これは、まったく別のボタンのために同じコードを何回も書くよりははるかに簡単です。

データ・フォーク(Data fork)

Mac OSは、データ・フォークとリソース・フォークからなる独自のファイルシステムを持っています。一般的に、文書ファイルではデータ・フォークのみが使用されます。他のオペレーティング・システムではこのような2つに分割されたファイルシステムは持っていないことから、ファイルのデータ・フォーク部分のみが利用可能です。

データ構造(Data structure)

ほとんど全ての計算機プログラムは、ユーザから入力された、あるいはファイルから取り込まれた情報、またはプログラムにより計算された結果などのデータを処理します。それらの全ての情報はプログラムによって保存(記憶)される必要があります。それがプログラムのデータ構造です。プログラマーとして、あなたはその情報を保存する最も効率的で有効な方法を決定しなければなりません。これはプログラムをデザインする段階であなたがしなければならない決断です。多くのプログラム言語は複数のデータ型と情報を保存する異なる機構を持っています;ある方法はある種のデータには有効です、一方他の方法は別の種類のデータに有効です。あなたの選択はデータを用いて何をしようとしているのか(あなたは並べ替えを行なおうとしているのか、計算をしようとしているのか?)、データの拡張性(ユーザはさらにデータを増やす、あるいは新しい型のデータを追加するしようとしているのか?)、そしてデータの量(数百の要素を処理するプログラムのデータ構造は百万件のデータを処理するためのデータ構造とは大きく異なります。)等に依存します。注意深くプログラムのデータ構造を考える必要があります。将来の拡張性を考え、プログラムが並べ替えなどの機能をどれほど有効に行なうことが可能かを解析しなければなりません。

データ型(Data type)

コンピュータは人間とは違います:データの種類を区別できません。あなたや私にとって、似顔絵は人間です、しかし、コンピュータにとっては無数の数値以外のなにものでもありません。あなたや私は一連の数字を見て、「あー、電話番号だ」と思うでしょう。しかし、コンピュータはただ数値と区切り(−、ピリオドあるいは空欄)と思うだけです。このために、プログラム言語はデータの厳格な定義をしています。変数にデータを保存しますので、その変数が保持するであろうデータの種類を定義しなければなりません、そしてそれに違反(サウンドを保持するように定義された変数に画像を保存するようなこと)してはいけません。REALbasicの典型的なデータの幾つかは数値(整数および倍精度実数)、テキスト(文字列)および画像(picture)です。

デバッグ(Debug)

コンピュータプログラムの誤り(エラー)を見つけて、修正する退屈な過程。バグ(虫)はプログラムがコンパイルされない構文エラーから、見た目の欠陥、論理的な誤り(あなたはコンピュータにあることをやらせようと思っているのに、実際には別のことを指示していて、結果が期待していたようにはならないこと)などがあります。

区切り子(Delimiter)

データベースでデータを分けるために使われる分離用の文字。区切り子はデータに対して特異的でなければなりません。そうでないと、データの範囲が正しく読まれなくなります。例えば、多くのデータベースでは「タブ区切り」の形式でデータがイクスポートされます。これは個々のレコードはそれぞれのデータ欄がタブによって区切られている個別の行に対応していることを意味します。

小さな三角形(Disclosure Triangle)

これは小さな三角形のユーザインターフェイスで、その向きにより情報を表示したり隠したりします。典型的な例はファインダのリスト表示で、そこではフォルダはその横に小さな三角形を持っています。三角が下を向いているときは、それは開いていると解釈され、フォルダの内容が表示されます。一方、三角が右を向いているときには、それは閉じていて、フォルダの内容は隠されます。あるプログラムでは小さな三角形は高度なユーザインターフェイスの表示を制限します。例えば、リモートアクセスコントロールパネルでは、設定の横に三角があり、ユーザのログイン名、パスワード、ISPおよび電話番号などの詳細な情報の表示したり隠したりします。インターフェイスを簡潔にするために、ユーザの必要としない余分な項目を隠すことができます。

倍精度実数(Double)

数値のデータ型(data type)です。倍精度実数は小数(分数)に使用されます。3434.5454は有効な小数です。また1.0あるいは-343.00003もそうです。もしプログラムが分数を扱う必要があるなら、変数を倍精度実数型に定義しなければなりません。

文字入力欄(EditField)

REALbasicのテキストコントロール(control)。ウィンドウに文字入力欄をおけば、プログラムの実行時に、ユーザは文字入力欄にテキストを入力することが可能になります。クリップボードの機能(コピーやペーストは)自動的に利用可能になります。"multiline"や"styled"属性などの種々の設定は文字入力欄の動作に影響します。(Multilineは複数行の入力を可能にします、また、styledは文字入力欄が1つ以上のフォントを持つことを意味します。)

カプセル化(Encapsulation)

カプセル化されたコードとは、サブルーチンのように他のコードから孤立し、 グループになっているコードです。コード内に自分でどう処理すればよいかを 記述しているOOPのオブジェク トは、カプセル化されたコードの例です。カプセル化されたコードの主なメリ ットは、そのコードがどのようにプログラムされたかを知らなくとも、オブジ ェクトやコード群と遣り取りができるという点です。

エラーチェック(Error-checking)

軽度なエラーがプログラム全体をダメにしてしまわないように、プログラムの起りえるエラーをチェックすること。オペレーティングシステムへのコマンドが決してうまくいくと仮定してはいけません:うまく行っているかをダブルチェックして確認しましょう。例えば、OS に新しいファイルを作成するように言ったときには、ファイルに書く前に正しく作成されているかを確かめるべきです。そのファイルがロックされているボリューム(CD などのように)上にあって、ファイル作成ルーチンが失敗することは充分にあり得ます。

イベント(Event)

イベントとは何か発生するものです。通常、これはユーザが何か(タイプする、マウスボタンをクリックする等)したことを意味します。しかし、タイマの時間が過ぎた、あるハードウェアが条件を知らせている(モデムが着信を検出した、ユーザがマウスを接続した等)ときにも起ります。オブジェクト指向プログラミングでは、イベントはメッセージとしてオブジェクトから別のオブジェクトへ送られます。Macintoshはイベント駆動であると言われます。これはMacのプログラムは単にイベントに反応するのを待っているので、ユーザがコンピュータを制御しているということを意味しています。

ファイルのパス(File Path)

これはファイルの位置を示すテキスト表現です。それはファイルがその中にあるボリューム名(ドライブ名)とすべてのフォルダ名が特別な文字で区切られたものです。Mac ではファイルのパスはコロンで区切られており、PC ではスラッシュを使います。例えば、"Bullwinkle 4/1/01" という名前のファイルが Rocky というハードディスクの "Letters" というフォルダにあるとしましょう。そのファイルのパス(Mac での)は "Rocky:Letters:Bullwinkle 4/1/01" となるでしょう。もし、ファイルが移動したり、名前が変えられたりすると、ファイルのパスは正しくなくなりますので、それらはどこにファイルがあるかを記憶しておく最善の方法ではありません。

Flag

This is a term for a type of variable used to alert the programmer to a particular condition. Typically a flag is a on/off boolean variable. For instance, a game might have flag that's set depending on if the player's a guy or a girl and adjust the game accordingly.

Function

A type of subroutine that returns a value. The definition of the function establishes the data type of the value to be returned. Functions are commonly used to convert one data type to another. For instance, send a function a string and it returns a number, etc. Or a function could take the passed information (say a string) and process it in some manner and return it in the new format (such as lower case).

ハンドラ(Handler)

ハンドラとは特別な状況を処理するルーチンです。例えば、メニューハンドラ menu handler はユーザによって選択されたメニューを処理します。ハンドラは別の言語でのメソッド method やプロシージャ procedure に類似のものですが、全く同じではありません:ハンドラはいつでもある種のイベントに反応します、一方プロシージャやメソッドはある理由(必ずしもイベントに反応するだけでなく)により呼び出されます。

Hexadecimal

The name for the base-16 numbering system. The decimal system is base-10 (there are ten digits). Computers think in binary (base-2), ones and zeros (two digits). In hexadecimal there are sixteen digits (0-9 plus A-F). A = 10, B = 11, etc. If you're terrible at math, other based number systems are very confusing. There's no reason why humans couldn't use a numbering system other than decimal, but since we've got ten fingers, that's what we standardized on.

統合開発環境(IDE)

基本的にはコードを書くためのエディタです。以前は(暗黒時代には)、プログラムはエディタで書いて、別のプログラムでコンパイルされていました。現在では、多くのプログラミングの環境はREALbasicのように内蔵の(統合された)エディタを呼び物にしています。

継承(Inheritance)

オブジェクト指向プログラミング (OOP)の基本的な原理の1つがオブジェクトを造り出すときに他のオブジェクトを基にすることができるということです。この派生的なオブジェクトは最初のものの機能や特徴を獲得します。派生的なオブジェクトでは、必要とあれば継承した特性を書き換えることも可能です、そして新しい特徴や機能を追加することができます。継承を用いる利点はプログラム作成の迅速化です:オブジェクトは最初から部分的に作られています、そしてその原形を編集することによって、数行のコードによってオブジェクトを変更することが可能です。私が継承を説明するためにいつも好んで使う比喩は多くのワープロやレイアウトソフトのスタイルシートの機能です:1つのスタイルを他のものを基礎にすれば、新しいスタイルは基の特徴を受け継いでいます -- 原形のフォントを変更すればそれを基にしている全てのスタイルのフォントが変わります。

インスタンス(Instance)

インスタンスはメモリー上にあるオブジェクトです。ある意味では、もとのオブジェクトは鋳型あるいは青写真として働きます、そしてインスタンスはメモリー内で実際に活動しているそのコピー版です。

整数(Integer)

数値のデータ型。10 と -2384 は両方とも正しい整数です。454.34 は正しい整数ではありません。通常、コンピュータは実数よりも整数の計算を格段に早く行なうことができます。

Interpreter

Computer languages are either interpreted or compiled; both terms have to do with translating the English-like syntax of a programming language into assembly or machine language. An interpreted language is translated "on the fly," that is, as each line is translated, it is executed. While this makes programming easier (one less step for the user), the code generated is less efficient and therefore slower, and the resulting program cannot run without the original interpreter. For example, original versions of BASIC were interpreted, and therefore you could not run a BASIC program without BASIC on your computer. Today languages like REALbasic are compiled, so no interpreter is needed. However, unlike interpreted forms of BASIC, you cannot execute single commands and see the results immediately (i.e. type in "Print 10*20" and see the result).

リストボックス(Listbox)

リストボックスはコントロールの1つです。それは各行に1つの項目のリストが入っています。多くの行がある場合には、右側のスクロールバーによりユーザはリストをスクロールできます。リストボックスは見え方や機能を変えるための多くのオプションがあります。リストボックスは1つ以上のコラム(欄)を持つこともできます、また、チェックボックスや画像を埋め込むことも可能です、さらに個々のセルを編集可能にすることもできます。また、Finderのファイルのリスト表示のような階層的なリストボックスもつくれます、そして、フォルダの中にフォルダや項目もつくれます。

ローカライズ(Localize)

ソフトウェアを別の言語に翻訳して、発売する過程。ローカライズは複雑で困難な仕事で、十分な計画が必要です。アプリケーションで使用されるすべてのテキストを翻訳するのは困難なことです:すべてのテキストとはメニュー、エラーメッセージ、インターフェイス要素のラベル、ヘルプファイルなどを含みます。しばしば言葉の翻訳は最も簡単な部分です。例えば、英語でのボタンのラベルはうまくフィットするでしょう、しかし、別の言語では同じラベルは長すぎるかも知れません。インターフェイスをデザインするときに、ローカライズこのとを考えましょう:それは長い目で見れば時間の節約になります。

メソッド(Method)

REALbasicがメソッドと呼ぶものに対して、古典的なプログラムは「プロセジュア」あるいは「関数」あるいは「サブルーチン」 のような術語を使います。メソッドは値を返すか、あるいは返さないサブルーチンです。メソッドはウィンドウのような特別なオブジェクトに関連づけられます。これはオブジェクト間でどのようにメッセージを受け渡すかということです。例えば、汎用的なエラーメッセージのダイアログボックスをつくって、その"display"メソッド(あなたが書いたメソッド)を呼びだすこともできます。ここで、ダイアログボックスはエラーメッセージの文字列引数(パラメータ)として受け取り、そしてそのエラーメッセージをダイアログボックスに表示します。

モーダル(Modal)

プログラムがユーザを特別な状態に固着するときには、それはモーダルだと見なされます。モード(状態)とはユーザがある種のコマンドや機能しか実行できないときのことです。異なるモードでは他のコマンドが利用可能です。モードはユーザ、特に自分がどのモードにいるのかを理解するのが困難な初心者にとってよく混乱するものです。PC 用の多くの古い DOS プログラムは極度にモーダルです。一方、例外はありますが、GUI プログラムは本質的にモードレス(非モーダル)に書かれています。例えば、ファイルを開いたり保存するときには、モーダルな保存あるいはオープンダイアログが表示されます。(あなたは別のプログラムに切換えることはできますが、そのダイアログ(事実上のモード)を閉じるまで、そのプログラムではそれ以外のことはできません。)本質的に、モードレスなプログラムではユーザはどんな時でも希望するどんなことでも行なうことができます。そして、多くのユーザはそのような手法のほうがより快適に感じるのです。

モジュール(Module)

モジュールはREALbasicのコードの集まりです。モジュールは属性, メソッド, および 定数を含むことができます。モジュールに含まれるものはすべてプログラム全体に対して大局的(グローバル)です。モジュールの主要な利点は同様の関数をグループ化できることです。そして、モジュールはイクスポートすることが可能で、他のプログラムで再利用する、または他人と共用することができます。

オブジェクト(Object)

オブジェクト指向プログラミングで使われる抽象的(仮想的)な構造体。オブジェクトは任意の構造体で、自分自身のコードをも含んでいる。例えば、プッシュボタンは、どのように押されるか、押されたときに何をするかを知っているオブジェクトである。

オブジェクト指向プログラミング(Object-Oriented Programming)

自分自身のコードを持つ抽象的なオブジェクトの作成を伴うプログラミングの手法です。OOPと省略します。例えば、ウィンドウはオブジェクトです。ウィンドウはそれ自身をどのようにオープンしクローズするか、さらにユーザがタイトルバーをドラッグしたときにどのように移動するかを知っています。このように、ウィンドウを扱うすべてのコードはウィンドウ内部にカプセル化(encapsulated)ています。これは探すのを容易にするだけではなく、論理的でもあります。
オブジェクトは相互にメッセージで連絡しあいます。例えば、ダイアログボックスはウィンドウに内容を保存してクローズするように知らせることが出来ます。オブジェクトを複製するときは、そのオブジェクトのインスタンス(instance)が作成されます。インスタンスはそれ自身のデータを持つコピーであることを除いて、元のものと全く同じです。もし、書類ウィンドウがあり、ユーザが2つめの書類を開いたとすると、それぞれの書類ウィンドウは元のオブジェクトのインスタンスです。このように、OOPでは複数の書類を扱うことは容易です -- それぞれのウィンドウはその内容を知っています、また保存の仕方を知っています、そしてユーザによりどのように取り扱われるか(移動、サイズ変更など)を知っています。他のOOPの考え方の重要な点は継承(inheritance)です:あなたが変更する幾つかの点を除いて、既存のオブジェクトの全ての機能を引継いで(継承して)、そのオブジェクトの変種を作成することが可能です。例えば、REALbasicではすべてのコントルール(文字入力欄、リストボックス等々)はrectControlオブジェクトに基づいています。rectControlは幅(width)、高さ(height)、名前(name)などの基本的な属性を持っていますので、すべてのコントロールはそれらの属性を自動的に持っています。コントロールはよく似ていますがそれぞれ外見や機能が異なっていますので、それらはOOPにとっては理想的です。最初から20のオブジェクトを作る代わりに、同じソースをもとにすれば、一度にすべてのコントロールを容易に変更することができます。
ユーザはOOPで書かれたプログラムとOOPでないプログラムとの違いを知ることはできません;違いはすべてプログラムがどのように書かれるか、そして変更、修正および拡張がどれほど容易であるかにあります。OOPプログラムは(もし上手に書かれれば)、旧来のソフトウェアよりも著しく容易に作成が可能です。そして、一度オブジェクトを作成すれば、他のプログラムでそのオブジェクトを再利用することができます。例えば、インターネットで見るREALbasicのコードの多くは、あなたのプログラムにポンと放り込んで、その実際のプログラムについて理解しなくても使うことができるクラス(class)(オブジェクト)の形式です。

OOP

オブジェクト指向プログラミングを参照。

引数(パラメータ)(Parameter)

引数(パラメータ)はサブルーチン(REALbasicの言い方ではメソッド)が必要とする情報です。例えば、華氏の温度を摂氏に変換するルーチンを書くとしましょう。このルーチンは1つの引数(パラメータ)を要求するでしょう;すなわち、華氏での温度をあらわす数値です。もし、1つの数値を忘れたら、あるいは2つ以上を与えたら、または間違った種類のデータ(例えば、文字列)を与えたとすると、コンパイラはエラーを生成するでしょう。APIは本質的にサブルーチン、そしてそれが必要とする引数(パラメータ)、およびそれが返す値の集まりです。

Parse

This is a term for how a computer program "reads" some data. Essentially, parsing involves breaking data into smaller chunks and processing those. For instance, a sentence could be parsed into individual words, and each word could be translated into a command.

属性(Property)

属性(プロパティ)はオブジェクトに所属する変数です。それは通常そのオブジェクトに特有の情報あるいは設定を保持するのに使われます。例えば、ウィンドウはウィンドウの大きさを制御する幅や高さといった属性を持っています。ワープロのウィンドウはウィンドウのテキストを保持するテキスト属性を持っているでしょう。

Pushbutton

A Pushbutton is a simple control design to execute a single action. For example, a program could have a "Save" button, which saves the current document. You can programatically set the font, size, and text of a pushbutton.

REALbasic

An easy-to-use object-oriented programming language for Macintosh computers. REALbasic was originally called CrossBasic and was written by Andrew Barry. It was redubbed REALbasic by REAL Software when they took over development. REALbasic's unique feature is its ability to compile the same programming code for Windows as well as Macintosh. REALbasic is similar to Microsoft's Visual Basic language.

Recursion

This is when a routine in a program calls itself. It is said to be recursive. Recursion is powerful and makes complex programming easier, but you must be careful: if your program recurses too much, it may run out of memory and crash. It is a good idea to think of each recursive call as a thread wrapped around a spool: a some point we reach the end of the thread and we must unwind the spool. The most famous example of a recursive algorithm is the QuickSort sorting algorithm. It basically breaks a list of items into smaller and smaller problems and recursively solves the smallest, then the next smallest, etc., until all the problems are solved and the list is ordered. From a programmer's perspective that's much easier than messing with loops, since you have no idea how many levels deep the routine will need to go to solve the problem.

リソース・フォーク(Resource fork)

Mac OSは、データ・フォークとリソース・フォークからなる独自のファイルシステムを持っています。一般的に、文書ファイルではデータ・フォークのみが使用されます。リソース・フォークは、メニュー、画像、そしてテキストのようなアプリケーションのリソースを保存するようにデザインされていますが、多様なデータのタイプを保存することが可能です。他のオペレーティング・システムではこのような2つに分割されたファイルシステムは持っていないことから、ファイルのデータ・フォーク部分のみが利用可能です。

Routine

See subroutine. The terms are interchangeable.

スコープ(Scope)

全ての変数はそれらが有効な制限された「スコープ」を持っています。例えば、もし、変数 X をサブルーチンの中で作ったとすると、それはそのサブルーチンの中でだけ利用可能です -- 他のどのルーチンも X について知りません。他のルーチンはそれら自身の X を定義することは可能ですが、それぞれはそのルーチンに対して特有のものです。REALbasicでは、オブジェクト指向としての性質上、変数はウィンドウかオブジェクトに追加します:ですから、それはそのウィンドウあるいはオブジェクト内でのみ利用可能です。(ウィンドウはREALbasicの他の全てのものと同様にオブジェクトです。)変数をモジュール module の中に置いて、大局的 global として定義することが可能です -- これはプログラムの状態を表す項目(preference設定のような)には最適です、しかし、大局的な変数はそれらが実際に使用されているかいないにかかわらずメモリーを消費するので、ユーザのデータに対しては適切ではないでしょう。例えば、ワープロは複数のウィンドウを開くことができます -- 個々の文書をそのウィンドウに結びつけるのが最適でしょう。このようにすれば、ウィンドウが閉じられたときに、データ(そして、使用メモリー)もウィンドウとともに無くなります。同じ論理が他のタイプのプログラムにも適応されるでしょう。

Sprite

An animated graphic, usually a small object (like an icon of a spaceship) that travels over a background picture. Sprites are primarily used for games, but they can be used for anything that needs animating. A typical game may use dozens or even hundreds of sprites, all being animated seemingly simultaneously. (In reality, of course, sprites are animated one at a time, just so quickly that they all seem to move at once.)

文字列(String)

テキストのデータ型。文字列は文字(数字、文字、記号など)のひと続きです。あるプログラム言語では文字列の長さに制限がありますが、REALbasicではその長さはメモリー(約2GB)により制限されるだけです。例えば、小説全体を文字列としてメモリーに読み込んで、それからその文字列内の特別な言葉遣いを調べることもできます。

サブクラス(Subclass)

サブクラスはクラスをカスタム化したものです。それはオブジェクトの元のクラスのすべての属性と特性(メソッド)を継承し、さらに独自の機能を持ちます。例えば、あなたは文字入力欄(EditField)オブジェクトのサブクラスを作成し、あなたのプログラムではそれに数値しか受け付けさせられないようにすることができます。それはユーザが数値しか入力できないことを除いては、標準の文字入力欄が行うすべてのことを実行できます。サブクラスを一度作成すれば、オリジナルオブジェクトを使用するようなどんな場所でも、サブクラスを使用することができます。REALbasicでサブクラスを作成するには、Fileメニューから"New Class"を選択します、そして新しいオブジェクトを選択して、属性ウィンドウ上でサブクラス化したいクラス(例えば文字入力欄)を"Super"に設定します。それから、サブクラスを開き、そこに属性やメソッドを加えたり、あるいは既存の機能を置き換えることができます。サブクラス化はオブジェクト指向プログラミングの重要な特徴で、これによってプログラム開発の時間が大幅に節約されます。

サブルーチン(Subroutine)

通常1つの処理のためにデザインされた再利用可能な関数、手続き、あるいはメソッド。例えば、プログラムはデータのリストを五十音順に並べ替えるサブルーチンを持っているでしょう。メインプログラムのどこからでも必要なときにその並べ替えルーチンを呼び出すことが可能です。

構文(Syntax)

コンピュータ言語の文法です。人間の文法の間違った使用が教育の欠如を意味するのとは異なり、コンピュータプログラムでの不正確な文法はコンピュータがあなたを理解できなくするでしょう。等号が期待されているところにプラスを書けば、コンピュータは「構文エラー!」と叫び、そしてあなたのコードを理解するのを諦めます。多くの構文エラーは単純なタイプミス(例えば、"end if"の代わりに"endif"とタイプする)ですが、それらは相いれないデータタイプを代入しようとする(例えば、数値を期待している変数に画像を入れようとする)ことによっても引き起こされます。

構文エラー(Syntax Error)

これは、あなたのコードを解釈しようとして、あなたが何を言おうとしているかが理解できないときにプログラム言語により生成されるエラーの一種です。これは、コンピュータが些細な過ちをも極度に許容しないということを別にすれば、文法的な誤りによく似ています。例えば、単に括弧を忘れただけで構文エラーになります。構文エラーは論理的な誤り(プログラムの構造的な誤り)に較べてデバッグするのがはるかに容易です。

スレッド(Thread)

スレッドは、メイン・プログラムとは別に独自で実行するよう設計された特別なコードです。一般的に、メイン・プログラムが複雑な処理をしている間は、ユーザにプログラムのやり取りをさせずに処理装置を独り占めします。そのタスクをスレッドにすると、タスクがバックグラウンドで実行されているあいだ、プログラムは正常に反応して動作します。たとえば、Wordに5,000ページの文書を開く、あるいはPhotoshopに100MBの画像を開くよう命令することを想像してみてください。プログラマーはこれらのタスクを別のスレッドにしていなかった場合には、このタスクの実行中は他にできることは何もありません。それとは反対に、ほとんどのEmailプログラムはマルチスレッドです。コンピュータが数百の新規メッセージをダウンロードしている間でも、あなたはEmailを作成したり編集できます。スレッドは強力ですが、きわめて複雑です。たとえば、バックグラウンドで巨大なファイルを読み出すようにするために、プログラムにスレッドを追加するとしましょう。素晴らしい。しかし、ユーザはそのプログラムで作業が続けられるため、まだ完全に開かれていない文章に対して何かをしようとしたり、途中でユーザが終了した場合はどうなるでしょうか?スレッドでは、まだ準備が整っていないデータを利用するルーチン間での予想できないやり取りがあり得るために、予期しないことに対して準備しておかなければなりません。

Timer

This is a special REALbasic object that executes periodically. The delay is set in thousandths of a second. When the allotted time has elapsed, the timer can execute just once, or reset itself and execute multiple times. A timer can be used for simple animation or to periodically update the status of a display.

変数(Variable)

本質的に保存場所です。文字通り、それはメモリー内のデータが保存されている場所です。しかし、プログラマの見地からは、その内容を使うために変数名を参照するということです。数学では、変数は未知数(x など)です。プログラム言語では、x に 10(あるいは、20 or -59.3129 またはどんな値でも)を設定することができます。 ある意味では、変数 x に数値を保存しているということです。そうすれば、式の中で x を使うことができます、そしてコンピュータは x がそれが保持している数値であるかのように計算を実行します。x はプログラムの実行中に変化することが可能ですので、コンピュータは現在の値を使います。最も最新の言語では、変数は myThing, pi, または ThisVeryLongVariable999WithNumbersInsideIt のようなどのような名前でもかまいません。REALbasicでは、変数は数値、テキスト(数字を含むことが可能です)、サウンド、あるいは画像でさえ含むように定義することが可能です。明らかに、画像に計算をすることはできませんが、変数に保存されている画像をプリントすることができます。詳しくはデータ型を参照。

Visual Basic

Microsoft sells this programming environment for Windows. I know very little about it, but it's popular and supposed to be pretty good. Unfortunately, it's Windows-only, so it's of little use to Mac users.