(4):ダイアログボックス〜ローカル変数


ダイアログボックス(dialog box)

 アプリケーションから呼び出して,ユーザーに問いかけをしたり,アプリケーションの各種の設定をするための子ウィンドウのこと。一度開くと,閉じるまで親ウィンドウを操作できない場合が多く,これをモーダル・ダイアログボックスという。

モーダル・ダイアログボックス


タイプ・ライブラリ(type library)

 COM(Component Object Model)オブジェクトのプロパティやメソッド,引数や戻り値の型などを伝えるために,オブジェクト参照宣言が記述されているファイルのこと。

COM引数プロパティメソッド戻り値


定数

 プログラム中で常に値の変わらないデータに名前を付けたもの。途中で値を変更したくなったとき,複数個所で参照していても,定数を宣言している1カ所を直すだけで済む。具体的な数値の代わりに内容を表す名前で参照することで,ソースコードが読みやすくなるというメリットもある。

変数


デザイン・パターン

 オブジェクト指向のソフト開発で,ある機能を実現するためのソフト部品(クラス)の組み合わせ方や使い方を規定したもの。よく使われるクラス構造のひな型をまとめたカタログのようなもの,と言える。デザイン・パターンを再利用すれば,毎回すべてゼロから自分で考えてコードを書く必要がなくなるので,生産性や保守性を高められる。

オブジェクト指向クラス


デストラクタ(destructor)

 オブジェクト指向言語でオブジェクトを破棄するときに実行される関数。オブジェクトの終了処理を記述しておくのが普通。
 C++では,クラス名の前にチルダ(~)を付加した名前を持つメソッドを定義すれば,それがデストラクタとなり,オブジェクトを破棄する際に自動的に呼び出されるようになる。このおかげでうっかり終了処理を忘れるといったミスを防ぐことができる。Javaではfinalizeという名前のメソッド(ファイナライザと呼ぶ)が同様の役割を果たす。Delphiでは,destructorキーワードを付けて宣言したメソッドがデストラクタとなり,これを明示的に呼び出すことによってオブジェクトを破棄する。

コンストラクタ


デバイス・コンテキスト(device context)

 Windowsで,ディスプレイやプリンタなどの表示デバイスに出力する際に必要な描画情報を保持するメモリー領域のこと。WindowsアプリケーションからAPIを直接呼び出してウィンドウに描画する際には,最初にデバイス・コンテキストへのハンドルを取得し,描画が終わったら解放する。

API


デバッグ(debug)

 プログラムの誤動作の原因となるミス(バグ)を発見して取り除く(プログラムを修正する)作業のこと。多くの開発ツールには,バグを発見し,修正作業を支援するためのデバッガと呼ぶプログラムが付属している。

バグ


トランザクション(transaction)

 クライアントがサーバーに対しリクエストを発行しその応答を得るまでの,不可分な一連のまとまった処理のこと。

クライアント/サーバー・システム


トリガー(trigger)

 データベースのテーブルに対して挿入/変更/削除などが行われたときに,実行されるストアド・プロシジャの一種。主に,データベースが管理しているデータの整合性を保つために使われる。

RDBストアド・プロシジャ


二分木

 数多くのデータを管理するためのデータ構造の一つ。ノードと呼ばれるメモリー領域をデータの数だけ用意して,各ノードが最大2個の「子ノード」を持つように親子関係を定義する。各ノードには,データ本体に加えて自分の子となるノードを指すアドレスを格納しておく。ノードがふたまたに枝別れしていくような構造を持つので二分木と呼ぶ。


二分探索

 データ検索アルゴリズムの一つ。あらかじめ何らかの基準に基づいてソートしたデータ列の中からデータを検索する。例えば,データ列の要素が整数値である場合,これを小さい順に並べたうえで,
(1)検索する値とデータ列の中央の値を比較する
(2)検索する値のほうが小さければ列の前半分に,大きければ後ろ半分にあることになるので,再びそれらの中央の値をとって比較する
を繰り返すことで検索を行う。データの個数をnとしたとき,検索に要する時間はlog nに比例して増加する。


ネイティブ・コード(native code)

 CPU(プロセサ)が直接理解できる機械語のコードのこと。中間コードの対の語。2進数(0と1)で構成されている。CPUが直接実行するため,実行速度が速い。Visual Basicは,5.0版のProfessional Edition以上からネイティブ・コード・コンパイラを搭載し,高速なプログラムが作れるようになった。

