(3):アクセス・キー〜ソースコード


アクセス・キー

 Windowsアプリケーションのメニュー項目を,Altキーとの組み合わせで選択するときのキー。メニュー項目の後ろに下線付きで表示されるのが普通。例えば,Microsoft Wordの「ファイル(F)」というドロップダウン・メニューの中の「上書き保存(S) Ctrl+S」というメニュー項目は,Altキーを押しながら順にF,Sのキーを押すと選択できる。このFやSがアクセス・キーである。

アクセラレータ・キー


アクセラレータ・キー

 Windowsアプリケーションのメニュー項目をキーボードで選択する方法の一つ。Ctrlキーとの組み合わせで選択する場合が多く,通常はメニュー項目の右側に表示される。Microsoft Wordの「ファイル(F)」メニューの下の「上書き保存(S) Ctrl+S」というメニュー項目なら,Ctrl+Sがアクセラレータ・キーになり,CtrlキーとSキーを同時に押すことで選択できる。アクセス・キーと違い,一回のキー操作でメニュー項目を選択できる。

アクセス・キー


アセンブリ言語

 プログラミング言語のひとつ。プログラミング言語は大きく,(1)機械語,(2)アセンブリ言語,(3)高級言語の三つに分けられる。BASICやC/C++,COBOL,FORTRAN,Java,Pascalなどはすべて高級言語である(C/C++は高級言語の中では少しアセンブリ言語に近い)。アセンブリ言語はこれらと機械語の中間に位置する言語で,プロセサが直接実行する機械語命令と一対一に対応する英文字列(ニーモニックと呼ぶ)を用いてソース・ファイルを記述する。単なる数値の列である機械語を人間がそのまま扱うのは大変なので,それをわかりやすい文字列で記述できるようにしたものと考えればよい。このソース・ファイルをアセンブラと呼ぶソフトで機械語に変換し,リンクすることで実行ファイルを作成する。
 アセンブリ言語は,プロセサが直接実行する機械語命令と一対一に対応するために細かい制御が可能であり,うまく記述すればプロセサの能力を最大限に引き出すことができる。半面,高級言語と比較して同じ処理を記述するのにはるかに多くの行数を必要とするため,生産性が悪くなることは避けられない。このため,現在ではプログラムのサイズや実行速度が何よりも優先されるような場合に限って利用されることが多い。

BASICCC++COBOLFORTRANJavaPascal機械語


値渡し(call by value,pass by value)

 サブルーチンや関数,プロシジャなどを呼び出す場合に,引数を「値」で渡す方法。値渡しでは,呼び出し元で引数に与えた変数/定数(実引数)の値がプロシジャ内部で定義された引数(仮引数)にいったんコピーされてから利用される。このため,プロシジャ内部で引数の値を変更しても,呼び出し元の変数の値は変わらない。これによって,プロシジャ間の独立性を高めることができるというメリットがある。
 半面,サイズの大きな構造体やオブジェクトを渡す場合には,メモリーの消費量が大きくなり,またコピーに要する時間のぶんだけ呼び出しに時間がかかるという欠点がある。他に「参照渡し」という方法がある。C/C++では,デフォルトで値渡しになるが,Visual Basic(6.0まで)では,引数を明示的にByValと宣言しない限り参照渡しになる。

参照渡し引数


アドイン(add-in)

 何かを付け加えること,または付け加えるソフトウエア。例えば「Visual Basicのアドイン」といえば,Visual Basicに付け加えて利用するソフトウエアのことを指す。


アドレス(address)

 メモリーの特定の場所を示す「番地」のこと。


アプリケーション・サーバー(application server)

 3階層型のクライアント/サーバー・システムにおいて,中間層に位置するサーバーのこと。ビジネス・ロジックを格納したプログラムを実行する機能を持ち,トランザクション処理や負荷分散機能なども備える。EJB(Enterprise JavaBeans)のようなサーバーサイドのコンポーネントを実行/管理する機能を装備するものもある。

3階層型システムEJBクライアント/サーバー・システム


アプレット(applet)

 「小さなアプリケーション」のこと。例えばJavaのアプレットは,ダウンロードしてWebブラウザ上で実行されるアプリケーションを指す。また,Windowsのコントロール・パネルのアプレットといえば,コントロール・パネルから呼び出す小型のアプリケーションになる。


