プログラミング用語 (分野別)

プログラミング用語（プログラミングようご）は、コンピュータのプログラムおよびプログラミングに関する用語の一覧である。

分野別に分類し記載している。

固有の製品名、言語名、機種名、ソフト名など、固有の一覧の記事がある場合にはその記事へのリンクのみを示し、ここでは記載しない。

五十音（アルファベット・その他）順の一覧については、プログラミング用語一覧を参照。

 コンピュータの理論的基礎 
 コンピュータ
 チューリングマシン、ノイマン型、その他、コンピュータを参照。
 オートマトン

 プログラミング言語の位置づけ 

 コンピュータ言語の分類 
プログラミング言語は人工言語、コンピュータ言語の中の1群である。
 言語、言語学、計算言語学
 自然言語
 人工言語、形式言語
 コンピュータ言語 - コンピュータで用いられる人工言語。
 プログラミング言語 - コンピュータ上で動作するプログラムを作成する言語。
 データ記述言語 - 主に複雑なデータを格納することを目的とする言語。マークアップ言語など。
 問い合わせ言語 - データの問い合わせに用いる言語。
 データベース言語 - データベースのアクセスに用いる言語。
 仕様記述言語 - 主にプログラムの設計に用いられる言語。モデリング言語など。
 ハードウェア記述言語 - 主に集積回路(IC, LSI)の設計に用いる言語。
 ハードウェア制御言語 - 人間は記述は行わない。プリンタや表示の制御など。

 プログラミング言語の分類 
 個別のプログラミング言語名については、プログラミング言語一覧を参照。
 プログラミング言語
 低水準言語と高水準言語
 言語処理系
 コンパイラとインタプリタ（「コンパイラ言語とインタプリタ言語」という分類はナンセンス）
 用途や形態による分類
 スクリプト言語
 マクロ言語
 プログラミングパラダイムによる分類
 手続き型言語 - 多数
 関数型言語 - Haskellなど
 論理型言語 - Prologなど
 オブジェクト指向言語 - Smalltalk、C++、Javaなど
 ソースコードの表現法による分類（基本的に、抽象的には全く変わらない「プログラム」を、文字で表現するか文字以外のもので表現するか、という違いである。）
 テキストプログラミング言語
 ビジュアルプログラミング言語

 プログラミングの歴史 
 プログラミング言語年表

 プログラム開発の歴史 
 ソフトウェア工学
 プログラミングの変遷
 パンチカード
 プログラムの寿命 - 最初に考えるべき重要な問題。
 プログラムの品質
 プログラムの結合度 - スパゲティプログラム、多重継承、オブジェクト指向
 プログラミング
 構造化プログラミング - goto文
 関数型プログラミング
 イベント駆動型プログラミング
 オブジェクト指向プログラミング - オブジェクト指向、差分プログラミング
 Webプログラミング
 開発手法
 ウォーターフォール・モデル
 スパイラル・モデル
 エクストリーム・プログラミング - 軽量開発手法、アジャイルソフトウェア開発
 テストファースト
 設計手法
 フローチャート
 モデリング言語 - UML
 デザインパターン
 状態遷移図

 プログラミングの文化 
 デファクトスタンダード
 自由ソフトウェア
 自由ソフトウェア運動、フリーソフトウェア財団、GNU General Public License、コピーレフト
 オープンソース - Open Source Initiative
 リバースエンジニアリング

 システムプログラミング 
