コマンドラインインタプリタ

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索
bashのスクリーンショット

コマンドラインインタプリタ (command line interpreter) は、コンピュータのコマンドライン、すなわち、ユーザによりキーボードなどから入力される文字列の行(ライン)のコマンドを解釈[1]し、オペレーティングシステム(以下、OS)やプログラミング言語処理系などに渡すコンソールアプリケーションであり、キャラクタユーザインタフェースを構成する要素である。OSの標準ユーティリティとしてはコマンドラインシェルがあり、いくつかのプログラミング言語処理系が持つそれに関してはen:Read–eval–print loopも参照。

[編集]

ユーザインタフェースとしてのコマンドライン[編集]

コマンドラインインタプリタによって実現されるユーザインタフェース (「コマンドラインインタフェース」、CLI) は、有効で簡潔なたくさんのコマンドを発行する環境をユーザに提供する。一方でこの環境は、コマンドやそのパラメータの内容や、それらの構文を覚えることを(多かれ少なかれ)ユーザに要求する。

1963年のSketchpadなど研究室レベルの成果などがあるので「キャラクタユーザインタフェース(CUI)が先にあり、グラフィカルユーザインタフェース (GUI) が後から生まれた」というような「定向進化論」的な見方は(非常に良く見られるが[2])ほぼ誤りではあるものの、ウィンドウなど一般的な操作系としてのGUIの発展は1970年代であり、それが個人が容易に購える安価な市販製品として流通するには1980年代から1990年代のパーソナルコンピュータ市場の拡大を待たねばならなかったわけであり、それ以前には[3]、もっぱらCUIベースのコマンドラインインタフェースが、コンピュータのコンピュータらしい使用のための唯一の(たとえば、自動販売機にコンピュータが内蔵されていても、それを使用する購買者が「コンピュータを使って」いるとは言えない)インタフェースであった。

その後GUIも発達したが、Unix系環境におけるコマンドラインシェルや、NT系以降のWindowsにおけるcmd.exe(なぜかアイコンに付けられているキャプションが「コマンドプロンプト」だが)など、GUI経由の操作では煩雑になり過ぎる指示や作業を簡潔に効率良く行うためのインタフェースとして、GUIと相互に補完する関係にあり、必要に応じて使い分けるという住み分けになっている。

また、シスコシステムズなどのルーターの操作インタフェースとしては GUI も提供されているものの、大半のユーザは CLI を使用している。3D CADソフトウェアのひとつRhinoceros 3Dでも、アイコンによるGUIやプルダウンメニューに加えコマンドラインが用意されている。

スクリプト言語[編集]

ほとんどのコマンドラインインタフェースは、様々な範囲において、スクリプト言語をサポートする(それらは多くの場合、結局、各々のコマンドラインインタフェースのインタプリタ言語は、それぞれ特定のコマンドラインインタフェースに固有のものであるのだが)。各々のコマンドラインインタフェースは、それ向けに書かれた言葉によってユーザの入力を受け付ける(シェルスクリプトバッチファイル などで)。いくつかのコマンドラインインタフェースは他のコマンドライン言語のエンジンを組み込んでいる。たとえば、REXX は、自身の言語エンジンに加えて、他の言語のスクリプトも受け付ける。

逆に、REXXPerlPythonなどの eval関数 を持つスクリプト言語は、他のいくつものコマンドラインインタフェースに実装され得る。それらは、MS-DOS のようないくつかのオペレーティングシステムには、自身が持つコマンドラインインタフェースよりも、より柔軟なコマンドラインインタフェースを提供することになる。他のいくつかのケースでは、そのようなコマンドラインインタフェースは、そのユーザインタフェースとプログラミング言語の入力/出力機能を使うことにより、高いユーザカスタマイズを可能にする。

[編集]

  1. ^ ここの動詞 interpret を「通訳」とするのは誤訳で、解釈とするのが適切。
  2. ^ ロクに歴史を調べずに書かれたと思われる入門書などに
  3. ^ 個人が所有するには高価過ぎるシロモノだった時代のワークステーションと、パーソナルコンピュータとの間などには、5年~10年程度の「時差」が以前は存在したことなどにも注意が必要である。