プログラミング 用語集

タイピングのイメージ

クリエイティブ用語集についてはこちら

インデックス

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

          

用語解説

A~Z

A

ABIエービーアイ
Application Binary Interface の略。複数のマシンコード(バイナリデータ)間でのすり合わせ。アプリケーションプログラムのプログラマーが、OSやライブラリなど、すでにロードされた他のマシンコードプログラムとの連携を考えるときに本来必要となりますが、通常はそのための処理が言語処理系やAPIの中に含まれているため、高級言語でのプログラミングでは、特段意識せずに合わせられていることになります。ABIには、以下のようなすり合わせが含まれます。
  • 実行ファイルの形式
  • 前提としているアーキテクチャ
  • システムコールとその入出力仕様
APIエーピーアイ
Application Programming Interface の略。アプリケーションプログラムのプログラマーが、自前でプログラミングしなくても、別で作られたプログラム側から提示された呼び出し文を自前のプログラム中に記述するだけで、別で作られたプログラムの一部機能を利用できる、そんな提示内容がAPIです。

C

CSSシーエスエス
Cascading Style Sheets の略。元々、スタイルシートとは、文書の有り様(style)についての指示をまとめた紙(sheet)のイメージで、具体的には、文字の色や太さ、レイアウトなどの指示が書かれます。かつては数種類のルールが考案されました。その中でCSSという名前のスタイルシートルールは、Cascade(滝)のように、何段階かのスタイル階層を積み重ねられるようになっています。たとえば、端末標準のスタイルに、ウェブページ制作者が指定したスタイルの重ね書きができ、そこへさらに閲覧者の好みで設定したスタイルを重ね書きできます。そして結局、そのCSSが業界標準になり、スタイルシートと言えば、CSSのことを指すようになりました。

H

HTMLエイチティエムエル
HyperText Markup Language の略。ウェブページは、その構成をコンピューターが理解できるように、文書要素ごとにHTMLのルールで決められたマーク付け(markup)をして作ります。
例)
<h1>タイトル</h1>
<h2>見出し</h2>
<p>段落</p>

J

JavaScriptジャバスクリプト
ウェブブラウザをOSのように使い、よりリッチなコンテンツ表示等ができるプログラム言語。元々は、文書間のハイパーリンクが便利というだけの利点しかなかったインターネット初期のウェブページでしたが、当時の主な利用者が研究者であったこともあり、どんどん彼らにとって便利になるような改良案が作られました。それらの改良案の1つが、画像や音声などのリッチコンテンツを気軽に扱えるようにすることであり、もう一つが、ユーザーの操作に応じて表示を変えられるインタラクティブなウェブページにすることでした。インタラクティブなウェブページにするには、プログラムが必要です。ウェブブラウザの仕様に合わせてプログラミングができるように作られたのが、JavaScript です。JavaScript の名前の由来は、作られた当時、Java というプログラミング言語が流行し始めていたことにあやかり、それに「簡単な文書(プログラム)」と言う意味の Script がつけられ、JavaScript となったそうです。
Javaジャバ
様々な端末環境での利用を考えて作られたプログラミング言語。

M

Microsoft Officeマイクロソフト オフィス
Microsoft Office は、Word、Excel、PowerPoint などの事務作業用アプリです。

O

OSオーエス(Operating System)
元々の意味は、コンピューター内の各機器(プロセッサやメモリ等)のオペレーション(操作)を担当するプログラムと、さらにそれら全体を統括するプログラムが一体となったシステムという意味。コンピューターの動作を芝居に例えるなら、客の前で決められた配役をこなす出演者(キャスト)がアプリであり、裏方と言われる照明/音響等のスタッフ一同および監督がOSということになる。具体的には、パソコンなら Windows や Mac OS 、スマホなら Android や iOS が、OSです。

P

Pythonパイソン
シンプルな見た目を重視して作られたプログラミング言語。AI(人工知能)などの研究分野でよく使われています。

S

Scratchスクラッチ
米国マサチューセッツ工科大学(MIT)内にあるメディアラボ(研究所)で開発されたプログラミングアプリ。

あ~ん

あ行

