質問: コンピューターを動作させる手順や命令を記述したプログラムのことを、「ハードウェア」に対して何という?
回答: ソフトウェア

タイトル: ソフトウェア
ソフトウェア(英: software)は、コンピューター分野でハードウェア(物理的な機械)と対比される用語で、何らかの処理を行うコンピュータ・プログラムや、さらには関連する文書などを指す。

タイトル: コンピューティング
プログラミング言語で書かれたプログラムは、プログラミング言語処理系と呼ばれるコンパイラやインタプリタというプログラムにより、解釈実行されたり変換されたりする。プログラムを複数動作させるような場合の、個々の動作実体(インスタンス)をプロセスと呼ぶ。コンピュータプログラムは、コンピュータに何をどうすればよいか指示を出す。現在のパーソナルコンピュータ等の一般的な構成では、その記憶装置のうちの補助記憶装置に未使用時は格納されており、主記憶装置にロードされて実行される(主記憶装置に実行対象のプログラムを置く方式をプログラム内蔵方式と言う)。「ソフトウェア」は、もともと、コンピュータプログラムという概念が出来た後、ハードウェアの対義語として便利なため多用されるようになった曖昧な語である。

タイトル: ソフトウェア
LSIなどを例にとると、LSIの物理的な回路そのものはハードウェアであり、その回路によって表現される処理手順はソフトウェアと考えられる。一般的なソフトウェアは、補助記憶装置の中に機械語として記録されている。なお機械語は中央処理装置(CPU)の製品種別ごとに異なっている。ソフトウェアの利用時には補助記憶装置の内容が主記憶装置に読み込まれた後、中央処理装置において、データの移動、計算、制御フローなどの処理が実行される。これにより機械語は、コンピュータの状態を次々と変化させる。従ってソフトウェアは、ハードウェアの状態を変化させる命令列と考えられる。記憶装置に異なる命令群を読み込んで計算を制御する概念は階差機関の一部としてチャールズ・バベッジが考案した。

タイトル: コンピュータ
ソフトウェアという用語も似た意味合いだが、これはプログラム一般を指すより広い概念である)をメモリー上にロードし、プログラムからの要求に応じていつ、どのリソース(メモリやI/O)をそのプログラムに割り当てるかを決定する。オペレーティングシステムはハードウェアを抽象化した層を提供し、他のプログラムがハードウェアにアクセスできるようにする。例えばデバイスドライバと呼ばれるコードがその例である。これによってプログラマは、コンピュータに接続された全ての電子装置について、その奥深い詳細を知る必要なくそれらの機械を使うプログラムを書くことができる。また、ライブラリと呼ばれる再利用可能な多くのプログラム群を備え、プログラマは自ら全てのプログラムを書くことなく、自らのプログラムに様々な機能を組み込むことができる。

タイトル: ハードウェア
ハードウェア(英語: hardware)とは、コンピュータなどのシステムにおいて、機械、装置、設備、部品といった物理的な構成要素をいう。ソフトウェアとの対比語であり、単に「ハード」とも呼ばれる。転じて、コンピュータとは無関係な分野においても、物理的な設備・施設・車両などを「ハードウェア」、物理的な形を持たない規則・運用・教育・技術・ノウハウなどを「ソフトウェア」と呼ぶことがある。

タイトル: プログラミング用語 (分野別)
プログラミング言語は人工言語、コンピュータ言語の中の1群である。

タイトル: 回路シミュレーター
回路シミュレーター(英文名称:Circuit Simulator)とは、電気回路に入力となる電圧、電流を与えた時の出力応答を仮想的にコンピューターで再現するソフトウエア・プログラムである。

タイトル: サイクルあたりの命令実行数
コンピュータ・アーキテクチャにおけるサイクルあたりの命令実行数(英: instructions per cycle、IPC、クロック当たりの命令実行数とも)とは、プロセッサの性能の指標の一つであり、各クロックサイクルにおいて実行された命令の平均数のことである。命令あたりのサイクル数(英語版)の逆数である。

タイトル: Architectural state
architectural state(英: architectural state, AS)は、コンピュータのCPUの中でプロセスの状態を保持する部分で、下記を含む:ここには、たとえばALU のような実際の演算装置は含まれない。