機械語コンパイラ


排他制御

 プロセス間で共有するリソースに対して,複数のプロセスが同時にアクセスできないようにすること。ファイルやデータベースのデータなどを,複数のユーザーが同時に更新できないようにするというのがその例である。Microsoft Officeなどでは,ネットワーク上の共有ファイルをだれかが開いていると,ほかの人がそのファイルを更新(書き出し)できないようにしている(読み込みはできる)。


バイトコード(byte code)

 Javaのソースコードをコンパイルすると生成される中間言語。バイトコードは特定のOSやCPUには依存せず,どんなOS,CPU上でコンパイルしても同一のものができる。このバイトコードは,各OS/ブラウザなどに対応したJavaの実行環境であるJava VMで動作する。

JavaJava VMインタプリタコンパイラ機械語


配列

 複数の変数を同じ名前で扱えるようにする仕組みのこと。変数名の後にカッコを付け,その中に配列化した個々の変数を示す数字(インデックスと呼ぶ)を記述する。

変数


バインディング(binding)

 オブジェクトへの参照/ポインタから起動されたメソッド呼び出しを,実際に呼び出される関数本体のアドレスに結び付ける(バインドする)こと。コンパイル時にバインドする場合を「アーリー・バインディング(early binding)」,実行時にバインドすることを「レイト・バインディング(late binding)」と呼ぶ。レイト・バインディングは,実行時にならないと呼び出すべきメソッドが決まらないような場合でも利用できる半面,実行速度が遅くなることが多い。
 Visual Basicの場合,タイプ・ライブラリを参照設定し,オブジェクト変数の型を明示的に宣言して利用するときはアーリー・バインディングに,変数をObject型と宣言したときはレイト・バインディングになる。C++の場合,普通の関数はアーリー・バインディングに,仮想関数はレイト・バインディングになる。

仮想関数タイプ・ライブラリ


バグ(bug)

 プログラムの誤動作の原因となる,コードや文法上のミスのこと。バグとは虫のこと。コンピュータが真空管を使っていた時代,コンピュータの中に虫が入りこんで誤動作を起こしたことから,このように呼ばれるようになった。バグを取り除く(プログラムを修正する)作業をデバッグという。

デバッグ


バッファ(buffer)

 一時的にデータを蓄えるメモリー領域のこと。例えば,処理が速い装置から遅い装置にデータを送る際に,送信の待ち時間を減らしたり,データがあふれるのを防いだりするために用いられる。


ハンガリー記法

 変数の名前付け規則の一つ。ハンガリアン記法とも呼ばれる。変数名の先頭にデータ型を表すプリフィックスを付加するというもので,Windowsプログラミングでよく利用される。例えば,名前を表すString型の変数なら,String型を表す“str”を先頭に付加して“strName”のようにする。ハンガリー出身の有名なプログラマCharles Simonyiにちなんでこう呼ばれる。


ハンドル

 ファイル,ウィンドウ,プロセス,スレッドなどを識別するための整数値。ファイルのハンドルのことを特にファイル・ハンドル,ウィンドウの場合をウインドウ・ハンドルと呼ぶ。

スレッドプロセス


引数

 プロシジャを呼び出すときに,プロシジャに渡すパラメータのこと。「ひきすう」と読む。特に,プロシジャの定義部のカッコの中に現れる引数を仮引数,プロシジャを実際に呼び出す際にそこに指定する値を実引数と呼ぶ。例えば,
Function Max(A As Long, _
B As Long) As Long
...
と定義されている関数を
Value = Max(5, 2)
と呼び出す場合,“A”や“B”が仮引数,“5”や“2”が実引数となる。

関数プロシジャ


ヒープ(heap)

 (1)プログラムが動的にメモリーを割り当てるために,OSや開発ツールが用意しているメモリー領域。CのmallocやC++のnew演算子などを利用する場合は,この領域からメモリーが割り当てられる。
 (2)多数のデータを管理するためのデータ構造の一つ。論理的には,すべてのノードに対して「親が子より大きいか,等しい」という関係が成り立つような二分木である。配列の添え字をうまく扱うことで実装するのが普通。優先順位付きキューの実装やソート(ヒープ・ソートと呼ぶ)に利用される。

