プログラミング用語 (分野別)
コンピュータの理論的基礎
編集プログラミング言語の位置づけ
編集コンピュータ言語の分類
編集
プログラミング言語は人工言語、コンピュータ言語の中の1群である。
●言語、言語学、計算言語学
●自然言語
●人工言語、形式言語
●コンピュータ言語 - コンピュータで用いられる人工言語。
●プログラミング言語 - コンピュータ上で動作するプログラムを作成する言語。
●データ記述言語 - 主に複雑なデータを格納することを目的とする言語。マークアップ言語など。
●問い合わせ言語 - データの問い合わせに用いる言語。
●データベース言語 - データベースのアクセスに用いる言語。
●仕様記述言語 - 主にプログラムの設計に用いられる言語。モデリング言語など。
●ハードウェア記述言語 - 主に集積回路(IC, LSI)の設計に用いる言語。
●ハードウェア制御言語 - 人間は記述は行わない。プリンタや表示の制御など。
プログラミング言語の分類
編集
●個別のプログラミング言語名については、プログラミング言語一覧を参照。
●プログラミング言語
●低水準言語と高水準言語
●言語処理系
●コンパイラとインタプリタ︵﹁コンパイラ言語とインタプリタ言語﹂という分類はナンセンス︶
●用途や形態による分類
●スクリプト言語
●マクロ言語
●プログラミングパラダイムによる分類
●手続き型言語 - 多数
●関数型言語 - Haskellなど
●論理型言語 - Prologなど
●オブジェクト指向言語 - Smalltalk、C++、Javaなど
●ソースコードの表現法による分類︵基本的に、抽象的には全く変わらない﹁プログラム﹂を、文字で表現するか文字以外のもので表現するか、という違いである。︶
●テキストプログラミング言語
●ビジュアルプログラミング言語
プログラミングの歴史
編集プログラム開発の歴史
編集
●ソフトウェア工学
●プログラミングの変遷
●パンチカード
●プログラムの寿命 - 最初に考えるべき重要な問題。
●プログラムの品質
●プログラムの結合度 - スパゲティプログラム、多重継承、オブジェクト指向
●プログラミング
●構造化プログラミング - goto文
●関数型プログラミング
●イベント駆動型プログラミング
●オブジェクト指向プログラミング - オブジェクト指向、差分プログラミング
●Webプログラミング
●開発手法
●ウォーターフォール・モデル
●スパイラル・モデル
●エクストリーム・プログラミング - 軽量開発手法、アジャイルソフトウェア開発
●テストファースト
●設計手法
●フローチャート
●モデリング言語 - UML
●デザインパターン
●状態遷移図
プログラミングの文化
編集システムプログラミング
編集システムソフトウェアの記事も参照
主として手続き型言語の言語機能
編集
●メモリマップ
●データ領域、コード︵テキスト︶領域、スタック領域、ヒープ領域
●定数領域︵書込み禁止領域︶、BSS領域、静的領域︵スタティック領域︶、静的データ︵静的メモリ︶、動的データ︵動的メモリ︶
●ソースコード
●Hello world - 各プログラミング言語によるサンプルプログラム。
●構文規則 - バッカス・ナウア記法
●コメント(注釈)
●予約語
●キーワード (C言語)、予約語 (Java)、…
●演算子
●識別子 - メタ構文変数
●行番号
●基本制御構造
●分岐処理 - if文、switch文
●反復処理︵繰り返し処理︶、ループ - for文、while文
●順接
●その他の制御
●再帰呼び出し - 末尾再帰
●無条件ジャンプ - goto文
●例外処理 - 継続
●サブルーチン
●マクロ、関数、手続き(プロシージャ)、メソッド (計算機科学)
●引数 - 値渡しと参照渡し
●return文
●データ・データ型・型システム
●プリミティブ型と複合型
●数値型 - 整数型、浮動小数点型、など
●文字 - 文字型、文字列型
●コンテナ (データ型) - 配列、構造体、など
●抽象データ型 - オブジェクト指向を参照。
●ポインタ型
●データ型に関するその他の記事 - 列挙型、ブーリアン型、など
●修飾子
●定数
●静的変数
●フィールド (計算機科学) - インスタンス変数、クラス変数
●アクセス制御子
●スコープ
●ブロック構造
●変数 - グローバル変数、ローカル変数︵局所変数︶
●動的スコープ、静的スコープ
●変数、関数、メソッドなどの外部宣言、アクセス制御子
●前方参照 - プロトタイプ宣言︵C言語︶、forward宣言(Pascal)
●名前空間
●カプセル化
●プリプロセッサ - マクロ
●モジュール
●ライブラリ、unit(Pascal)、パッケージ (Java)
●名前空間
●プラグイン
●型チェック - キャスト
オブジェクト指向
編集プログラム開発
編集プログラムの設計
編集- プログラム開発手法 - プログラミングの歴史を参照。
- 構造設計
- インターフェイス設計
プログラム開発ツール
編集- エディタ、テキストエディタ
- アセンブラ、逆アセンブラ、コンパイラ、make、リンカ(リンケージエディタ)、デバッガ
- 統合開発環境 - RAD (計算機プログラミング環境)
- オーサリングツール、ICE(インサーキット・ エミュレータ)
コンパイラ
編集
●コンパイラ
●プログラミング技術・情報工学の構文解析も参照。
●ネイティブコード、中間コード、バイトコード
●コンパイラ
●最適化、80-20の法則
●事前コンパイル、動的コンパイル、ジャストインタイムコンパイル方式、適応的コンパイル、遅延コンパイル
プログラムの実行環境
編集プログラムの実行エラー
編集
●デバッグ - バグ をとること。
●セキュリティホール
●算術エラー - 算術オーバーフロー︵桁あふれ︶
●メモリ不足 - スタックオーバーフロー
●メモリ破壊 - スタック破壊、メモリリーク、バッファオーバーラン
●制御不良 - 無限ループ、デッドロック、非同期アクセス
●不正操作 - 命令違反、特権違反、単なるポインタの誤操作
●設計ミス
プログラムのテスト
編集- ソフトウェアテスト
- テスト駆動開発、テストファースト、テストプログラム
- 単体テスト、結合テスト、総合テスト(システムテスト)、ブラックボックステスト、ホワイトボックステスト
- 検証ツール、コード網羅率(コードカバレッジ)、プロファイリング
- スループット、ボトルネック、80-20の法則
- インスペクション、ウォークスルー、チーム・レビュー、パスアラウンド、ピア・レビュー、ペア・プログラミング、アドホック・レビュー、カジュアル・ラーニング
プログラムのドキュメント
編集プログラムの移植
編集プログラムの権利
編集- 著作権、ソフトウェア特許、リバースエンジニアリング、アルゴリズム特許
プログラミング技術・情報工学
編集論理演算
編集データ構造
編集プログラムで多く使われる基本的なデータの構造
アルゴリズム
編集「アルゴリズム」を参照
数値計算
編集文字コード
編集- 文字コードを参照。
ストリーム
編集構文解析
編集制御手法
編集メッセージ伝達手法
編集データファイル
編集通信手法
編集バージョン管理
編集その他
編集関連項目
編集- この一覧は未完成です。加筆、訂正して下さる協力者を求めています。