タイトル: コマンド (コンピュータ)
対話環境を持つオペレーティングシステム (OS) において、コマンドラインインタプリタ(シェル)が解釈し実行する文字列のことを「コマンド」と呼ぶ。多くの場合、OSコマンドは任意個の引数をとることができる。普通、引数は任意の文字列であるが、コマンドが動作する際の対象となるオブジェクト(ファイルなど)の指定と、コマンドの細かな動作を変更するオプションとに、概ね大別される。後者のオプション文字列には、Unixなど多くのシステムではハイフン - を、MS-DOS の標準コマンド等ではスラッシュ / を前置する、という慣習がある。オプションを省略した場合、既定値が使われる。以下に挙げた例は、コマンドラインインタプリタ(Unix系のシェル)へのコマンドである。以下は、別のコマンドラインインタプリタ(DOS、OS/2、Microsoft Windows のコマンドプロンプト)へのコマンドの例である。

タイトル: 数式処理システム
上記以外にも、以下のような機能を持つ数式処理システムがある。多くの場合に、システムはプログラミング言語としての機能を持ち、ユーザーがアルゴリズムをプログラムとして記述して処理させることができる。言語の様式は様々で、命令型プログラミングや関数型プログラミングもあれば、制約プログラミングや論理プログラミングもあるし、4GL的なものもある。

タイトル: マジコン
マジコン(正式名: マジックコンピューター)とは、テレビゲームのゲームソフトをコピー(複製・バックアップ)したり、またそのコピーやイメージファイルをゲーム機で起動させるための機械(コンピュータ)の総称である。

タイトル: コンピュータ
入力のほうはコンピュータが外の世界からデータ類を得ることおよびその内容である。一方、出力のほうはコンピュータがデータ類を外に送り出すことおよびその内容である。入出力インタフェース(I/Oインタフェース)は、コンピュータと周辺機器の間でやりとりを可能にするための仕組みであり、それが可能になるように仕様や規格が定められている。「入出力装置」も総称であり、(1)入力を得るためのもの(入力装置)(2)出力するためのもの(出力装置)(3)入力と出力を兼ね備えたもの(入出力装置) の3つに大別することができる。1番目の入力装置としては例えば、PCのキーボード、マウス、スマホやタブレットの内蔵カメラやマイクロフォンなどがあり、他にもスキャナ、バーコードリーダーなどがある。出力装置としては、PCのディスプレイ、スピーカー、プリンター、スマートフォンのバイブレーターなどがある。

タイトル: プログラミング用語一覧
プログラミング用語一覧(プログラミングようごいちらん)は、コンピュータのプログラムおよびプログラミングに関する用語の一覧である。五十音(アルファベット・その他)順に記載している。分野別の一覧については、プログラミング用語 (分野別)を参照。

タイトル: パーソナルコンピュータ
典型的なパーソナルコンピュータは、以下のハードウェアから構成される。(かつて一般的だった)デスクトップパソコンと、現在主流のノートパソコンでは、基本要素はおおむね同じであるが、ノートパソコンのほうはより小さな部品やユニットが使用されて細やかに一体化がなされている傾向がある。パーソナルコンピュータのメインボードの典型的なマザーボードの構成は、システムの中央となるチップセット、UEFIなどのファームウェアが書き込まれたROMあるいはフラッシュメモリ、CPUやメインメモリなどの専用のソケットやスロット類(固定の場合もある)、PCIeなど汎用のバスのスロット(ビデオカードには2019年現在はこれが使われることが多い)、その他SATAやUSBなどのためのソケット、オンボードグラフィック機能、などから成る。デスクトップPCのメインボードは、ATX仕様、Mini-ITX仕様などがある。

タイトル: マイクロプログラム方式
マイクロプログラム方式のプロセッサのハードウェアの実装は一般のプログラマから見えるものとは違っていて、よりシンプルである。このシンプルなアーキテクチャ(マイクロアーキテクチャ)上で、プログラマに見せるアーキテクチャをエミュレートするマイクロプログラムが実行される。このマイクロアーキテクチャはプログラマに見えているアーキテクチャと固定的な関係である必要は全くない。これを利用すれば、様々なマイクロアーキテクチャのハードウェア上に任意の(プログラマから見える)アーキテクチャを実装することができる。例えば、IBMのSystem/360は32ビットアーキテクチャで16本の汎用レジスタを持っている。しかしSystem/360の実際のハードウェアの実装ではもっと単純なマイクロアーキテクチャが実装されている。