キュースタック二分木


標準入出力

 WindowsやMS-DOS,UNIXなどのOSが,アプリケーションの標準的な入出力のために用意している論理的なデバイス。標準入力,標準出力,標準エラー出力の三つがある。コンソール・アプリケーションでは,デフォルトで標準入力がキーボード入力に,標準出力と標準エラー出力がコンソール画面への出力になる。入出力先をファイルやプリンタなどに変更する(リダイレクトする)こともできる。また,パイプと呼ばれる機能を使って,あるアプリケーションの出力を別のアプリケーションの入力として利用することも可能。標準Cライブラリのprintf,scanfなどの関数は標準入出力に対して入出力を行う。


標準モジュール

 Visual Basicで,他の複数のモジュールから利用するためのプロシジャや変数/定数,構造体の定義などを記述するためのファイル(コード・モジュール)。拡張子はBAS。

モジュール


ビルド(build)

 ソース・ファイルをコンパイル/リンクして実行ファイルを作成すること。

コンパイラリンク


フォーカス(focus)

 Windowsで画面上に複数のウィンドウがある場合,ユーザーによるキーボード入力を受け取るのはその中のどれか一つに限られる。ある時点で特定のウィンドウがキーボード入力を受け取る状態であるとき,そのウィンドウは「フォーカスを持つ」という。
 エディット・コントロール(コントロールもウィンドウの一種である)などのテキスト入力系コントロールの場合,縦の棒(|)が点滅することでフォーカスを持つ状態であることを示す。ボタンでは,ボタンの上の文字が点線で囲まれていることで入力待ち状態を示している。フォーカスは,Tabキーで次のコントロールに移動できることが多い。

コントロール


フォーム(form)

 アプリケーションの画面を作成する際に,テキストボックスやボタンなどのソフトウエア部品を貼り付ける土台(つまりウィンドウ)となるソフトウエア部品のこと。Visual Basicをはじめとするビジュアル開発ツールで用いられる。

コンテナコントロールコンポーネント


フラグ(flag)

 プログラムの実行中の状態を「真」か「偽」という2値で保持する変数のこと。旗を上げ下げするように,状態が真か偽かどちらかを示すことからこのように呼ばれる。真か偽かの二つの値しかないので,Boolean(論理型)の変数にするのが一般的である。

変数


プリプロセサ・ディレクティブ

 ソースコードをコンパイルする前に実行される命令。コンパイラの動作を制御するために利用する。プリプロセサ・マクロもしくは単にマクロと呼ばれることも多い。例えば,ソースコード中にC言語の#includeディレクティブを記述しておけば,指定したファイルの内容がコンパイル前に読み込まれる。また#defineディレクティブを使って
#define PI 3.14159
と記述しておけば,コンパイルされる前にソースコード中のPIというシンボルがすべて3.14159に置き換えられる。Visual Basicも#Constや#Ifなどの命令をサポートしている。


フレンド関数

 オブジェクト指向の用語のひとつ。あるクラスの中でprotectedまたはprivateと宣言された変数に対して,アクセスを許されている外部の関数のこと。protected/private宣言した変数は,そのクラスの外部からは一切アクセスできない。しかしクラス内でフレンド関数として宣言しておくと,それらの変数にもアクセスできるようになる。

オブジェクト指向関数クラス変数


プロジェクト・ファイル(project file)

 プロジェクトは,プログラムの実行ファイルを作るために必要なファイルの集まりのこと。プロジェクトを構成する個々のファイルをソース・ファイルと呼び,個々のソース・ファイルの名前や,ファイルを保存する場所などを管理するためのファイルをプロジェクト・ファイルと呼ぶ。Visual Basicの場合,拡張子がvbpのファイルを指す。


プロシジャ(procedure)

 プログラム内で,一つの処理を実行する単位のこと。Visual Basicの場合,「Private Sub」から「End Sub」までの間に処理内容を記述するので,この部分が一つのプロシジャということになる。

関数


プロセス(process)

 プログラムを実行する際に,OSが資源を割り当てる単位。資源とは,CPU,アドレス空間,ファイル・ハンドルなどのこと。「マルチタスクOS」というときのタスクとプロセスはほぼ同義。一つのプロセスを複数のスレッドに分割した場合,スタック領域はスレッドごとに割り当てられるものの,アドレス空間やファイル・ハンドルなどは共有される。