アセンブリ
ニーモニックとそのオペランドを寄せ集めて作るプログラミングのこと。assembleは「寄せ集める」という意味の動詞で、その名詞形がassembly。そのアセンブリプログラミングを言語化したのがアセンブリ言語です。
アセンブリ言語によるプログラムは、英単語に近いニーモニックで表現されたマシンコードの直訳になります。
アセンブリ言語によるプログラムを、マシンコードに変換するプログラムをアセンブラ(assembler)と言います。
アプリ
アプリケーションプログラム(Application Program)の略。Application は、よく「応用」と訳されます。応用とは「用途に応じて」という意味で、用途に応じて使われるプログラムがアプリケーションプログラム(略してAPやAPPとも書く)、すなわちアプリなのです。
例えば、
  • 集計などの表計算をしたい場合には、Excel などの表計算アプリを使います。
  • ウェブページを閲覧したい場合には、Google Chrome などのウェブブラウザアプリを使います。
他に、アプリケーションソフトという言い方もありますが、「ソフト」はプログラムとまったく同じ意味ではなくて、プログラムだけでなく、様々なデータやコンテンツも含んだ意味になります。
なお、アプリの対義語は、OS(Operating System)です。
ウェブブラウザ
ウェブページを閲覧する(browse)ためのアプリの総称。単にブラウザと呼ばれることも多い。Google Chrome もブラウザ、Safari もブラウザ、Internet Explorer もブラウザ、Microsoft Edge もブラウザ。Firefox もブラウザ。

か行

キーワード
プログラミング言語仕様で決められた特定の意味を持つ文字列のこと。主に、制御構文の構成要素となったり、データ型定数などを表したりするのに使われます。多くの言語で共通するキーワードには、以下のようなものがあります。
キーワードの例: if, for, return, new, class, true, false, null など
クロック
クロックは、水晶に電気を通して得られる一定周期の振動現象を利用した、発信装置です。メトロノームが カチ(左) カチ(右) カチ(左) カチ(右) ・・・と同じテンポで左右に振れ音を出すように、クロックも、OFF ON OFF ON OFF ON OFF ON・・・ と、電気の OFF / ON を同じテンポで繰り返します。
メトロノーム
メトロノーム
コンピューターのプロセッサは、このクロック信号がOFFからONに切り替わるタイミングでだけ、入力データを処理できます。実際のクロック速度は、現在ではGHzギガヘルツ単位が標準となっています。1 GHz は、1 秒間に 1,000,000,000 回、OFF から ON に切り替わるクロック速度を表します。本来、水晶の一定振動は0.01GHz程度しかありませんが、クロックでは、位相同期回路(PLL:周波数シンセサイザー)という速度を整数倍に高められる回路を通してGHzレベルにまで上げています。
コールスタック
スタックも参照のこと。モジュール呼出(コール)で使う、メモリ上のスタック領域。メモリは通常、連続した領域をメモリアドレスの昇順に読み書きして使いますが、降順の書き込みで確保される専用領域をスタック領域と言います。コールスタック領域の中で、特に処理中のモジュールが使う範囲をスタックフレームと言います。
スタックフレームは、処理中のモジュールが最初に確保したメモリアドレス(ベースアドレス)から、最新の書き込みで確保したメモリアドレス(トップアドレス)までの範囲になります。
プロセッサは、スタックポインタ(レジスタ)でトップアドレスを保持し、ベースポインタ(レジスタ)でベースアドレスを保持します。
コールスタック
コールスタックのイメージ
コマンド
アプリにはもともといくつかの機能が付いています。例えば、Bボタンを押すと太字になる、フォントリストからフォントを選ぶと、そのフォントに変わる、等。それらの機能もアプリケーションプログラムの一部です。アプリのユーザーが、ボタンを押す等によってアプリに対し出せる指示のことをコマンド(命令)と言います。
コンパイル
プロセッサの動作につながらない高級言語から、プロセッサの動作につながるマシンコードへと、プログラムを機械的に再編集すること。

さ行