タイトル: 隠しコマンド
隠しコマンド(かくしコマンド)とは、コンピュータプログラムに用意されながら、取扱説明書や仕様書には記載されないコマンド(命令・操作)である。

タイトル: Atmel AVR
何かの略称ではなく「AVR」で一語である、とAtmelでは言っている。尤も、初期はアーキテクチャ開発者であるノルウェー科学技術大学の2人の学生アルフ・エギル・ボーゲン(Alf-Egil Bogen)とヴェガード・ウォラン(Vegard Wollan)の名を取り、「アルフとヴェガードによるRISC」の意味があったという。PIC同様に回路構成が簡単でCPU、メモリ(RAM、ROM)、I/O、データ記憶用のEEPROM、クロック発振回路、タイマーなどが1チップに収められており、書き込まれたプログラムにより制御される。ISP (In-System Programming) に対応し、コンパレータを内蔵する等、i8051ピンコンパチ品や外部にRAMやI/Oを増設する外部バスのあるものもあり、電子工作を行う人の間で人気がある。

タイトル: 命令セット
ISAに対してプログラミングをおこない、ISAに対してプロセッサ実装をおこなうことで、単一のISAに対して書かれたプログラムが様々なプロセッサで動作する。

タイトル: ハードウェア記述言語
ハードウェア記述言語による設計の本質は、ハードウェア記述言語プログラムをシミュレーション可能な点にある。シミュレーションすることで、設計のハードウェア記述言語プログラム(モデル)が設計検証に合格するようにできる。設計検証は、コード実装(ハードウェア記述言語プログラム)がその設計が意図した機能(仕様)に対して妥当かを検証する重要なマイルストーンである。シミュレーションによって構造(アーキテクチャ)的な吟味もする。技術者は基本設計に対して複数の設計を実験的に書き、シミュレーションでそれらの動きを比較することができる。以上のようなことから、ハードウェア記述言語による設計ではシミュレーションが重要である。ハードウェア記述言語で書かれたモデルをシミュレーションするには、テストベンチと呼ぶシミュレーション環境をまず記述する。

タイトル: プログラムマネージャ
プログラムマネージャは、以下のOSに搭載されている、プログラム起動用のグラフィカルシェル(プログラムランチャー)である。

タイトル: パーソナルコンピュータ
パーソナルコンピュータにおけるファームウェアは、主にマザーボードのファームウェア(BIOS / UEFI)を指すことが多い。

タイトル: アセンブリ言語
アセンブリ言語は機械語と強く結びついているため、各プロセッサ向けに仕様の異なる様々な(具体的な)アセンブリ言語が存在する(「アセンブリ言語」は総称である)。同じ命令セットに対しても複数のアセンブリ言語が存在しうる(例: GNUアセンブラのgasのインテルプロセッサ用)。アセンブリ言語の基本文法として、1つの命令は1つのニーモニックと0個以上のオペランドからなる。プログラム全体はニーモニック/オペランド列、ディレクティブや擬似命令と呼ばれるメタな文、コメント、データで構成されている。通常の文はオペコードのニーモニックで始まり、パラメータ(データ、引数)のリストがそれに続く。多くのアセンブリ言語はオペランドのアドレスや定数をラベル・シンボルで記述できハードコーディングを避けられる。

タイトル: 命令 (コンピュータ)
命令はオペコードとオペランドの組み合わせで表現される。オペコード(英: opcode)はプロセッサで実行される操作の種類を指定する符号である。プロセッサが対応する各演算に対して1つのオペコードが割り付けられる。ほとんどの場合オペコードはバイナリ形式であり、そのビット長はプロセッサにより異なる(例: x64 ADD演算 0x01)。オペランド(英: operand)はプロセッサで実行される操作の対象である。オペランドの内容・個数はオペコードごとに規定される。例えば二項演算であるADD演算であれば2つのオペランドを取るし、遷移先を指定するJUMP命令であれば1つのオペランドを取る。