アルゴリズム(algorithm)

 プログラムにおいて,ある問題を解くための手法や考え方のこと。算法ともいう。実際に書かれたコードはアルゴリズムとは呼ばない。それはアルゴリズムの実装例である。優れたアルゴリズムの存在を知っておくことはプログラムを書くのに役立つ。


イベント(event)

 ユーザーの操作などに対応して発生するもの。例えばWindowsとVisual Basicの環境でプログラムを書いている場合,実行時にボタン・コントロールを押すと,そのボタン・コントロールがイベントを発生する。イベントに対応したプロシジャ(イベント・プロシジャまたはイベント・ハンドラ)を作って必要な処理を記述しておけば,ユーザーの操作に応じた処理を実行することができる。イベントに応じて動くプログラムを「イベント・ドリブン」と呼ぶ。

メッセージ


インスタンス(instance)

 実体という意味の用語。オブジェクト指向プログラミングで「クラス」と対になってよく用いられる。たとえて言えば,クラスがケーキの型で,インスタンスが型に沿って作ったケーキと考えればよい。型を食べることはできないが,型があればたくさんのケーキを焼くことができる。オブジェクト指向プログラミングでは,クラスに従ってインスタンスを生成し,インスタンスを利用して処理を行い,最後にインスタンスを破棄する,という流れでコードを書くことが多い。

オブジェクト指向クラス


インタフェース(interface)

 (1)異なるものの接点となる部分。例えばコンピュータとモデムの接点となる部分は「シリアル・インタフェース」,開発ツールとWindowsの接点は「Windows API」である。(2)オブジェクト指向において,クラスが公開している(Public宣言した)メソッドのこと。Visual Basic(6.0まで)はいわゆるオブジェクト指向の継承機能は持たないが,インタフェースを継承することはできる。

APIWindows APIオブジェクト指向クラス継承メソッド


インタプリタ(interpreter)

 逐次翻訳方式のこと。高級言語(BASICやCなど)で書かれたプログラムを実行するには,それをCPU(プロセサ)が理解できるような機械語に翻訳する必要がある。コンパイラは一気に機械語に翻訳するのに対し,インタプリタは逐次翻訳して実行する方式をとる。このため,実行速度は遅いが,開発途中で翻訳の待ち時間があまり苦痛にならないというメリットがある。デバッグ時にも有効だ。

機械語コンパイラ


インデント(indent)

 「字下げ」ともいう。ソースコードを読みやすくするために,プロシジャの中の処理部分などの行の先頭にタブやスペースを入れて,その行を右に数文字下げ,段差を付けること。空白の幅の単位は特に決まりはないが,タブ一つ分にする人が多いようだ。

ソースコード


インライン関数(inline function)

 関数を呼び出した場所に関数本体のコードがそのまま展開されるような関数。引数の値を呼び出し先にコピーするといった関数呼び出しに伴うオーバーヘッドがないため,普通の関数に比べて高速に呼び出すことができる。C/C++の場合,関数をインライン展開するようコンパイラに指示するには,関数の宣言部に“inline”と記述する。ただし,関数の構造が複雑な場合はインライン展開されないこともある。

スタック引数


ウィンドウ・クラス

 Windowsにおいて,ウィンドウのタイトルバーの有無や境界のスタイル,メッセージに対してどう振る舞うかなどの基本的な性質を定義するもの。APIを使って直接ウィンドウを作成するときは,まずウィンドウ・クラスをWindowsに登録した後,それに基づいてウィンドウを作成するという手順を踏む。オブジェクト指向のクラスと同様,一つのウィンドウ・クラスから同じ性質を持つウィンドウの実体(インスタンス)をたくさん作ることができる。ウィンドウ・クラスには,アプリケーションが独自に定義するもののほかに,ボタンやリストボックスなどのコントロールのようにWindowsがあらかじめ用意しているものもある。

コントロールメッセージ


ウィンドウ・プロシジャ

 ウィンドウ・メッセージに対してウィンドウがどう振る舞うかを記述したプロシジャ。アプリケーションが何らかのメッセージを受け取った時点で呼び出される。WM_KEYDOWNメッセージに対して入力文字を表示する,WM_PAINTメッセージに対してウィンドウを再描画するといったように,受け取ったメッセージに応じてSelect〜Case(Visual Basicの場合)やswitch〜case(C/C++の場合)で分岐し,それぞれのメッセージに対する処理を記述するのが普通。Visual Basicなどのビジュアル開発ツールの場合,ウィンドウ・プロシジャは内部に隠ぺいされているため,サブクラス化を行うなどの特殊な場合を除いて自分で記述する必要はない。