参照
処理対象となるデータを直接プログラムコード内に書き入れず、代わりに処理対象が入っているメモリアドレス(データが1バイトより大きい場合はその先頭アドレス)だけコード内に書き入れ、プロセッサにそのメモリアドレスからデータ入力をさせる指示のこと。
自然言語
プロセッサで使用されるマシンコードに対して、人間が普段の生活で自然に使っている言語を自然言語と言います。自然言語からマシンコードへの直接変換(翻訳)は非常に難しく、自然言語の代わりにマシンコードへの変換を考慮してプログラミングで使われる言語がプログラミング言語です。
スタック
スタック(stack)とは山積みのことで、下から順に積んでいき、上から順に取っていく使い方になぞらえて、読みと書きで逆順にするメモリの使い方をスタックと言います。読みも書きもその時点での最上位が重要ポイントとなるため、そのメモリアドレス(トップアドレス)を保持するものをスタックポインタと言います。
スタックへの書きをPUSH、スタックからの読みをPOPと言います。PUSHするとスタックポインタは自動的に上昇し、POPするとスタックポインタは自動的に下降します。コールスタックも参照のこと。
ソースコード
source code という英語の和訳。source は元、源。code は符号、変換語、つまりプログラムのこと。よってソースコードは、元のプログラム。つまり、マシンコードにさらに変換する前の、人間が書いたプログラムのこと。
ソフトウェア
ウェア(ware)とは、グッズ(製品)のような意味。ソフトウェア(software)は、ハードウェアに対する言葉として、あとから作られた言葉です。コンピューターが作られ始めた頃、「コンピューターで処理させるデータやプログラムって、機械と同じくらい重要なグッズだけど、ハードウェアとはちょっと違うよね?」ってことで、ハードウェアの対義語として触れないものについて、ソフトウェアという言葉が用いられるようになりました。略して「ソフト」とも言います。 ⇔対義語: ハードウェア

た行

デフォルト(default)
ユーザーが本来設定すべき箇所が「未設定」であること。転じて、ユーザーが設定しなかった場合の「備え」のことを指します。日本語では略して「デフォ」とも言います。
デフォルト動作は、ユーザーが設定しなかった場合の標準動作、デフォルト値は、ユーザーが設定しなかった場合の標準設定を表します。
なお、デフォルト(default)は、法律分野でも、期限までに債務を履行できなかったことを意味します。de(落ちる)+fault(失敗)というのが default の語源です。
透過(transparent)
プログラミング用語で透過とは、「存在しないに等しい」という意味です。本来の透過は、「光を通す」「ける」という意味で、半透明くらいだからさすがに存在はわかるイメージですが、そのイメージで想像してしまうと理解が難しくなります。プログラミングでは、「○○にとって透過」というような使い方をするため、「本当は存在しているけど、○○にとっては存在していない」「まったく見えていない」と考えた方が意味が通ります。

な行

入出力

「入力」=インプット(input) という言葉と、「出力」=アウトプット(output) という言葉を合わせた言葉。英語では、Input/Outputの略で、I/O(アイオー)とも言います。

input は、in(中へ) と put(置く) がくっついた言葉で、「入力」と訳され、output は、out(外へ) と put(置く) がくっついた言葉で、「出力」と訳されました。(置くだけなら「力」とは違うはずですが、明治時代から続く電力業界用語の名残でしょう。)

本来は、メインのコンピューターの中へ入れるのがインプット、メインのコンピューターから外へ出すのがアウトプットですが、複数コンピューター間のデータのやりとりや、周辺機器とのデータのやりとりの場合、紛らわしくなるので注意が必要です。

は行