スレッド


プロトタイプ宣言(prototype declaration)

 関数の名前や引数の型と個数,戻り値の型などを記述した宣言のこと。一つのソース・ファイル中で,関数を実際に定義する(関数の中身のコードを記述する)よりも前にその関数を呼び出す場合や,関数定義を記述したファイルとは別のファイルでその関数を呼び出す場合は,呼び出しの前にプロトタイプ宣言を記述しておくのが基本である。そうしないとコンパイル/リンク・エラーになったり,期待した通りに動作しないなどの問題が発生する。すべての呼び出しが関数定義の後に現れる場合には記述しなくてもよい。ちなみに「プロトタイプ宣言→呼び出し→関数定義」の順で書いた場合,プロトタイプ宣言と関数定義で引数の名前が一致する必要はない。また,プロトタイプ宣言の引数は,型が明確であればいいので,省略してもかまわない。

関数引数戻り値


プロパティ(property)

 開発ツールで使用するコントロールやコンポーネントといったソフトウエア部品の属性(大きさや色,名前など)のこと。設定項目は複数あり,これらを変更することで,アプリケーションに合ったソフトウエア部品にカスタマイズできる。一般には,プロパティ・ウィンドウでデザイン時に設定することも,実行時にソースコード中で設定/変更することも可能だが,プロパティによってはどちらか一方しかできないこともある。

コントロールコンポーネント


並列処理

 一連の処理を分割し,複数のCPU(プロセサ)で同時に行うことで,処理速度を向上させたり,処理にかかる負荷を分散させること。

スレッド


ページ違反

 多くのCPUは,メモリー領域を「ページ」という一定の大きさに分割して管理する。プログラム実行時,CPUはプログラムが指定する仮想アドレスを物理アドレスに変換するが,その際,物理メモリーが存在しない仮想アドレスができる場合もある。そして,プログラムが物理メモリーとして存在しないページにアクセスしようとした場合,CPUが例外を発生する。これがページ違反である。
 このほか,各ページには読み書き禁止や書き込み禁止などの属性を指定することもできる。プログラムがこれらの属性に違反するアクセスをした場合にも,ページ違反が発生する。C/C++でNULLポインタの参照先をアクセスしようとするプログラムをWindows上で実行すると,ページ違反で強制終了するのはこのためである。

例外


ヘッダー・ファイル(header file)

 C/C++のソース・ファイルのうち,クラスや構造体,関数プロトタイプの宣言などを記述したファイルのこと。include文に続いて書かれるので,インクルード・ファイルとも呼ばれる。

CC++ソースコード


変数

 プログラムで,数値や文字列などのデータを格納するための入れ物のこと。格納されたデータはメモリーに保持される。一つの変数には一度に一つの値しか格納することができず,新しい値が格納される際は,前の値と置き換える。多くのプログラミング言語では,変数を使う前に,変数名と格納するデータの型を宣言しなければならない。Visual Basic(6.0まで)は,宣言していない変数が出てきた場合,Variant型と判断する。


ポインタ(pointer)

 値そのものではなく,値を格納したメモリーのアドレスを保持する変数のこと。

変数


ポリモーフィズム(polymorphism)

 オブジェクト指向言語において,「メッセージ」をオブジェクトに対して送ったときに,オブジェクトの種類に応じて違った振る舞いをすることを指す。「多態性」などともいう。オーバーライドなどによって実現する。

オーバーライドオブジェクト指向仮想関数メッセージ


マクロ(macro)

 アプリケーションにおいて,一連の処理を自動化するもの。マイクロソフトのOffice製品には,マクロをプログラミング言語として記述できるVBA(Visual Basic for Applications)が付属している。

VBA


マーシャリング(marshaling)

 別のプロセスとして動作するオブジェクトのメソッドを呼び出す際に,引数などをパッケージ化すること。

COM


マルチタスクOS(multitask OS)

 同時に複数のプログラムを並行して実行できるOSのこと。WindowsやUNIXはマルチタスクOSである。反対に,同時に一つのプログラムしか実行できないOSをシングルタスクOSという。

UNIX