タイトル: CANO-AID
このようなものをパターンとして部品化しておき、その部品を自動的に組み合わせることによって動作するプログラムを自動生成することが、可能になるといった基本的な考え方が、CANO-AIDの設計思想である。

タイトル: 命令セットシミュレータ
通常の実行時にはこうした情報を取得することが容易でなく、また特に高水準言語のプログラムは、そもそも機械語命令を抽象化してしまうため、特にその傾向が強い。この使い方では、ISS は性能解析の一形態として考えることができる。

タイトル: シェル
COM」といったようにして設定されるファイルは、その設定項目名の通りシェルであることが多いが、ブートの最後に、最初のプロセスとして実行するプログラムを指定するものであって、例えばアニメなどの架空のOSの起動画面を再現するプログラムなど、シェルでないものを指定することもある。(エキスパートシステムにおいては、特定用途の知識ベースを入れる前の「空の」エキスパートシステムをシェルと呼ぶ)

タイトル: 仮想機械
システム仮想機械はシステム全体を再現し、その上でOSを動かすことを可能にする。動作させるOSにいくらかの変更を加えることが必要な場合(準仮想化)もある。システム仮想機械では、複数の仮想機械に計算資源やメモリ資源、ディスク資源を効率的に配分(スケジュール)したり、ハードウェア割り込みなどを伝達する必要がある。これらを制御するプログラムをハイパーバイザと呼ぶ。システム仮想機械は、ユーザーやプログラムから「別のコンピュータ」に見えるもの(OS環境を実現するもの)を指すが、コンピュータの初期には仮想記憶やマルチタスク、マルチユーザー、タイムシェアリングなど、現在ではOSの機能となった技術を含める場合がある。仮想機械の技術はメインフレームで使われていたが、現在でコンピュータによるサービス提供の分野で一般的な技術となりつつある。

タイトル: スーパーバイザー
コンピュータで、アプリケーションプログラムの実行を管理するプログラム、すなわちオペレーティングシステム(特にカーネル)を指す語である。あるプログラムがカーネルの機能を呼び出すことをスーパーバイザーコールと呼ぶ。システムコールともいう。

タイトル: RISC
初期のプログラミング環境では、コンパイラは存在しなかった。プログラミングは機械語かアセンブリ言語で行われた。プログラミングをより簡単にするため、コンピュータの設計者はどんどん複雑な処理を行う命令を追加していった。それはつまり、現在ならば高度なプログラミング言語で関数(サブルーチン)レベルで実現されるべきものだった。当時の風潮としてコンパイラの設計よりもハードウェアの設計のほうが簡単であるという考えがあり、結果として複雑なことはハードウェアに担わせることとなった。高度な命令の追加を必要とする別の要因としてメモリ空間に強い制約があったことが上げられる。メモリは非常に高価で、システムに用意できるメモリ空間が限られていたので、プログラム容量を縮小することが強く要請された。例えば、当時のシステムには数キロバイトしかメモリが搭載されていなかった。

タイトル: 同期 (計算機科学)
コンピュータのハードウェアは、一般にクロック同期設計により全体が同期して動作する。また、フォールトトレラントシステムでは、複数のCPUで同一の処理を同時に(つまり同期して)実行する(冗長化)。マルチプロセッサシステムのキャッシュメモリは、MESIプロトコルなどのキャッシュコヒーレンシプロトコルを使用して内容を同期させて一貫性を保つ。

タイトル: 拡張性
ところが、汎用コンピュータ、パーソナルコンピュータや家庭用ゲーム機など、その運用段階においてある程度その目的に幅のあることを前提とした一連のコンピュータ装置に関しては、あらかじめ厳密にその機器構成の要件を設定して設計する事は適わないから、本体の機能・性能としては、ニーズに対する最大公約数的な設計を行い、個々個別に必要となるハードウエア装置に関しては、最終的にその用途が決定された後にシステムインテグレーターやユーザーの手によってシステムに組み込む必要が発生する。ここで、最終的にどの程度システム構成を自由に設定できるようにするかということが、コンピュータハードウェアの拡張性を決定する事になる。コンピュータハードウェアの拡張性ということについて、パーソナルコンピュータを例に取ると、通常、パーソナルコンピュータの入力は、キーボードとマウスやトラックパッドを用いるのが一般的である。