ハードウェア
ウェア(ware)とは、グッズ(製品)のような意味。調理用具をキッチンウェア(kitchenware)と言ったり、倉庫のことをウェアハウス(warehouse)と言います。元々ハードウェア(hardware)とは、堅い製品ということで、加工に使う「道具」を指し、そこから転じて「機械」なども指すようになりました。コンピューターの世界では、パソコンやスマホなど、手に取って触れる機械はみなハードウェアです。略して「ハード」とも言います。 ⇔対義語: ソフトウェア
バイナリ(binary)
binary は、英語で二進数を意味します。特殊な例外を除きほぼ全てのコンピューターは、電気のON / OFF パターン(ビットパターンと言います)を論理回路で変換することによって、処理をしています。この電気のON / OFF パターン(ビットパターン)は、二進数としてみることができるので、ほぼ全てのコンピューターはバイナリデータだけを扱っていると言えます。
つまり、コンピューターに何らかの処理をさせるには、まず、物事をデータ化し、データを数値化し、その数値を二進数化したバイナリデータを、論理回路に入力します。そして、論理回路で変換後に出力されたバイナリデータを、元のデータと同種のデータに変換するなどして、処理結果を得ているのです。
ブート(boot)
OSを起動すること。OSは、コンピューターを使う上でその他のプログラムより重要なプログラムになります。そのためOSは、他のプログラムよりも先に起動させておく必要があります。しかしOSは、様々な管理機能を持つ巨大なプログラムであるため、起動し始めてから起動完了まで数分もかかります。そこで、起動に失敗して時間を無駄にしないために、短時間で終わるハードウェア準備用の小さなプログラムを、コンピューターの電源投入直後に自動起動させ、そこからOSを起動する専用のプログラム(ブートローダー)を起動します。この方式を通称、ブートストラップ(bootstrap)と言います。strapは携帯電話のストラップと同じで、ブーツ上部に付いている引き上げつまみが元来のbootstrapです。
bootstrap
大きなブーツ(OS)を小さなつまみ(strap)で引き上げるのと同じイメージから、OS起動をブートと言うようになりました。なおここから、OS再起動のことをリブート(reboot)と言います。
プログラミング(programming)
人間がプログラムを作ること。「作ること」もしくは「作っている時」が「プログラミング」です。よく混同されがちですが、できあがった物は「プログラム」、そして、プログラムを実行する時は「ランタイム」であり、それぞれ用語が異なります。
よって、API(Application Programming Interface)という語は、できあがったプログラムのインタフェースではなく、アプリケーションプログラムを作っている時に使うインタフェース≒外部ライブラリであり、ABI(Application Binary Interface)は、できあがったマシンコードプログラムが使うインタフェースになります。
プログラミング言語(programming language)
人間がプログラムを作るために使用する言語。プログラミングの言語であり、「プログラム言語」という言い方は正しくありません。
プログラム(program)
コンピューターが自動で処理を行うように、その動作を決めたもの。
プログラムカウンタ
次に実行されるべきオペコードが記録されているメモリアドレスを保持するレジスタ。プロセッサ(同期回路)は、オペコードの実行を終えるたびに、プログラムカウンタに記録されているメモリアドレスを参照し、次に実行すべきオペコードを取得する。
多くの場合、現在実行されているオペコードとそのオペランドが占めるメモリ領域の直後のアドレスが、自動的に入れられるが、現在実行されているオペコード(call命令など)によって、別のアドレスで上書きされる場合もある。

ま行

マシンコード
コンピューターの動作を決める電気信号群。通常のコンピューターでは、電気のON/OFFパターンをたくさん並べたものがマシンコードとして使われています。
マクロプログラム
ユーザーにとって、アプリの機能の最小単位は、アプリに用意された1つ1つのコマンドです。このため、1つ1つのコマンドは、「マイクロ命令」と表現することができます。
それに対して、例えば「ファイルを開いて、データを更新して、ファイルを上書き保存して、1部印刷して、ファイルを閉じる」といった一連のコマンド(この例では5コマンド)を、1まとめにしたプログラム(コマンドの連結セット)は、「マクロ命令」と表現することができます。マイクロ(小)⇔マクロ(大)です。
元々は、アプリではなくプロセッサへの命令(コマンド)の最小単位を「マイクロ命令」と言って、その複数命令をまとめた命令を「マクロ命令」と言っていましたが、それがアプリにも転用されて、やがてマイクロ命令という言葉は無くなりましたが、マクロ(命令)という言葉だけが残ったようです。
マクロ命令は、Excel等のマクロ機能を使って一連の操作記録から作ることもできますが、それをプログラミングでやるのが、マクロプログラミングです。マクロプログラミングでできたプログラムをマクロプログラム、略してマクロとも言います。

や行

ユーザー
パソコンやスマホ等を操作して、アプリを利用する使用者のこと。