ミドルウエア(middleware)

 OSやDBMS(データベース管理システム)とアプリケーションの中間に存在し,アプリケーションに対して何らかのサービスを提供するためのソフトウエア。DBMSをミドルウエアに含める場合もある。

RDB


メソッド(method)

 オブジェクト指向で,オブジェクトが持つデータに対する操作(手続き)のこと。C++ではメンバー関数とも呼ぶ。オブジェクトはデータとメソッドを一体化したものである。原則として,オブジェクトのデータに対してはメソッド経由でしかアクセスできない。これをカプセル化という。

オブジェクト指向カプセル化関数クラス


メッセージ(message)

 プログラム間,あるいはプログラム内でやりとりされる情報のこと。例えばWindowsは,ウィンドウにイベントが発生したことを知らせるためにメッセージ(ウィンドウ・メッセージ)を送る。オブジェクト指向では,オブジェクト同士が通信し合う手段としてメッセージを使う。なおC++やJava,Delphiなどの多くのオブジェクト指向言語では,「メッセージを送る」は「メソッド(メンバー関数)を呼び出す」ことに対応する。

イベント


メッセージ・キュー

 アプリケーションが処理すべきウィンドウ・メッセージを蓄えておくために,アプリケーションごとに割り当てられるメモリー領域。ユーザーがマウスやキーボードなどを操作したとき,Windowsは対応するウィンドウ・メッセージをアプリケーションのメッセージ・キューに格納する。アプリケーションはメッセージ・ループの中でこのメッセージを取り出してウィンドウに転送し,ウィンドウ・プロシジャの中で対応する処理を実行する。

ウィンドウ・プロシジャキューメッセージメッセージ・ループ


メッセージ・マップ

 MFCアプリケーションにおいて,ウィンドウ・メッセージと,そのメッセージを受け取ったときに呼び出される関数(メッセージ・ハンドラ)の対応を定義するもの。ソースコード中にMFCが用意するメッセージ・マップ・マクロを使って記述する。Visual C++のAppWizardやClassWizardを利用する場合は,マクロが自動的に生成されるため,直接手で記述する必要はない。

MFCメッセージ


メッセージ・ループ

 アプリケーションの中で,メッセージ・キューからウィンドウ・メッセージを取り出してウィンドウに転送する処理を記述したループ。

メッセージメッセージ・キュー


メモリー・リーク(memory leak)

 アプリケーションが動的に確保したメモリーをきちんと解放しないために,利用可能なメモリー領域が減少すること。パフォーマンスの低下やハングアップなど,システムを不安定にさせる大きな原因の一つとなる。


メンバー変数

 オブジェクト指向で,クラスが内部に持つ変数のこと。クラスの外部からは,その変数にアクセスできないようにすることが多い(カプセル化)。同様に,クラスが内部に持つ関数をメンバー関数という。

オブジェクト指向カプセル化関数変数メソッド


モジュール(module)

 ビジュアル開発ツールで,プログラムを構成する要素をまとめたファイルの総称のこと。Visual Basicではフォーム・モジュール(frm),標準モジュール(bas),クラス・モジュール(cls)などがある。これらのモジュールは一つのファイルとして独立しているので,作成後はほかのプロジェクトからも利用できる。
 一般には,ある程度の独立性を持つプログラムのまとまり(たいていは一つのファイル)のことをモジュールと言うことが多い。ソースコードのモジュールをコード・モジュール,それをコンパイルして得られる機械語のモジュールをオブジェクト・モジュール,またEXEやDLLなどを実行モジュール,DLLモジュールなどと呼ぶ。

標準モジュールプロジェクト・ファイル


モーダル・ダイアログボックス(modal dialog box)

 いったん開くと閉じるまでその親ウィンドウ(通常はアプリケーションのメイン・ウィンドウ)を操作できないダイアログボックス。これに対して,ダイアログを開いたままで親ウィンドウを操作できるものをモードレス・ダイアログボックスという。

ダイアログボックス


戻り値(return value)

 関数を実行した結果,得られる値のこと。「返り値」ともいう。関数内での処理の結果や,処理が成功したかどうかなどの情報を,呼び出し元に伝えるのに利用する。

関数


ユーザー定義型

 言語が提供する型を組み合わせて,プログラマが独自に定義したデータ型のこと。Visual Basicの場合,Type〜End Typeというステートメントを使ってユーザー定義型を作成する。