サブクラス化メッセージ


エラー処理

 プログラムの実行中にどのようなエラーが発生するかを前もって予測し,対応する処理をプログラムに記述しておくこと。この場合のエラーとは,文法上は特に誤りがないのにプログラムの実行中に発生するもの(実行時エラー)を指す。例えば,ユーザーが予期しない操作をする,ファイルの読み書きに失敗する,などが原因となる。エラー処理を行っていないと,このような場合にプログラムが突然終了してしまうことがある。

バグ


オートメーション(Automation)

 COM(Component Object Model)ベースのアプリケーションやコンポーネントが備えるプロパティやメソッドを,ほかのプログラムから利用できるようにする仕組み。従来はOLEオートメーションと呼ばれていた。この機構を使うことで,複数のアプリケーションを連携させて特定の作業を自動化できる。Visual BasicやVBAなどで使われる。

VBAVisual Basicコンポーネント


オーナー描画

 ボタン,リストボックスなどのコントロールやメニューの描画内容をカスタマイズするための手法の一つ。コントロールやメニューの描画領域は,必要に応じてWindowsが自動的に描画するようになっているが,これをアプリケーション側で描画することで実現する。ボタンにビットマップを表示したり,リストボックスにアイコンを表示するといったことが可能になる。

コントロール


オーバーライド(override)

 オブジェクト指向の用語のひとつ。基底クラス(親クラス)内のメソッド(メンバー関数)と同じ名前や引数を持つメソッドを派生クラス(子クラス)で定義すること。基底クラスの振る舞いを派生クラスで変更することで,ポリモーフィズムを実現できる。

オブジェクト指向関数クラスポリモーフィズム


オーバーロード(overload)

 ある関数に対して,名前が同じで引数の型や個数が異なる別の関数を定義すること。多重定義とも呼ぶ。例えば,二つの整数のうちの大きいほうを返す関数max(int a, int b)があるときに,三つの整数の中から最大のものを返す関数max(int a, int b, int c)を定義することを指す。同じ役割を持つ関数に同じ名前を付けることで,ソースコードの可読性を高めることができる。C++では演算子(+や−などの演算を表す記号)のオーバーロードも可能。ただ,適切に利用すればソースコードを簡潔に記述できる半面,演算子本来の意味を損なう定義をしてしまうと思わぬ副作用が発生したり,ソースコードが読みにくくなったりすることもある。

関数


オブジェクト(object)

 (1)オブジェクト指向において,設計図となるクラスを基に生成されたもの。インスタンスともいう。ただし,クラスのことをオブジェクトと呼ぶこともある(Smalltalkなど)。(2)ソースコードをコンパイルして生成された機械語のファイルのこと。(3)Visual Basicにおける,フォームやコントロールなど,プログラムを構成する部品の総称。

機械語クラスソースコード


オブジェクト指向(object oriented)

 モノ(オブジェクト)のあり方に注目して,データとその機能を一体化して扱うこと。C++やJavaなどの言語はこの考えを取り入れたオブジェクト指向プログラミング言語である。Visual BasicやDelphiなどの開発ツールも,部分的にオブジェクト指向の考え方を取り入れている。

C++Javaクラス


オープン・ソース(open source)

 ソフトウエアのソースコードを公開し,ユーザーがソフトウエアの内容を自由に改変したり,改変したソフトウエアを再配布できること。UNIX互換OSのLinuxはオープン・ソース・ソフトウエアとして公開されたため,世界各国のプログラマによってバグ・フィックスや機能追加が施された。これがオープン・ソースの世界的なブームのきっかけとなった。

Linuxソースコード


カスタム・コントロール(custom control)

 市販コントロール製品やユーザーが作成したコントロールなど,後から組み込んで使うコントロールのこと。ただ,どちらかというとVBX時代の言葉で,最近はあまり用いられない。Visual Basicのツールボックスに標準で備わっているコントロール(ソフトウエア部品)は標準コントロールという。

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