システムソフトウェアの記事も参照
 プログラミングから見たCPUの基本要素
 命令セット、レジスタ、アドレス、フラグ
 機械語、アセンブラ、ニーモニック、アドレッシングモード
 メモリマップ - データ領域、コード領域、スタック領域
 サブルーチン、スタックポインタ、マクロ
 割り込み - 割り込みベクタ
 DMA(Direct Memory Access)

 主として手続き型言語の言語機能 
 メモリマップ
 データ領域、コード（テキスト）領域、スタック領域、ヒープ領域
 定数領域（書込み禁止領域）、BSS領域、静的領域（スタティック領域）、静的データ（静的メモリ）、動的データ（動的メモリ）
 ソースコード
 Hello world - 各プログラミング言語によるサンプルプログラム。
 構文規則 - バッカス・ナウア記法
 コメント(注釈)
 予約語
 キーワード (C言語)、予約語 (Java)、…
 演算子
 識別子 - メタ構文変数
 行番号
 基本制御構造
 分岐処理 - if文、switch文
 反復処理（繰り返し処理）、ループ - for文、while文
 順接
 その他の制御
 再帰呼び出し - 末尾再帰
 無条件ジャンプ - goto文
 例外処理 - 継続
 サブルーチン
 マクロ、関数、手続き(プロシージャ)、メソッド (計算機科学)
 引数 - 値渡しと参照渡し
 return文
 データ・データ型・型システム
 プリミティブ型と複合型
 数値型 - 整数型、浮動小数点型、など
 文字 - 文字型、文字列型
 コンテナ (データ型) - 配列、構造体、など
 抽象データ型 - オブジェクト指向を参照。
 ポインタ型
 データ型に関するその他の記事 - 列挙型、ブーリアン型、など
 修飾子
 定数
 静的変数
 フィールド (計算機科学) - インスタンス変数、クラス変数
 アクセス制御子
 スコープ
 ブロック構造
 変数 - グローバル変数、ローカル変数（局所変数）
 動的スコープ、静的スコープ
 変数、関数、メソッドなどの外部宣言、アクセス制御子
 前方参照 - プロトタイプ宣言（C言語）、forward宣言(Pascal)
 名前空間
 カプセル化
 プリプロセッサ - マクロ
 モジュール
 ライブラリ、unit(Pascal)、パッケージ (Java)
 名前空間
 プラグイン
 型チェック - キャスト

 オブジェクト指向 
 オブジェクト指向
 モデル
 オブジェクト (プログラミング)、クラス (コンピュータ)、メッセージ駆動
 カプセル化 - スコープ
 継承 - 単一継承、多重継承
 ポリモーフィズム - 多重定義（オーバーロード）、オーバーライド
 メッセージ駆動 - 委譲モデル
 インスタンス
 メンバ
 フィールド (計算機科学) - クラス変数、インスタンス変数
 メソッド (計算機科学)（メンバ関数）、コンストラクタ、デストラクタ、ファイナライザ
 インタフェース (情報技術) - マーカーインタフェース
 アノテーション
 シャローコピー

 プログラム開発 
 プログラム
 プログラマ
 システムエンジニア
 アーキテクト

 プログラムの設計 
 プログラム開発手法 - プログラミングの歴史を参照。
 構造設計
 フローチャート、PAD、
 モデリング言語 - UML
 インターフェイス設計
 デザインパターン
 API(Application Programming Interface)

 プログラム開発ツール 
 エディタ、テキストエディタ
 アセンブラ、逆アセンブラ、コンパイラ、make、リンカ(リンケージエディタ)、デバッガ
 統合開発環境 - RAD (計算機プログラミング環境)
 オーサリングツール、ICE(インサーキット・ エミュレータ)

 コンパイラ 
 コンパイラ
 プログラミング技術・情報工学の構文解析も参照。
 ネイティブコード、中間コード、バイトコード
 コンパイラ
 最適化、80-20の法則
 事前コンパイル、動的コンパイル、ジャストインタイムコンパイル方式、適応的コンパイル、遅延コンパイル

 プログラムの実行環境 
 インタプリタ
 ライブラリ
 動的リンク、静的リンク
 ダイナミックリンクライブラリ、ランタイムライブラリ
 仮想機械 - ジャストインタイムコンパイル方式、ガベージコレクション

 プログラムの実行エラー 
 デバッグ - バグ をとること。
 セキュリティホール
 算術エラー - 算術オーバーフロー（桁あふれ）
 メモリ不足 - スタックオーバーフロー
 メモリ破壊 - スタック破壊、メモリリーク、バッファオーバーラン
 制御不良 - 無限ループ、デッドロック、非同期アクセス
 不正操作 - 命令違反、特権違反、単なるポインタの誤操作
 設計ミス

 プログラムのテスト 
 ソフトウェアテスト
 テスト駆動開発、テストファースト、テストプログラム
 単体テスト、結合テスト、総合テスト（システムテスト）、ブラックボックステスト、ホワイトボックステスト
 検証ツール、コード網羅率（コードカバレッジ）、プロファイリング
 スループット、ボトルネック、80-20の法則
 インスペクション、ウォークスルー、チーム・レビュー、パスアラウンド、ピア・レビュー、ペア・プログラミング、アドホック・レビュー、

 プログラムのドキュメント 
 Javadoc

 プログラムの移植 
 移植性、クロスプラットフォーム

 プログラムの権利 
 著作権、ソフトウェア特許、リバースエンジニアリング、アルゴリズム特許

 プログラミング技術・情報工学 
 情報工学も参照。
 ソフトウェア工学

 論理演算 
 論理演算、ブール代数、論理式、真理値、真理値表
 論理和(OR)、論理積(AND)、否定(NOT)、排他的論理和(XOR)、同値
 ビット演算
 カルノー図

 データ構造 
プログラムで多く使われる基本的なデータの構造
 データ構造
 配列、線形リスト、スタック、キュー
 ハッシュテーブル、連想配列、木構造、B木 2-3木、グラフ、リングバッファ

 アルゴリズム 

 ソート - データを並べ替えること
 バブルソート、シェルソート、ヒープソート、クイックソート、マージソート、・・・
 探索
 線型探索、二分探索
 グラフ
 閉路

 数値計算 
 フーリエ変換、高速フーリエ変換、離散コサイン変換、ウェーブレット変換

 文字コード 
 文字コードを参照。

 ストリーム 
 ストリーム、パイプ

 構文解析 
 構文解析、構文解析器、字句解析
 逆ポーランド記法、正規表現、パターンマッチング
 コンパイラ
 DOM(Document Object Model)、SAX(Simple API for XML)

 制御手法 
 割り込み処理
 プロセス管理
 プロセス、マルチプロセス、スレッド、スケジューリング、ラウンドロビン方式
 プロセス間通信
 共有メモリ
 同期、排他制御、セマフォ、モニタ
 トランザクション
 ウォッチドッグ、リアルタイムシステム
 状態制御 - 状態遷移、状態遷移図

 メッセージ伝達手法 
 コールバック
 メッセージ駆動、委譲モデル
 イベント駆動型プログラミング - イベント

 データファイル 
 設定ファイル
 データ記述言語、マークアップ言語、XML、DOM、SAX

 通信手法 
 プロトコル、ハンドシェイク、通信シーケンス、状態制御

 バージョン管理 
 マジックナンバー、バージョン管理システム