Memory、バーチャルメモリ)とは、コンピュータ分野におけるメモリ管理の仮想化技法の一種であり、オペレーティングシステムなどが物理的なメモリを、アプリケーション・ソフトウェア(プロセスなど)に対して、専用の連続した主記憶装置に見えるように提供する。この技術により、物理的な主記憶装置に加えてハードディスク装置等の補助記憶装置を併用すれば、物理的な主記憶装置よりも大きな仮想メモリを提供する事ができる。アプリケーション・プログラム側は、物理メモリ上のアドレスを意識しなくて良いため、マルチタスクの実現が容易である。このため現代のオペレーティングシステムの多くが仮想記憶をサポートしている。仮想アドレスの範囲を仮想アドレス空間、物理アドレスの範囲を物理アドレス空間という。引数(ひきすう)は、数学における関数やコンピュータプログラムにおける手続きにおいて、その外部と値をやりとりするための特別な変数、あるいはその変数の値のことである。数学や最適化問題に関するそれ(「パラメータ」とカタカナで表現されることが多い)については「媒介変数」の記事を参照のこと。以下は専らコンピュータプログラミングに関して説明する。関数・サブルーチン・メソッド等を定義する時に、外部から値を渡される特別な変数として指定されるのが仮引数。関数(等)を呼出す式において、仮引数に対応する式(あるいはその値)が実引数である。実行時には、実引数の値を仮引数が受け取る。「引数」を「いんすう」と読む読み方もあるが、術語としては変則的に湯桶読みして「ひきすう」としている。数学分野で因数との取違えを防ぐためといった理由もある。いすいじゅんげんご、低級言語とも)は、コンピュータ用のプログラミング言語のうち、機械語ないし機械語に近いアセンブリ言語などの言語の総称である。システムの階層構造を考えた場合に、ハードウェア寄りに位置する低レイヤ(低水準)の言語という意味である。対義語は「高水準言語」である。「高級言語」の対は「低級言語」である。次のような特徴がある。コンピュータのオペレーティングシステムにおいて記憶装置をページと呼ばれる小さな単位に分割して割り当てを行うアルゴリズム群である。仮想記憶のベースとなる設計の一つ。物理メモリ空間および論理メモリ空間を、基本的に一定サイズのページと呼ばれる単位に分割して管理を行う。物理メモリ空間に対応づけられていない論理メモリを参照した時にはページフォルトという例外によってOS側の例外処理ルーチンに制御が移行し、OS側の管理によって適宜対応したページを二次記憶等から読み込み、テーブルを更新してその参照した命令の実行に戻る。呼ばれる一種のキャッシュがあり、ユニット内部ではこの対応表に基づいてメモリアドレスの対応づけを行っている。このテーブルから参照出来なかったときをTLBミスと呼ぶ。このときの処理はMMUの設計によって異なり、MMU内にはTLBのみを持ちTLBミスが即例外を起こし、OSがページテーブルを引いてTLBに追加することによってTLBミスを解決するアーキテクチャや、ページテーブル自体のフォーマットがOSが使えるビットを含めた形でMMUによって定義されていて、TLBミス時にMMU自身が与えられた物理アドレスにあるページテーブルを参照するアーキテクチャもある。プログラムが物理メモリがマップされていない仮想アドレス空間上のページにアクセスしたときにハードウェアが発生する割り込み(または例外)である。一部であり、ページフォールトを発生させるハードウェアを一般にメモリ管理ユニットと呼ぶ。OSのメモリ管理がページフォールトを処理し、その仮想アドレスにアクセスできるようにするか、無効なアクセスであるとしてページフォールトを発生させたプログラムを強制終了させることができる。名前にフォールト(障害)とあるものの、ページフォールトは必ずしも致命的なエラーではない。Windows、UNIX/Unix系OS(macOS、Linux、*BSD、Solaris、AIX、HP-UXなど)、z/OSといった仮想記憶方式を採用するOSでは、ページフォールトは普通に発生するし、必須な機能でもある。いう呼称を使っている。Dreams...)とは1996年7月5日、ソニックチームの製作でセガ(後のセガゲームス)より発売されたセガサターン用ゲームソフト。独特でファンタスティックな夢の世界を、心地良いメロディの中で縦横無尽に飛び回り、悪夢の支配から自分たちの夢の世界を守る物語。作品の音楽や登場キャラクターは、後に同社で発売されている『ソニックアドベンチャー』や『ファンタシースターオンライン』などでも度々使用されている。701を設計し、最初のアセンブリ言語を書き、人工頭脳分野の創設に参加した、アメリカ合衆国の計算機科学者。architecture)は、コンピュータの基本的な構成法のひとつである。今日では基本的なコンピュータ・アーキテクチャのひとつとされるが、そもそもコンピュータの要件とされることもあり、このあたりの定義は循環的である。プログラム内蔵方式のディジタルコンピュータで、CPU(中心となるプロセッサ、今日では一つの部品としてまとめて考えることが多いが、オリジナルの報告書では制御装置と演算装置に分けている)とアドレス付けされた記憶装置とそれらをつなぐバスを要素に構成され、命令(プログラム)とデータを区別せず記憶装置に記憶する。プログラムカウンタを構成要素に含め、またより抽象的なモデルにおける命令スケジューラの実装とみることがある。今日では、演算などの命令の実行は演算装置を含む実行ユニットで行われる、というように考えられることもある。オリジナルの報告書では、入出力について特別に扱っているが、今日の視点からではメモリマップドI/Oを考えれば特に必要ない。バスは、報告書では明示的に数え上げてはいないが(言及はある)、今日ではフォン・ノイマン・ボトルネックのように明確に認識される存在である。EDVAC(1945)の著者がジョン・フォン・ノイマン(ひとり)になっていることに由来する。誰がなんのためにそうしたかについては諸説ある。このアイディア、特にプログラム内蔵方式のアイディアは、ジョン・モークリーとジョン・エッカートによるENIACのプロジェクト中の検討にその芽があった。ノイマンは(理論的な、とされる)助言役として加わり、執筆者はノイマンであった。誰にどのような功績があったかは諸説ある。この方式について、以後のコンピュータ研究開発に大きな影響を与えた1946年夏のムーアスクールで講義したのは、ノイマンではなくモークリーとエッカートであったし、ノイマン型という用語は不当だとして、使わない者もいる。一方で、EDSACの設計・建造者であるモーリス・ウィルクスは、ENIACが軍事機密の下にあった時に、ノイマンの草稿がその保護に入らず、多くの人がノイマンを発明者だとみなしたことは不公平な結果だったとし、ノイマンの参加以前に本質的な先進があった、としながらも、数値データと命令を同じ記憶装置の中に置くのは不自然である、とか、そのために必要な遅延記憶装置は信頼性に欠ける、といった、新規技術への疑念に対し、物理学者として、また数学者(計算理論)として、ノイマンが計算機の潜在能力を見抜き、信望と影響力を行使したことは重要だった、とも述べている。»マイクロコントローラマイクロコントローラ(microcontroller)は、コンピュータシステムをひとつの集積回路に組み込んだものである。»マイクロコンピュータマイクロコンピュータ(英語:microcomputer)、略してマイコンはCPUとしてマイクロプロセッサを使用したコンピュータである。マイクロコンピュータは当時のメインフレームやミニコンピュータと比較して物理的に小さかった。入出力のためのキーボードとスクリーンを装備した多くのマイクロコンピュータは、現代の一般的な感覚におけるパーソナルコンピュータに近い。マイコンという呼び方は1970年代から1980年代にかけて一般的であったが、同様な製品を現在はパソコンと呼ぶ。»マイクロソフトマイクロソフト()は、アメリカ合衆国ワシントン州に本社を置く、ソフトウェアを開発・販売する会社である。1975年4月4日にビル・ゲイツとポール・アレンらによって設立された。「大きい」「巨大な」といったような意味の語であるが、コンピュータ関係では、アプリケーションソフトウェアなどの操作などといった、プログラミング言語と比較して粒度が大きい操作をまとめて自動化したりする機能を指して良く使われる。マクロを記述するコンピュータ言語をマクロ言語と言う(言語の無いマクロ機能もある)。テキスト等の変換を記述する変換言語もマクロと呼ばれる。この記事と、マクロ言語の記事は、それぞれに書くべき内容と書かれている内容が混乱している。以下の内容のいくつかは変換言語についてのものである。計算理論において、ある計算のメカニズムが万能チューリングマシンと同じ計算能力をもつとき、その計算モデルはチューリング完全(チューリングかんぜん、Turing-complete)あるいは計算完備であるという。チャーチ=チューリングのテーゼによれば「計算可能関数」は、それを計算しようとする計算モデルがチューリング完全であれば計算できる。一般的なプログラミング言語の背景にある計算モデルの多くはチューリング完全である。K、Brainfuckなどがある。究極的に単純な計算モデルとしては「がチューリング完全であると証明されている。チューリング完全かどうかという事は、計算可能性理論の問題である。計算複雑性の分野の問題である時間や記憶容量の消費量については考えない。表計算における数式の処理などで、繰り返し処理を「どうやっても実現できなければ」それはチューリング完全ではない。コンピュータ言語のうち、少なくともチューリング完全でなければプログラミング言語とは呼ばれない。逆にチューリング完全であるにも関わらず慣例的にプログラミング言語とは呼ばれないものもある。二進法のことであるが、コンピュータが処理・記憶するために2進化されたファイルまたはその内部表現の形式(バイナリデータ)のことを指して用いることが多い。コンピュータが扱うすべてのデータはバイナリデータ(バイトの並び)であり、プレーンテキスト(または単にテキスト)もバイナリデータの一種ではあるが、通常バイナリとテキストは対比して用いられる。もの、バイナリとはそうでないものを指す。human-readableに対する語はmachine-readableだが、これは(機械的に読むことが可能であるように)フォーマットが定められているもの、という意味である。バイナリフォーマットではエンディアンなどに互換性・移植性の上で注意が必要であり、それを避けてテキスト形式で記録することも少なくない(UNIX哲学も参照。浮動小数点数やループした構造の表現など、テキスト形式にも注意が必要な点は多い)。バイナリエディタを用いると、バイナリファイルを1バイトずつの(16進法での)数値の並びとして表示・編集を行うことができる。バイナリのファイルでも多くは部分的にテキストとして読み取れる箇所が存在するため、そういった箇所のみを抜き出すstringsというユーティリティもある。バイナリファイルにはたとえば画像ファイルや音声ファイル、圧縮されたファイルなどがある。バイナリファイルの中にはファイルの先頭にメタ情報(ヘッダ)を持っているものがある。GIFファイルは複数の画像を持つことができ、ファイルの先頭でそれぞれの画像を区別する情報が記述されている。そのようなメタ情報を持たないファイルはフラットバイナリファイルと呼ばれる。コンピュータプログラム関係では、テキストであるソースコードとの対比からコンパイルされたコード(オブジェクトファイルや実行ファイルなど。そのような機械語(ネイティブバイナリ)に限らず、WebAssemblyやJavaなどのバイトコード類なども含む)のファイル等を指してバイナリと呼ばれることがしばしばある。プロプライエタリのソフトウェアは、バイナリの形態でさらに難読化を掛けて、販売されることが多い。バイナリ形式でのデータの表現方法はさまざまなものがある。数値であれば0~9までの数をパターン化して記録するBCD、ゾーンビットと実際の数値、正の数か負の数かを記録する符号ビットからなるアンパック10進数(ゾーン10進数)や、実際の数値と符号ビットだけからなるパック10進数などがある。文字列の扱いとしては、ナル文字('\0')で終端する方法や、長さ(オクテット数、あるいは文字(符号点)の個数)を別に保持する、といった方式がある。含むようなバイナリを「文字列」として扱うことができない。»ポリモーフィズムポリモーフィズム()とは、プログラミング言語の型システムの性質を表すもので、プログラミング言語の各要素(定数、変数、式、オブジェクト、関数、メソッドなど)についてそれらが複数の型に属することを許すという性質を指す。対義語はモノモーフィズム(Monomorphism)、単態性、単相性で、プログラミング言語の各要素が唯一つの型に属するという性質を指す。ポリモーフィズムは次のようないくつかの種類に分けられる。»メモリ管理メモリ管理(メモリかんり)とは、コンピュータのメモリを管理するもの。単純化すれば、プログラム(プロセスなど)の要求に応じてメモリの一部を割り当てる方法と、そのメモリが不要となったときに再利用のために解放する方法を提供する。今日では、CPU(メモリ管理ユニット)とオペレーティングシステムが協働して仮想記憶やメモリ保護を提供するのが一般的である。各種データ構造を線形空間であるメモリに展開する場合の管理手法(アルゴリズム)についても「メモリ管理」と呼ばれる。メインフレーム(mainframe)は、主に企業など巨大な組織の基幹業務用などに使用される、大型コンピュータを指す用語。対比語は時代にもより専用機、分散コンピュータ(オープン系システム)など。セガ・エンタープライゼス(後のセガゲームス)が1988年10月29日に日本で発売した16ビットの家庭用ゲーム機である。メーカー希望小売価格は21,000円。米国・カナダではGENESIS(ジェネシス)という名称で1989年に、ヨーロッパ・フランス・スペイン等の欧州地域やブラジルなどの南米地域では日本と同じ名称で1990年に発売された。HAL研究所より1991年8月30日に発売された日本のゲームソフト。(プログラミング)プログラミング言語において、ラベルとは特定の文を表すためにつけられる識別子である。一般に、goto文によるジャンプや多重ループから一度に抜けるときといった、処理の移動先を指定する場合などに用いられる。古典的BASICでは、行番号自体がラベルになっている。Pascal、Cといった構造化言語では、「スパゲッティプログラム」の原因であるとしてgoto文の使用を避けるが、大域脱出などの目的で残されているため、ラベルもまた残されている。»ライブラリライブラリ()は、汎用性の高い複数のプログラムを再利用可能な形でひとまとまりにしたものである。ライブラリと呼ぶ時は、それ単体ではプログラムとして作動させることはできない実行ファイルではない場合がある。ライブラリは他のプログラムに何らかの機能を提供するコードの集まりと言うことができる。ソースコードの場合と、オブジェクトコード、あるいは専用の形式を用いる場合とがある。UNIXのライブラリはオブジェクトコードをarと呼ばれるアーカイバでひとまとめにして利用する。図書館()と同様にプログラム(算譜)の書庫であるので、索引方法が重要である。ソフトウェア以外の再利用可能なものの集合について使われることもある。engineeringから。直訳すれば逆行工学という意味)とは、機械を分解したり、製品の動作を観察したり、ソフトウェアの動作を解析するなどして、製品の構造を分析し、そこから製造方法や動作原理、設計図などの仕様やソースコードなどを調査することを指す。»リロケータブルリロケータブル(再配置可能)という形容詞は、プログラムの属性を示し、メモリ上の何処に配置しても差し支えなく動作できる性質を指して言う。そのようなバイナリをリロケータブルバイナリと言う。バイナリプログラム、実行形式と呼ばれるアプリケーションプログラムや、ライブラリ、モジュールで、この属性の有無が問題となる。再配置可能にするための方法としては、再配置の際に修正が必要な箇所をリストアップしたものを付加し、再配置の際にフィックスアップするというものと、そもそも配置されるアドレスに依存するようなコードを含まないようにする、というものがあり、後者を位置独立(いちどくりつ)と言う。»リンケージエディタリンケージエディタ(リンカ(linker)、連係編集プログラムとも)とは機械語のプログラムの断片を結合し実行可能なプログラムを作成するプログラムのことである。例として、C言語では、ソースファイルをコンパイルするとオブジェクトファイルが生成される。それに他のオブジェクトファイルやライブラリを結合して1つのプログラムが完成する。この結合(リンク)の際リンケージエディタが使われる。System)とは、ジョブの実行が命令された時、その処理を設定された時間通りに動作することに着目した制御工学における概念の一つであり、「リアルタイム処理」とも呼ばれている。リアルタイム性を高めるために、どのような順番でジョブを処理するか(スケジューリング)が重要となる。各ジョブ(タスク)の重要度がスケジューリングの基準となることが多く、重要度が時間と共に変化する動的スケジューリングと、変化しない静的スケジューリングに大別される。スケジューリングの結果、各ジョブがどの程度実行されるかも議論の対象となる。ループとは、特定の条件下において特定の処理を繰り返すこと、あるいはそのように作られた制御構造のことを言う。日本語の名詞として「繰り返し」とも。特定の条件が成立している限り、特定の処理を繰り返し何度でも実行する。逆に言えば、条件が成立しなくなったときに、処理を中止する。ループの、特別な形あるいは最も一般的な形として、無条件に繰り返す無限ループがある。詳細は無限ループの記事を参照。ループは、繰り返しを継続するかどうかを判断するための条件式(反復条件)を持つ。反復条件がループ構造の始まりに置かれる場合、そのようなループ構造のことを前判定ループと呼ぶ。反復条件がループ構造の後ろに置かれる場合、これを後判定ループと呼ぶ。文」は、どの場合にも対応するよう対称的に作られている)。その「内側のどこか」が、その前端か後端にある場合が多い、というだけである。ループの先頭で何らかのデータをファイルから読み込んで計算を開始し、その途中で、繰り返しのその回を打ち切り次の繰り返しに進む、あるいは繰り返しを終わる、といったこともよくあり(ダイクストラは、最後が途中で終わる場合を「n+1/2回の反復」と名づけた)、さらには入れ子になった内側のループの中から外側のループを終わる、というような処理にどう対応するか、が思案のしどころである。(コンピュータ)レジスタ(register)はコンピュータのプロセッサなどが内蔵する記憶回路で、制御装置や演算装置や実行ユニットに直結した、操作に要する速度が最速の、比較的少量のものを指す。プログラムやデータなどを、外部(他のコンピュータや外部記憶装置)からインタフェースなどを通して受け取り、主記憶装置やワークエリアに置く(ロードする)プログラムである。それに加えてプログラムを起動できる状態にし、それを実行するというスタートアップなどと呼ばれる機能まで混同している者も多い。以下は、もっぱらその混同に関する説明である。存在した開発プロセス用ツールなどのソフトウェアの開発・販売会社である。社名変更を繰り返し、開発プロセスツール会社に変身した。会社存在当時の最後の本社はアメリカのテキサス州オースティン。日本では1989年4月に日本法人である株式会社ボーランドジャパンが設立され、1992年にはボーランド株式会社に商号変更されて100%子会社となった。2009年5月6日、マイクロフォーカス(当時・インプライズ株式会社)による買収の合意が発表され、同社の一部門となった。ブートストラップ(bootstrap)は、コンピュータシステムの電源投入時、あるいはシステムのリセット後、モニタやOSなどなんらかの基本的なシステムソフトウェアを主記憶に展開し、ユーザプログラムを実行できるようにするまでの処理の流れをいう。loader)は、以上のプロセスで使われるローダ、すなわち、不揮発性の補助記憶にある目的のプログラムを読出し、揮発性の主記憶に書込むプログラムのことである。電源投入時のブートのことを「コールドブート」、リセットされたことによるブートを「ウォームブート」と言う。ウォームブートでは、コールドブートにおける最初のほうの手続きのいくつかが必要無い場合もあり、そういった手続きを省略することもある。loader)という名前は、ブーツのつまみ革(strap)を自分で引っ張って自分を持ち上げようとするイメージから来ている。いうパラドックスに着目した呼称である。一般にある処理を行うソフトウェアに対して、データ入力やデータ整形などの準備的な処理を行うソフトウェアのことである。コンパイラに対して使うことが多く、ここではそれを中心に述べる。他の分野の例としては、CADやCAEのデータ処理がある。ワープロソフトウェアにおける漢字変換ソフトウェアもプリプロセッサの一例である。»プリエンプションプリエンプション(preemption)は、マルチタスクのコンピュータシステムが実行中のタスクを一時的に中断する動作であり、基本的にそのタスク自体の協力は不要で、後でそのタスクを再実行するという意味も含む。このような動作をコンテキストスイッチと呼ぶ。通常、保護されたタスクか、システムの一部であるプリエンプティブスケジューラが行う。それらは、システム内の他のタスクに割り込み、後でそれらタスクを再開させることができる。「プリエンプト」とは「先取りする、差し替える」の意。»プログラマプログラマ(Programmer)とは、コンピューターのプログラムを作成する人全般を指す。プログラマーとも表記される(#プログラマに対する呼称参照)。programs)とは、コンピュータに対する命令(処理)を記述したものである。コンピュータが機能を実現するためには、CPUで実行するプログラムの命令が必要である。コンピュータが、高度な処理を人間の手によらず遂行できているように見える場合でも、コンピュータは設計者の意図であるプログラムに従い、忠実に処理を行っている。実際には、外部からの割り込み、ノイズなどにより、設計者の意図しない動作をすることがある。設計者が、外部からの割り込みの種類を網羅的に確認していない場合もある。»プログラム内蔵方式プログラム内蔵方式(プログラムないぞうほうしき)、ストアドプログラム方式は、主記憶に置かれたプログラムを実行する、という、コンピュータ・アーキテクチャの方式の一つである。ノイマン型アーキテクチャに内包されるため、また、このような分類が議論になるような初期の計算機において、プログラム内蔵でプログラムは全てROMに置いた、というものはないため、ノイマン型で実現されるプログラムが書き換え可能という性質を含めて指すこともある。プログラム内蔵方式か否かについては、今日一般に、プログラムを置く記憶装置が書き換え可能か否かは問わず、またいわゆるハーバード・アーキテクチャも普通プログラム内蔵方式とすることが多い。プログラムを内蔵している、と見えるものの一種であるが、記憶装置に置かれた命令ではなく、ワイヤードロジックでプログラミングをしているものは普通プログラム内蔵方式としない。プログラムを置く直接の記憶装置が、CPUが普通に読む(読み書きする)電子的(ないし電気的)な主記憶か、そうでない補助記憶か、という点は、今日そんなデザインはまずないが、この分類では重視する。次のような歴史的理由による。歴史的には、初期のプログラム駆動型の計算機には、主記憶(ROM含む)はデータの置き場としてのみ使い、プログラムは全てパンチカードや鑽孔テープのような補助記憶で与えられ、それを直接読み込みながら実行する、というものがあった。当然ながらジャンプが極端に制限されるなどプログラミング的に非常に制限され、プログラムの実行速度が読み込み装置の速度に制限されるため、すぐに古いデザインとみなされるようになった。そのような設計を、プログラム内蔵方式でない、とする分類であった。電子式でない、リレーを使ったコンピュータなど、機器自体の動作が紙テープリーダと比してたいして速くなく、素子のコストが記憶装置として使うには高い機械では、テープを直接実行するものが多かった。MarkIとIIがある。semantics)とは、計算機科学(特に理論計算機科学と分類されることもある)の一分野で、プログラミング言語の意味と計算モデルに関する分野である。形式的なものは、プログラミング言語の形式意味論とも呼ばれる。標準規格等では形式的でなく意味論を与えているものも多い。)を実行する(=プロセス)ためのハードウェアであり、演算装置、命令や情報を格納するレジスタ、周辺回路などから構成される。内蔵されるある程度の規模の記憶装置までを含めることもある。プロセッサー、プロセサ、プロセッシングユニット、処理装置(しょりそうち)ともいう。「プロセッサ」は処理装置の総称で、システムの中心的な処理を担うものを「CPU()」(この呼称はマイクロプロセッサより古くからある)、集積回路に実装したものをマイクロプロセッサ、またメーカーによっては(モトローラなど)「MPU()」と呼んでいる。プロセッサの構成要素の分類として、比較的古い分類としては、演算装置と制御装置に分けることがある。理論的な議論では、厳密には記憶装置であるレジスタすなわち論理回路の用語で言うところの順序回路の部分を除いた、組み合わせ論理の部分のみを指すことがある(状態機械モデルと相性が悪い)。分類としては、実行すべき命令を決め、全体を制御するユニットと、命令を実行する実行ユニットとに分けることがある。»パンチカード20世紀に最も広く使われた80欄のパンチカード。この例は1964年のEBCDIC文字セットにそれ以前につかわれていた特殊記号を加えて示したものである。パンチカードは、穿孔カードなどともいう、厚手の紙に穴を開けて、その位置や有無から情報を記録する記録媒体で、以前には鑽孔紙テープとともに多用された。電子式コンピュータ以前のタビュレーティングマシン(パンチカードシステム)の時代から多用されたものであるが、近年はコンピュータ用の主力メディアとしては過去のものとなっている。card(#ハンドソートパンチカードの節を参照)など、紙テープとは違ったカードならではの使い方もある。現在の使われ方としては、国や地方によっては選挙の投票用であるとか、穴を開けるのではないものの、マークシート用で同一の大きさ・形状・材質のカードが使われていることがある。»パイプライン処理パイプライン処理(パイプラインしょり)とは、コンピュータ等において、処理要素を直列に連結し、ある要素の出力が次の要素の入力となるようにして、並行(必ずしも並列とは限らない)に処理させるという利用技術である。要素間になんらかのバッファを置くことが多い。コンピュータ関連のパイプラインには、次のようなものがある。»テレビゲームテレビゲームは、主に一般消費者向けの「テレビゲーム機」によるコンピュータゲームを指す用語。game"というとテレビのクイズ番組を指すという。他に、「コンシューマーゲーム機」「家庭用ゲーム機」といった語もある。テレビ受像機をディスプレイとして使うことからできた語である。業務用などのいわゆる「ビデオゲーム」を指してこの語を使っている例もある。「コンシューマーゲーム」「家庭用ゲーム」という呼称の場合には含まれる携帯型ゲームを含まないという意のある据え置き型ゲームという語もある。業界外の資料などでは、適切な用語の調査検討を怠っているのか、ゲームセンターに設置されたアーケードゲームやスマートデバイスなどのテレビを用いないゲームも含んで使っている例もある。ビデオゲームという用語は、テレビより広く一般の映像ディスプレイを利用することを指し、アーケードゲームの一部などを含む。テレビゲーム機を指してビデオゲームという語が使われていた例もある。PCゲームなども含んで言うこともあるようである。GRAFFITIコーナーでは「ビデオゲーム」を、エレメカ等を含まない語として使っていた。脚注も全く出典になっておらず、ここに書く意味が不明。»デバッグデバッグ(debug)とは、コンピュータプログラムや電気機器中のバグ・欠陥を発見および修正し、動作を仕様通りのものとするための作業である。サブシステムが密結合であると、1箇所の変更が別の箇所でのバグを作り出すので、バグの修正がより困難となる。»デバイスドライバデバイスドライバ(略称:ドライバ、ドライバー、デバドラ)とは、画像ディスプレイモニター、プリンターやイーサネットボード、拡張カードやその他周辺機器など、パソコンに接続されているハードウェアなどをOSによって制御可能にするために用意された、ソフトウェアである。一般にバスや通信サブシステムを経由してそこに接続している周辺機器と通信する。プログラムからドライバ内のルーチンを呼び出すと、ドライバが周辺機器に対してコマンドを発行する。周辺機器がドライバに対してデータを送り返してきたら、ドライバは元の呼び出したプログラム内のルーチンを呼び出すなどする。ドライバはハードウェアに依存し、OS毎に異なる。非同期なハードウェアインターフェイスに対応するため、割り込み処理を提供していることが多い。»データ型データ型(データがた、)とは、(コンピュータにおける)データ(値)の種類に関する分類である。いったような値は文字列型である。プログラミングなどにおいて、まずデータオブジェクトや関数などの「値」について、またさらに、それらに関連付け(束縛)される変数や定数、リテラル、それらを組合せる演算子、さらにそれらからなる式といった構文上の要素の型が、データ型の議論の対象となる。structure)は、計算機科学において、データの集まりをコンピュータの中で効果的に扱うため、一定の形式に系統立てて格納するときの形式のことである。ソフトウェア開発において、データ構造についてどのような設計を行うかは、プログラム(アルゴリズム)の効率に大きく影響する。そのため、さまざまなデータ構造が考え出されている。多くのプログラムの設計において、データ構造の選択は主要な問題である。これは大規模システムの構築において、実装の困難さや質、最終的なパフォーマンスはベストのデータ構造を選択したかどうかに大きく依存してきたという経験の結果である。多くの場合、データ構造が決まれば、利用するアルゴリズムは比較的自明に決まる。場合によっては、順番が逆になる。与えられた仕事をこなす最適なアルゴリズムを使うために、そのアルゴリズムが前提としている特定のデータ構造が選択される。いずれにしても適切なデータ構造の選択は極めて重要である。この洞察は、多くの定式化された設計手法やプログラミング言語において、データ構造がアルゴリズムよりもキーとなる構成要素となっていることに現れている。大半の言語は異なるアプリケーションにおいてデータ構造を安全に再利用できるよう、実装の詳細をインターフェイスの背後に隠蔽するような、モジュール化のしくみを備えている。C++やJavaといったオブジェクト指向プログラミング言語はクラスをこの目的に用いている。Frameworkのようなプログラミング言語の標準ライブラリや環境において多くのデータ構造がサポートされている。データ構造が実装を表すのかインターフェースを表すのかについてはいくらか議論がある。どのように見えるかは相対的な問題なのかもしれない。データ構造は2つの関数の間にあるインターフェイスとして見ることもできるし、データ型に基づいて構成されたストレージにアクセスする方法を実装したものとして見ることもできる。略される)とは、航空機等の操縦・飛行制御システムの1種。直訳すると「電線による飛行」。オンラインソフトの中で、無料で提供されるソフトウェアのことである。フリーソフト、フリーソフトウェアとも呼ばれる。これに対し、有料、もしくは試用期間後や追加機能に課金されるオンラインソフトはシェアウェアと呼ばれる。フリーソフトウェア財団の主張する「自由なソフトウェア」を意味するフリーソフトウェアとは意味が異なる。本項では便宜上、「フリーウェア」の語を無料のソフトウェア、「フリーソフトウェア」の語を「自由なソフトウェア」の意味で用いている。フリーウェアは「無料で使用できる」ことに重点を置いた呼称であり、それ以外のライセンス条件、とくに変更・再配布などの条件はまちまちで、ソースコードが付属しないために変更ができなかったり、有償配布(販売)や営利利用の禁止など一定の制限が課せられているものも多い。プロプライエタリなフリーウェアは、開発力のあるユーザーにソースコードのダウンロードや所持、貢献などを許可しながらも、開発の方向性とビジネスの可能性を残すことができる。個人が開発しているフリーウェアは有料化されシェアウェアとなったり、HDDのクラッシュ、PCの盗難、ライセンス上の問題、その他の理由で管理できなくなり更新・配布が停止されることが多々ある。Computer)は、任天堂より1983年(昭和58年)7月15日に発売された家庭用ゲーム機。型番はHVC-001。Computerの略である。日本国内での略称・略記はファミコン・FC。任天堂の公式表記では「コンピュータ」と末尾の長音を伸ばしていない。当時の発売価格は14,800円。System”(ニンテンドーエンターテインメントシステム、略称:NES)として発売されている。カセットや周辺機器は接続部分の機械的な仕様の違いでお互いの互換性はない。ファミリーコンピュータ(後述)が発売された。Editionが販売された。1975年7月17日)は、カナダの数学者にして計算機科学者であり、ゲーム理論、コンピュータの設計、ミニコンピュータのプログラミング環境などの業績で知られている。スタンフォード大学名誉教授。シリーズはプログラミングに携わるものの間では有名である。アルゴリズム解析と呼ばれる分野を開拓し、計算理論の発展に多大な貢献をしている。その過程で漸近記法で計算量を表すことを一般化させた。いう書体ファミリも開発した。命令セットアーキテクチャを設計。Computer)とは趣味や嗜好、娯楽などのために供されるパーソナルコンピューター(パソコン)の総称である。1980年代〜1990年代中頃はまだまだ本格的なパソコン(ここでは、PC-9800シリーズなどの1980年代における位置付けを指している)は高価だったため、ホビー用途に的を絞った安価なパソコンも比較的多く発売され、普及していた。IIなどは高かったという事情により、同機の位置付けも少し違うという面もある)。」などの構造(言語の構成要素)である。convention)は、コンピュータの命令セットアーキテクチャごとに取り決められるABIの一部で、サブルーチンが呼出される際に従わねばならない制限などの標準である。名前修飾について、データを渡す「実引数」、戻るべきアドレスである「リターンアドレス」、データを戻す「返戻値」などを、スタックなどに対してどのように格納するのか、また各レジスタを、呼び出し側とサブルーチンのどちらの側が保存するか、等といった取決めの集まりである。言語が同じでも、分割コンパイルされリンカでリンクされる相互のプロシージャ間では、呼出し呼出されるならば同一の呼出規約に従っていなければならない。一方で、違う言語の間でも、同一の呼出規約を経由して相互にプロシージャを呼出すこともできる。set)は、コンピュータのハードウェアに対して命令を伝えるための言葉の語彙。ISS)とは、コンピュータ(プロセッサ)のシミュレータ(エミュレータ)のモデルのひとつで、命令セットレベルのシミュレーションを行うものである。通例高級言語でプログラムされており、シミュレートするアーキテクチャの命令を読み込み、プロセッサのレジスタを表現する内部変数の状態を維持して命令レベルでの模倣を行う。以下のいずれかを目的として導入される方法論である。(コンピュータ)アキュムレータ(Accumulator)は、コンピュータにおいて、演算装置による演算結果を累積する、すなわち総和を得るといったような計算に使うレジスタや変数のことである。とあるように、基本的には古語である。現代のプロセッサでもx86プロセッサにはアキュムレータマシン(後述)風のところがある。AXレジスタ(8ビットプロセッサ時代のAレジスタに由来する。32ビットではEAX)がアキュムレータ的に扱われており、初期の命令セットでは一部の命令(代表的なものはMULとDIV)のソースの一方およびデスティネーションが暗黙でAXとDXに固定されている、AXを対象とする命令には短縮形がある、などのように、AXレジスタにアキュムレータとしての特別扱いがあった。後に拡張されるに従い、アセンブリ言語レベルでは任意の命令に任意のオペランドが指定できるようになりこの特徴は見えなくなった。機械語レベルでは後方互換性を保っているのでこの特徴は残っている。AXレジスタは関数の返り値を格納するレジスタとして使われるなど「よく使われるレジスタ」であり、そういった意味でこの語が使われることもある。inlining)とは、コンパイラによる最適化手法の1つで、関数を呼び出す側に呼び出される関数のコードを展開し、関数への制御転送をしないようにする手法。これにより関数呼び出しに伴うオーバーヘッドを削減する。小さくて頻繁に呼ばれる関数では効果的であり、呼び出し側にそのコードを展開することで定数畳み込みなどのさらなる最適化を施せる可能性が生じる。問題点はバイナリコードが一般に肥大化する結果を招く点であり、参照の局所性を損なうほどだったり、リソースの限界を超えると性能がかえって悪化することになる。関数型言語の世界では、インライン展開をβ変換とも呼び、関数型言語の理論的基盤となっているラムダ計算の用語としてよく使われる。assembler)は、高水準言語の処理系中に埋込まれているアセンブラ、ないし、そのような言語でソースコード中(インライン)にアセンブリ言語によるコードを埋込むことができる、という機能である。例として、以下のような利用法がある。Corporation)は、アメリカ合衆国カリフォルニア州に本社を置く半導体素子メーカーである。Electronics(集積されたエレクトロニクス)の意味である。»インタプリタインタプリタ(interpreter)とは、プログラミング言語で書かれたソースコードないし中間表現を逐次解釈しながらするプログラムのこと。づけのシステムソフトウェアである。通常、OSメーカーが組み上げたコンピュータプログラムの集合として、作成され提供されている。オペレーティングシステムは通常、ユーザーやアプリケーションプログラムとハードウェアの中間に位置し、ユーザーやアプリケーションプログラムに対して標準的なインターフェースを提供すると同時に、ハードウェアなどの各リソースに対して効率的な管理を行う。メモリ管理、マルチタスクなどのプロセス管理、更にはGUIなどのユーザインタフェース、TCP/IPなどのネットワーク、などがある。オペレーティングシステムは、パーソナルコンピュータからスーパーコンピュータまでの各種のコンピュータや、更にはスマートフォンやゲーム機などを含む各種の組み込みシステムで、内部的に使用されている。ミドルウェア、ファイル管理ソフトウェアやエディタや各種設定ツールなどのユーティリティ、基本的なアプリケーションソフトウェア(ウェブブラウザや時計などのアクセサリ)が、マーケティング上の理由などから一緒に含められていることもある。OSの中で、タスク管理やメモリ管理など特に中核的な機能の部分をカーネル、カーネル以外の部分(シェルなど)をユーザランドと呼ぶ事もある。種類を指定する部分のこと、およびそのコード(符号)のことである。数式における演算子に相当する。命令のもうひとつの主要部分は、操作される対象を指定するオペランド(被演算子)である。(プログラミング)ブジェクト(object)はオブジェクト指向プログラミングにおいて、プログラム上の手続きの対象を抽象化する概念である。コンパイラがソースコードを処理した結果生成される、コード生成の結果であるバイナリコードを含む中間的なデータ表現のファイルである。中身は、機械語バイナリとそれに付随するシンボルテーブルやリロケーションテーブルといった付加情報であり、さらにデバッグ支援情報や近年はリンク時最適化等のための高度な情報が含まれる場合もある。オブジェクトファイル群をリンクすることによって最終的な実行ファイルやライブラリが作成される。オブジェクトファイルのほとんどは機械語である(コンピュータのCPUが直接実行できるコード)。オブジェクトファイルフォーマットはコンパイラやアセンブラが生成するオブジェクトファイルのファイルフォーマットである。»オブジェクト指向ブジェクト指向(オブジェクトしこう)とは、オブジェクト同士の相互作用として、システムの振る舞いをとらえる考え方である。オブジェクト指向の枠組みが持つ道具立ては、一般的で強力な記述能力を持つ。複雑なシステム記述、巨大なライブラリ(特に部品間で緊密で複雑な相互関係を持つもの)の記述においては、オブジェクト指向の考え方は必須である。GC)とは、プログラムが動的に確保したメモリ領域のうち、不要になった領域を自動的に解放する機能である。「ガベージコレクション」を直訳すれば「ゴミ集め」「ごみ拾い」となる。1959年ごろ、LISPにおける問題を解決するためジョン・マッカーシーによって発明された。メモリの断片化を解消する機能はコンパクションと呼ばれ、実現方法によってはガベージコレクションと共にコンパクションも行う仕組みになっている。そのためコンパクションを含めてガベージコレクションと呼ぶ場合もあるが、厳密には区別される。ガベージコレクションを行う主体はガベージコレクタと呼ばれる。ガベージコレクタはタスクやスレッドとして実装される場合が多い。参照カウント方式のガベージコレクションは通常煩雑なコーディングを必要とするが、それを必要なく実装したライブラリとしがある。lab.)は、かつて存在したパソコン(マイコン)ソフトハウスである。熊本県熊本市を拠点としていた。Bandicoot)は、ソニー・コンピュータエンタテインメント(現・ソニー・インタラクティブエンタテインメント)が発売したプレイステーション用のアクションゲーム。クラッシュ・バンディクーシリーズの第1作。(コンピュータ)ラス()は、クラスベースのオブジェクト指向においてオブジェクトの設計図にあたるもの。クラスから生成したオブジェクトのことをインスタンスという。クラスには、インスタンスの保持するデータ(メンバ変数、フィールド(UMLでは「属性」ともいう))と操作(メソッド、メンバ関数)が記述される。クラスは、継承・ポリモーフィズム・カプセル化などの、オブジェクト指向プログラミングにおける重要な概念を実現する強力な手段である。compiler)は、コンパイラが動作している以外のプラットフォーム向けに実行ファイルを生成する機能を持つコンパイラである。クロスコンパイラは主に組み込みシステム向けのコンパイラや、マルチプラットフォーム対応のコンパイラとして使われる。必要最小限のメモリしか搭載していないことが多いマイクロコントローラを使った組み込みシステムなど、実行ファイルを動作させたいプラットフォームがコンパイル環境としては不適切な場合にはクロスコンパイラは必須である。システムが複数のプラットフォームをサポートする場合に、準仮想化のためのツールとしてクロスコンパイラを利用することが一般化しつつある。»グラフ電卓ラフ電卓(グラフィック電卓)は、グラフの描画、連立方程式の計算、変数を用いた演算ができる電卓である。「グラフ関数電卓」ともいう。ポピュラーなグラフ電卓はプログラミング可能で、ユーザが科学技術、教育向けにカスタマイズしたプログラムを作ることができる。グラフ電卓は大きなディスプレイを持ち、複数行のテキストや計算を表示できるのが一般的である。»ゲームボーイームボーイ()は、1989年4月21日に任天堂が発売した携帯型ゲーム機。日本国内での発売当時のメーカー希望小売価格は12,500円(税込)→8000円。