仮想関数(virtual function)

 C++で,メンバー関数がオブジェクトのポインタや参照に対して起動されたときに,ポインタや参照の型ではなく,それらが実際に指すオブジェクトのメンバー関数が呼び出されるような関数のこと。ポリモーフィズムを実現するために使う。Delphiでは,同様の関数を仮想メソッドと呼ぶ。C++とDelphiでは,関数宣言時に“virtual”と記述すると仮想関数/メソッドになる。Javaの場合は,特に宣言しなくてもすべてのメソッドが仮想関数のように振る舞う。

ポリモーフィズム


型(type)

 変数で使用できる値の範囲や,それらに対するコードで何を操作できるのかを定義するもの。変数を宣言する際に指定する。扱う値の種類(数値か文字列かなど)や,数値の範囲によって複数の種類がある。型の種類は,言語やツールによって異なる。

変数


型宣言文字

 BASICにおいて型を示す記号のこと。変数,定数,関数名の末尾に付ける。例えば,Integerは%,Stringは$,など。

関数変数


カプセル化

 オブジェクト指向で,クラスの中の情報に対して外部から直接アクセスできないようにして,アクセス方法を(そのクラスが持つメソッド=関数に)一本化すること。情報隠ぺいとも呼ぶ。クラス内のデータと,それに関連のあるメソッド(関数)をひとまとめすることをカプセル化と呼ぶこともある。

オブジェクト指向メソッド


環境変数

 プログラムが実行環境についての情報を実行時に取得できるよう,WindowsなどのOSやミドルウエアが管理している変数のこと。MS-DOSやWindows 3.1などでは,起動時に実行されるAutoexec.batというファイルに,インストールしたプログラムがどのディレクトリにあるかを指定するPATH文を記述している。これが環境変数の一例である。INIファイルで設定することもある。Windows 95以降では,主にレジストリが管理している。

変数レジストリ


関数(function)

 プログラムの中で,カッコの中に指定したパラメータ(引数)に応じて何らかの処理を実行し,その結果を返すような処理のまとまり(サブルーチン)。「ファンクション」ともいう。実行結果の値は戻り値(返り値)という。多くのプログラミング言語では,あらかじめ処理系が備えている組み込み関数と,ユーザーが独自に作成した関数の2種類を使用できる。

引数戻り値


機械語

 CPU(プロセサ)が直接理解し,実行できるコードのこと。「マシン語」ともいう。2進数(0と1の組み合わせ)で記述されている。CPUが直接実行するために実行速度が速いが,人間(プログラマ)には内容がわかりにくい。人間にもわかる高級言語(BASICやCなど)をCPUにもわかる機械語に変換するのがインタプリタやコンパイラである。

アセンブリ言語インタプリタコンパイラ


キャスト(cast)

 型の異なる変数の間で代入や比較を行う際に,一方の型の値を別の型に変換すること。「強制型変換」ともいう。Javaでオブジェクト間のキャストを行う場合は,それらが継承関係にないとキャストできない。

継承変数


キュー(queue)

 データ構造の一つ。「待ち行列」とも呼ぶ。数多くのデータを管理するために用いる。「データを一つ追加する」「データを一つ取り出す」という二つの操作が可能で,複数のデータを追加してから取り出す場合は,追加した順に取り出される(先入れ先出し)。

スタック


クライアント/サーバー・システム(client/server system)

 クライアントとサーバーという2種類のプログラムを連動させて,アプリケーションを実行するシステムのこと。クライアントからサーバーに要求を出すと,サーバーで処理が実行され,クライアントに処理結果が返される。

3階層型システム


クライアント領域(client area)

 ウィンドウの中で,タイトルバーやメニューバー,ウィンドウ枠などを除いた領域のこと。ワープロ・ソフトで編集するテキストを表示するなど,アプリケーションが普通に描画する領域である。タイトルバーなどの領域は,Windowsが必要に応じて自動的に描画してくれるのに対し,クライアント領域の描画はアプリケーション側で責任をもって行う必要がある。


クラス(class)

 オブジェクト指向で,関連するデータや関数をひとまとめにして定義したもの。これがオブジェクト指向開発の基本単位となる。クラスを設計図としてオブジェクトの実体すなわちインスタンスを作成し,プログラムで利用する形をとる。クラスと継承を使うことで,プログラムの再利用性を向上させることができる。

インスタンスオブジェクト指向継承


クラスライブラリ(class library)

 複数のクラスを再利用しやすいようにあらかじめまとめたもの。C++やJavaでは,クラスライブラリを利用してプログラミングの効率を上げることが多い。Visual C++はMFC(Microsoft Foundation Classes)というクラスライブラリを提供している。Javaも標準的なクラスライブラリをJDK(Java2)の中に含めて提供している。