ユニット(unit)

 Delphiにおけるプログラムの翻訳単位(コンパイルを行う単位)。一つのPASファイルが一つのユニットとなる。プログラムを構成するユニットが複数ある場合,各ユニットは個別にコンパイルされ,最後にリンクされる。

コンパイラリンク


予約語

 ステートメント名や関数名,演算子など,言語があらかじめ用意している文字列のこと。ユーザーが変数や関数に名前を付ける場合,この予約語と同じ文字列を使うことはできない。

関数変数


ライブラリ(library)

 関数やクラス,コンポーネントなどを利用しやすいようにまとめたもの。DLL(Dynamic Link Library)は関数を,クラスライブラリはクラスをひとまとめにしたものを指す。

DLL関数クラスライブラリ


ラッピング(wrapping)

 “wrap”は包み込むという意味の英語で,ある機能を利用しやすくするためにその機能を内包したクラスを作ったり,既存のオブジェクトをほかのオブジェクト技術/言語から扱うためのインタフェースを実装したりすることを指す。

オブジェクト指向クラス


ランタイム(runtime)

 実行ファイルを実行するために必要なファイルのこと。「ランタイム・ファイル」「ランタイム・モジュール」ともいう。プログラムを開始/終了する機能やユーザー・インタフェースを構成する部品,組み込み関数やステートメントなどで構成されている。Visual Basic 6.0では,Msvbvm60.dllやVb6j.dllがそれにあたる。Visual C++,Delphi,C++Builderは,ランタイムを実行ファイルに組み込むか,別ファイルにするかを選択できる。

Visual Basic


リソース(resource)

 (1)プログラムが実行時に使用/消費するさまざまな資源のこと。具体的にはCPUパワー,メモリー,ハードディスクなどのハードウエア資源や,GDIリソースなどのOSが管理するメモリー領域などを指す。(2)Windowsの実行ファイルが含むデータの一種。プログラム中で定義した静的データ領域と違い,実行時に必要に応じてメモリーにロードしたり,破棄したりできる。メニューやダイアログボックスの定義,アイコンやカーソル,ビットマップなどを格納するのに利用する。


リレーションシップ(relationship)

 RDB(リレーショナル・データベース)において,二つのテーブルに同じ意味を持つフィールドを定義することでテーブル同士を関連付けること。例えば,「顧客名簿」テーブルに「顧客ID」「名前」などのフィールドを定義し,「販売履歴」テーブルに「伝票No」「顧客ID」などのフィールドを定義した場合,「顧客ID」フィールドによって二つのテーブルが関連付けられる。これを利用して,販売履歴テーブルから顧客の名前や住所を参照することができる。ただし,このような参照が可能なためには,顧客名簿テーブルにない顧客IDが販売管理テーブルに存在する,といったことがあってはならない。こうした複数テーブル間の整合性のことを参照整合性と呼ぶ。

RDB


リンク(link)

 複数のオブジェクト・ファイルやライブラリをつなぎ合わせて実行ファイルを作ること。リンクを行うためのプログラムを「リンカー」という。

DLLスタティック・リンク


リンクリスト

 数多くのデータを管理するためのデータ構造の一つ。セルと呼ばれるメモリー領域を数珠つなぎにしたような構造を持ち,各セルにデータ本体と「次のセル」を指すアドレスを格納する。「次のセル」を指すポインタを利用してセルを順にたどっていくことで,すべてのデータをアクセスできる。各セルに「前のセル」と「次のセル」の両方のアドレスを格納する形式を,特に双方向リンクリストと呼ぶ。


例外(exception)

 アプリケーションの実行の正常な流れを中断するエラー条件やイベントなどのこと。例外が生成されると,現在の実行ポイントから例外ハンドラに制御が移る。

イベントエラー処理


レジストリ(registry)

 Windowsがシステム情報(接続されている周辺機器や,ユーザー情報,インストールしたファイルなど)を管理するためのデータベース。アプリケーションが独自の情報を保存するのにも利用できる。


ローカル変数

 宣言したプロシジャ内だけで使うことのできる変数のこと。プロシジャ・レベルの変数とも言う。

スコーププロシジャ変数


用語集のトップ・ページへ / CD-ROMのトップ・ページへ


Copyright (c)2001-2002 Nikkei Business Publications, Inc. All Rights Reserved.