JDKMFCオブジェクト指向クラス


グローバル変数

 ソースコード内で,宣言した行よりも後の行のどの関数,処理行からも参照が可能な変数のこと。「パブリック変数」ともいう。これに対し,ローカル変数と呼ぶ,特定の関数や範囲内でしか使えない変数がある。

スコープ変数ローカル変数


継承(inheritance)

 オブジェクト指向で,基底クラスをもとに,機能を引き継いだ派生クラスを作ること。派生クラスに新しい機能を追加する際は,基底クラスとの差分だけをプログラミングすればよい。オブジェクト指向プログラミングでは,クラスを継承することで開発の手間を軽減し,全体の開発効率を高めることができる。

オブジェクト指向クラス


構造体

 複数のデータを一つに集めたデータ構造のこと。Visual Basicではユーザー定義型(Type)を使って定義できる。

ユーザー定義型


コモンダイアログ(common dialog box)

 ファイルのオープンや保存など多くのアプリケーションが必要とする機能に対してWindowsが提供しているダイアログボックス。オープンするファイル名をユーザーに指定させるための「ファイルを開く」ダイアログや,印刷する枚数などを設定する「印刷」ダイアログ,フォントを選択するための「フォント」ダイアログなどがある。

ダイアログボックス


コールバック関数(callback function)

 プログラマが直接呼び出すのではなく,Windowsやライブラリが呼び出す関数のこと。

API


コレクション(collection)

 オブジェクト指向で,関連するオブジェクトの集合体を含むオブジェクトのこと。配列を一般化したようなものである。

オブジェクト指向配列


コンストラクタ(constructor)

 オブジェクト指向言語でオブジェクトを作成する際に実行される関数。オブジェクトの初期化処理などを記述しておくのが普通。C++とJavaでは,クラス名と同じ名前を持つメソッドを定義すれば,それがコンストラクタとなり,オブジェクトを作成する際に自動的に呼び出されるようになる。このおかげでうっかり初期化処理を忘れるといったミスを防ぐことができる。Delphiでは,constructorキーワードを付けて宣言したメソッドがコンストラクタとなり,これを明示的に呼び出すことによってオブジェクトを作成する。

オブジェクト指向クラスデストラクタメソッド


コンテナ(container)

 ソフトウエア部品(ActiveXコントロールやJavaBeansなど)を貼り付ける土台となる部品のこと。例えば,Visual Basicのフォーム上には,ラベルやボタン・コントロールを貼り付けることができる。この場合,フォームのことをコンテナという。広義の意味では,ソフトウエア部品を使用できる開発ツールをコンテナという場合もある。

ActiveXコントロールJavaBeansコンポーネントフォーム


コントロール(control)

 (1)Windowsが用意しているGUI部品の総称。簡単なテキストを表示/編集するためのエディット・コントロールや,画面上でボタンの動作をシミュレートするプッシュボタン・コントロールなどがある。(2)Visual Basic(VB)で使うソフトウエア部品のこと。ほかの開発ツールで言うコンポーネントに相当する。VBは,WindowsのGUI部品をVBで簡単に扱えるようにしたテキストボックスなどの部品のほかに,タイマー機能を利用するためのタイマー・コントロールなどの非GUI部品も用意している。(3)ActiveXコントロールの略。

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


コンパイラ(compiler)

 ソースコードを機械語に翻訳するためのソフト。この処理のことを「コンパイル」と呼ぶ。コンパイラが生成した機械語のファイル(オブジェクト・ファイル)を,リンカーでリンクすると実行ファイルができる(開発ツールによってはリンクまで含めてコンパイルと呼ぶこともある)。コンパイルされた実行ファイルは,ソースコードを1行ずつ解釈して実行するインタプリタ形式のファイルよりも高速に実行できる。ただし,実行ファイルの生成には時間がかかる。
 Javaの場合,コンパイラは普通はソースコードをバイトコードと呼ばれる中間言語に翻訳するためのソフトを指す。さらにバイトコードを機械語に翻訳するソフトは「ネイティブ・コンパイラ」と呼ばれる。

インタプリタ機械語バイトコードリンク


コンポーネント(component)

 特定の機能に絞り込んで部品化し,ほかのソフトウエアから利用できるようにしたソフトウエア。ソフトウエア開発の生産性とメンテナンス性を向上させるのが狙い。WindowsではActiveXコントロール,JavaではJavaBeans,EJBといったコンポーネントの仕様がある。Delphiでは,ツールが提供するGUI部品をコンポーネントと呼んでいる。

ActiveXコントロールEJBJavaBeans


再帰呼び出し(recursive call)

 プロシジャや関数が内部で自分自身を呼び出すこと。再帰呼び出しを行うプロシジャ/関数を再帰プロシジャ/再帰関数と呼ぶ。例えば,正の整数nの階乗(1,2,3…,nの積)を求める再帰関数は,
Function Factorial(n As Long) As Long
If n = 1 Then
Factorial = 1
Else
Factorial = Factorial(n-1) * n
End If
End Function
と記述できる。
 再帰呼び出しを利用すれば,二分探索やサブディレクトリ中にあるファイルのサーチなど,アルゴリズムを再帰的に表現可能な処理を簡潔に記述できる。ただその一方で,通常のループを使って記述する場合と比較してメモリーの消費量が多いという欠点がある。再帰的に呼び出されるたびに,変数や関数/プロシジャの戻り先などのために新たにスタック領域が消費されるためだ。

アルゴリズムスタック二分探索


最適化

 (1)コンパイラがソースコードから機械語を生成する際に,命令の順番を入れ替えたり,より高速な命令を使用するなどによって実行速度やメモリーの消費量などを向上させること。(2)データベースで,データの削除/追加の繰り返しによって発生したデータ領域のフラグメンテーション(断片化)を除去すること。

コンパイラ


サービスパック(Service Pack)

 WindowsやVisual Studioといったマイクロソフト製品への機能追加やバグ・フィックスを施すためのソフト。マイクロソフトが提供する。「SP」と略す。提供時期や内容によって,SPのバージョンも上がる。使用の際に,SPを導入していることが前提となるアプリケーションもある。


サブクラス(subclass)

 オブジェクト指向で,基底クラス(親クラス/スーパークラス)の機能を受け継いで(継承して)できたクラスのこと。派生クラス(子クラス)とも呼ぶ。サブクラスに新しい機能を追加する際は,基底クラスとの差分だけをプログラミングすればよい。

オブジェクト指向クラス継承スーパークラス


サブクラス化(subclassing)

 既存のウィンドウ・プロシジャを独自のプロシジャで置き換えることにより,ウィンドウの振る舞いを変更すること。コントロールの動作をカスタマイズするなどの目的で利用する。通常は,振る舞いを変更したいごく一部のメッセージに対してのみ独自の処理を行い,ほかのメッセージは元のウィンドウ・プロシジャに渡して処理させる。

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


サブルーチン(subroutine)

 処理を実行するための命令文が記述されたコードのまとまりのこと。サブルーチンも関数もプロシジャの一種だが,関数は呼び出し元に戻り値を返すのに対し,サブルーチンは戻り値を返さない。

関数プロシジャ


サーブレット(Servlet)

 サーバー上で動くJavaプログラム。動的にHTMLを生成する機能を持ち,CGI(Common Gateway Interface)のプログラムよりもサーバーのメモリーを有効に使えるのが特徴。サーブレット同士で通信したり,データベースに接続することも可能で,JSP(JavaServer Pages)と組み合わせたWebアプリケーション開発で利用する。

CGIHTMLJavaJSP


参照渡し(call by reference,pass by reference)

 プロシジャの呼び出し側が,プロシジャに引数の参照(アドレス)を渡す方法。呼び出し元の変数の内容をプロシジャ内部で変更することができる。一方,関数の呼び出し側が,関数に引数の値(内容)だけを渡す方法を値渡しという。

値渡しアドレスプロシジャ


シェル(shell)

 OSに対するユーザーの操作を,OSの核となるカーネルが理解できるように翻訳するソフトのこと。Windowsには,テキスト・シェルのCommand.comと,ビジュアル・シェルのExplorer.exeがある。UNIXやLinuxには,bashやcshがある。


システム・コール(system call)

 OSが持っている機能をサブルーチンとして公開するもの。例えば,APIはWindowsがアプリケーションに提供するシステム・コール,といえる。

APIサブルーチン


シフトJIS

 日本語を扱うための文字コードの一つ。Windows 95/98/MeやMacintoshで採用されている基本的な文字コードである。英数カナを1バイト,漢字などを2バイトで表現する。

Unicode


シリアライズ(serialize)

 オブジェクト指向言語で,オブジェクトの状態をバイト列の形式にしてファイルなどに格納したり,ファイルからオブジェクトを復元したりできるようにすること。
 オブジェクトの内容をきちんと復元できるようにするためには,データ・メンバーの値をファイルに保存するだけでは不十分である。例えば,オブジェクトのデータ・メンバーがほかのオブジェクトへの参照を含む場合は,そのオブジェクトの内容も保存する必要がある。また,複数のデータ・メンバーが同じオブジェクトを参照している場合は,オブジェクトの内容(実体)を一度だけ保存するようにしてファイルのサイズを小さくするといった工夫が必要になる。シリアライズにより,こうした点をプログラマが意識することなくファイルに保存/復元できるようになる。


スクリプト言語

 ソフトウエアが実行する手順を記述するプログラミング言語。専門家でなくても操作できるように,文法やコード体系が単純化されている。代表的なものでは,Webブラウザ上で実行されるVBScriptやJavaScriptがある。

JavaScriptVBScript


スコープ(scope)

 ある変数を参照可能なソースコード中の範囲のこと。パブリックにするか,ローカルにするかでスコープが異なる。

グローバル変数ローカル変数


スタック(stack)

 (1)多数のデータを管理するためのデータ構造の一つ。もとは,干し草などを積み上げた山のことを指す英語。干し草の山と同様,データを次々に追加した後でデータを取り出すと,追加した順序と逆の順序で取り出される(後入れ先出し)。データを追加することを「プッシュ(push)」,取り出すことを「ポップ(pop)」と呼ぶ。
 (2)プログラムを実行する際に一時的に利用される変数などを格納するためのメモリー領域。(1)の後入れ先出しのデータ構造を持つためこう呼ばれる。例えばVisual BasicやC/C++では,プロシジャを呼び出した時点で,そのプロシジャ内部で定義された変数や引数,戻り先のアドレスが格納され,呼び出しから戻ると破棄される。スタック内部の同じ領域が異なるプロシジャの呼び出しに対して再利用されるため,各変数に対して静的にメモリーを割り当てるのと比べてメモリーを節約できる。再帰呼び出しの繰り返しなどによってスタック領域が足りなくなり,データがあふれることを「スタック・オーバーフロー」と呼ぶ。

キュー再帰呼び出し


スタティック・リンク(static link)

 ライブラリを,実行ファイルのコンパイル時に実行ファイルに取り込む,すなわち静的(スタティック)に結合(リンク)すること。一方,実行時に別ファイルのライブラリを呼び出すことをダイナミック・リンクと呼ぶ。

DLL


ストアド・プロシジャ(stored procedure)

 データベースに格納してあるSQLプログラムのこと。クライアントから見ると,データベース・サーバー上のサブルーチン,あるいは関数として利用できる。あらかじめコンパイルしてあるため,高速に実行できる。

RDB


スーパークラス(superclass)

 オブジェクト指向で,サブクラス(派生クラス/子クラス)を作る際の継承元になるクラスのこと。基底クラスまたは親クラスとも呼ばれる。

オブジェクト指向クラス継承サブクラス


スレッド(thread)

 OSがCPUに割り当てる処理の最小単位。プロセスをスレッドに分割すると,各スレッドはアドレス空間やファイル・ハンドルなどのプロセスの資源を共有するので,生成や切り替えがプロセスより軽いという利点がある。一つのプロセスを複数のスレッドに分割し,別々に実行できることをマルチスレッドという。

プロセス


正規化

 データベースにおいて,基本ルールに従ってテーブルを設計していくこと。第1正規化から第5正規化まであり,通常は第3正規化までを使う。第1正規化は繰り返しのデータを取り除くことを指す。第2正規化は主キーが決まるとほかのフィールドの値も決まるかどうか,第3正規化は主キーでないフィールドの値がほかのフィールドの値を決定していないかどうかをチェックする。

RDB


ソースコード(source code)

 プログラムを文字として書き表した形態のもの。通常はテキスト・データなので,ワープロやテキスト・エディタで読み書きや印刷ができる。インタプリタやコンパイラは,ソースコードをもとにCPU(プロセサ)がわかる言語(機械語)に置き換え,プログラムを実行する。ソースコードと対になるのがオブジェクト・コードである。

インタプリタオブジェクトコンパイラ


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


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