コンピュータサイエンスの用語集

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

このコンピュータサイエンスの用語集は、コンピュータサイエンス、そのサブディシプリン、およびソフトウェアデータサイエンスコンピュータプログラミングに関連する用語を含む関連分野で使用される用語と概念の定義のリストです

A

抽象データ型(ADT)
データ型数学モデル。データ型は、データのユーザーの観点から、特に可能な値、この型のデータに対する可能な操作、およびの動作の観点から、その動作(セマンティクス)によって定義されます。これらの操作。これは、ユーザーではなく実装者の観点からデータを具体的に表現したデータ構造とは対照的です。
抽象メソッド
署名のみがあり、実装本体がないものこれは、サブクラスがメソッドの実装を提供する必要があることを指定するためによく使用されます。一部のコンピューター言語では、抽象メソッドを使用してインターフェースを指定します。[1]
抽象化
1.ソフトウェアエンジニアリングおよびコンピュータサイエンスにおいて、オブジェクトまたはシステムの研究において、物理的、空間的、または時間的な詳細[2]または属性を削除して、他の関心のある詳細にさらに注意を向けるプロセス。[3]それはまた、一般化のプロセスと本質的に非常に似ています
2.このプロセスの結果:抽象的な 概念-さまざまな具体的なオブジェクトまたは学習システムに共通の機能または属性を保持することによって作成されたオブジェクト[3]
エージェントアーキテクチャ
コンポーネントの配置を示すソフトウェアエージェントインテリジェント制御システムの青写真。インテリジェントエージェントによって実装されるアーキテクチャは、認知アーキテクチャと呼ばれます。[4]
エージェントベースモデル(ABM)
システム全体への影響を評価する目的で、自律エージェント(組織やグループなどの個人または集合体の両方)のアクションと相互作用をシミュレートするための計算モデルのクラス。これは、ゲーム理論複雑系創発計算社会学マルチエージェントシステム、および進化的プログラミングの要素を組み合わせたものですモンテカルロ法は、ランダム性を導入するために使用されます。
集計関数
データベース管理において複数の行の値がグループ化されて、合計、カウント、最大値など、より重要な意味または測定値の単一の値を形成する関数。
アジャイルソフトウェア開発
自己組織化およびクロスファンクショナルチームとその顧客/エンドユーザーの共同作業を通じて要件とソリューションが進化するソフトウェア開発へのアプローチ[5]適応計画、進化的開発、早期提供、継続的改善を提唱し、変化への迅速かつ柔軟な対応を促進します。[6]
アルゴリズム
あるクラスの問題を解決する方法の明確な仕様。アルゴリズムは、計算データ処理、および自動推論タスクを実行できます。それらはコンピューティングテクノロジーに遍在しています。
アルゴリズム設計
問題解決およびエンジニアリングアルゴリズムのための方法または数学的プロセスアルゴリズムの設計は、動的計画法分割統治法など、オペレーションズリサーチの多くのソリューション理論の一部ですテンプレートメソッドパターンやデコレータパターンなど、アルゴリズム設計を設計および実装するための手法は、アルゴリズム設計パターンとも呼ばれます[7] 。
アルゴリズムの効率
アルゴリズムによって使用される計算リソースの数に関連するアルゴリズムのプロパティアルゴリズムを分析してそのリソース使用量を決定する必要があります。アルゴリズムの効率は、さまざまなリソースの使用量に基づいて測定できます。アルゴリズムの効率は、繰り返しまたは連続プロセスのエンジニアリング生産性に類似していると考えることができます。
情報交換のためのアメリカ標準コード(ASCII)
電子通信用文字エンコード標準。ASCIIコードは、コンピューター、通信機器、およびその他のデバイスのテキストを表します。最新の文字エンコード方式のほとんどはASCIIに基づいていますが、多くの追加文字をサポートしています。
アプリケーションプログラミングインターフェイス(API)
一連のサブルーチン定義、通信プロトコル、およびソフトウェアを構築するためのツール一般的に、これはさまざまなコンポーネント間の通信の明確に定義された方法のセットです。優れたAPIを使用すると、すべての構成要素を提供してコンピュータープログラムを簡単に開発できます。これらの構成要素は、プログラマーによってまとめられます
アプリケーションソフトウェア

また、単にアプリケーションまたはアプリ

ユーザーの利益のために調整された機能、タスク、またはアクティビティのグループを実行するように設計されたコンピュータソフトウェアアプリケーションの一般的な例には、ワードプロセッサスプレッドシート会計アプリケーション Webブラウザメディアプレーヤー、航空フライトシミュレータコンソールゲームフォトエディタなどがあります。これは、多くの場合ユーザーからの直接入力なしで、主にコンピューターの最も基本的な実行操作の管理に関与するシステムソフトウェアとは対照的集合名詞アプリケーションソフトウェアすべてのアプリケーションをまとめて参照します。[8]
配列データ構造

また、単に配列

要素または変数)のコレクションで構成されるデータ構造。それぞれが少なくとも1つの配列インデックスまたはキーによって識別されます。配列は、各要素の位置が数式によってそのインデックスタプルから計算できるように格納されます。[9] [10] [11]最も単純なタイプのデータ構造は、1次元配列とも呼ばれる線形配列です。
アーティファクト
ソフトウェアの開発中に生成される多くの種類の有形の副産物の1つ一部のアーティファクト(ユースケースクラス図、その他の統一モデリング言語(UML)モデル、要件、設計ドキュメントなど)は、ソフトウェアの機能、アーキテクチャ、および設計を説明するのに役立ちます。その他の成果物は、プロジェクト計画、ビジネスケース、リスク評価など、開発自体のプロセスに関係しています。
人工知能(AI)

また、機械知能

人間や他の動物によって示される自然の知性とは対照的に、機械によって示される知性。コンピュータサイエンスでは、AI研究は「インテリジェントエージェント」の研究として定義されています。つまり、環境を認識し、目標を達成する可能性を最大化するアクションを実行できるデバイスです。[12]口語的には、「人工知能」という用語は、機械が「学習」や「問題解決」など、人間が他の人間の心と関連付ける「認知」機能を模倣する場合に適用されます。[13]
ASCII
情報交換については、米国標準コードを参照してください
アサーション
コンピュータープログラミングでは述語ブール値関数、つまりtrue-false)がコード実行のその時点で常に真であるというステートメント。これは、プログラマーがコードを読んだり、コンパイラーがコードをコンパイルしたり、プログラムが自身の欠陥を検出したりするのに役立ちます。後者の場合、一部のプログラムは、実行時に述語を実際に評価することによってアサーションをチェックし、それが実際に真でない場合(アサーションの失敗)、プログラムはそれ自体が壊れていると見なし、通常は意図的にクラッシュするか、アサーションの失敗の例外をスローします
連想配列
連想配列、マップ、シンボルテーブル、または辞書は、(キー、値)ペアのコレクション構成される抽象データ型であり、可能な各キーはコレクションに最大で1回表示されます。このデータ型に関連付けられた操作により、次のことが可能になります。[14] [15]
  • コレクションへのペアの追加
  • コレクションからのペアの削除
  • 既存のペアの変更
  • 特定のキーに関連付けられた値のルックアップ
オートマトン理論
抽象機械オートマトンの研究、およびそれらを使用して解決できる計算問題。これは、理論計算機科学離散数学(数学計算機科学の両方の研究対象)の理論です
自動推論
推論のさまざまな側面を理解することに専念するコンピュータサイエンス数理論理学の分野自動推論の研究は、コンピューターが完全に、またはほぼ完全に自動的に推論できるようにするコンピュータープログラムの作成に役立ちます。自動推論は人工知能のサブフィールドと見なされていますが、理論計算機科学、さらには哲学とも関係があります。

B

帯域幅
特定のパスを介したデータ転送の最大速度。帯域幅は、ネットワーク帯域幅[16] データ帯域幅[17]またはデジタル帯域幅として特徴付けることができます[18] [19]
ベイジアンプログラミング
確率モデルを指定し、必要な情報が利用できない場合に問題を解決するための手法を持つための形式主義と方法論。
基準
オブジェクトの相対的なパフォーマンスを評価するために、通常はオブジェクトに対していくつかの標準的なテストと試行を実行することにより、コンピュータープログラム、一連のプログラム、またはその他の操作を実行する行為。[20]ベンチマークという用語は、精巧に設計されたベンチマークプログラム自体の目的でも一般的に使用されます。
最良、最悪、平均的なケース
与えられたアルゴリズムについて、リソース使用量がそれぞれ少なくとも最大で、平均で何であるかの表現通常、考慮されるリソースは実行時間、つまり時間計算量ですが、メモリまたはその他のリソースである可能性もあります。最良の場合は、 n個の要素の入力データに対して最小ステップ数を実行する関数です。最悪の場合は、サイズnの入力データに対して最大ステップ数を実行する関数です。平均ケースは、 n個の要素の入力データに対して平均ステップ数を実行する関数です。
ビッグデータ
従来のデータ処理アプリケーションソフトウェアでは適切に処理するには大きすぎる、または複雑なデータセットを指すために使用される用語。多くの場合(行)のデータはより大きな統計的検出力を提供しますが、より複雑な(より多くの属性または列)データはより高い誤検出率につながる可能性があります[21]
大きなO表記
引数が特定の値または無限大に向かう傾向がある場合の関数制限動作を説明する数学表記。これは、ポール・バッハマン[22]エドマンド・ランダウ[23]などによって発明された一連の表記法のメンバーであり、まとめてバッハマン・ランダウ表記法または漸近表記法と呼ばれます。
2進数
数学およびデジタル電子機器では、2を底とする記数法または2進法で表される数値で、通常は0(ゼロ)1(1)の2つの記号のみを使用します。
二分探索アルゴリズム

また、単純に二分探索半間隔探索[24] 対数探索[25]または二分チョップ[26]

並べ替えられた配列内のターゲット値の位置を見つける検索アルゴリズム[27] [28]
二分木
各ノードに最大2つのがあるツリー データ構造。これは、左の子供右の子集合論を使用し再帰的定義は、(空でない)二分木はタプルLSR)であり、LRは二分木または空集合であり、S単集合です。[29]一部の作者は、二分木を空集合にすることも許可しています。[30]
バイオインフォマティクス
生物学コンピュータサイエンス情報工学数学統計を組み合わせて、生物学データを分析および解釈するための方法とソフトウェアツールを開発する学際的な分野。バイオインフォマティクスは、数学的および統計的手法を使用した生物学的クエリのインシリコ分析に広く使用されています。
少し
コンピューティングおよびデジタル通信で使用される情報基本単位。2進数のかばん語2数は、2つの可能なのいずれかを持つことができ、2つの状態のデバイスで物理的に表すことができます。これらの状態値は、最も一般的には0または1として表されます。[31]
ビットレートR

また、ビットレート

電気通信およびコンピューティングにおいて、単位時間あたりに伝達または処理されるビット数。[32]
ブラックリスト

また、ブロックリスト

コンピューティングにおいて、禁止されている要素のリストに明示的に記載されているものを除き、すべての要素(電子メールアドレス、ユーザー、パスワード、 URLIPアドレスドメイン名、ファイルハッシュなど)を通過できる基本的なアクセス制御メカニズム。リストにあるアイテムはアクセスを拒否されます。反対はホワイトリストです。これは、他のすべての要素がブロックされている間、リスト上のアイテムのみが使用されているゲートを通過できることを意味します。グレーリストには、追加の手順が実行されるまで一時的にブロックされる(または一時的に許可される)アイテムが含まれます。
BMPファイル形式

また、ビットマップ画像ファイルデバイスに依存しないビットマップ(DIB)ファイル形式、または単にビットマップ

特にMicrosoftWindows [33]およびOS / 2 [34]オペレーティングシステムで使用される、ディスプレイデバイスグラフィックアダプタなど)とは独立してビットマップデジタル画像を保存するために使用されるラスターグラフィック 画像ファイル形式。
ブールデータ型
論理ブール代数の2つの真理値表すことを目的とした、2つの可能な値(通常はtruefalseで示される)のいずれかを持つデータ型。これは、19世紀半ばに論理の代数システムを最初に定義したジョージブールにちなんで名付けられました。ブールデータ型は主に条件ステートメントに関連付けられており、プログラマーが指定したブール条件がtrueまたはfalseのどちらに評価されるかに応じて、制御フローを変更することでさまざまなアクションを実行できます。これは、より一般的な論理データ型の特殊なケースです(を参照) 。確率論理)—つまり、論理は常にブールである必要はありません。
ブール式
プログラミング言語で使用される、評価時にブール値を返します。これは、 trueまたはfalseのいずれかです。ブール式は、ブール定数trueまたはfalseブール型変数、ブール値演算子、およびブール値関数の組み合わせで構成できます。[35]
ブール代数
数学および数理論理学において、変数の値が真理値trueおよびfalseである代数の分岐で、通常はそれぞれ1および0で示されます。変数の値が数値であり、主な演算が加算と乗算である初等代数とは異なり、ブール代数の主な演算は、結合(∧として示される)、分離または(∨として示される)、および否定です。ない(¬として示される)。したがって、初等代数が数値関係を記述するのと同じ方法で論理関係を記述するための形式です。
バイト
最も一般的には2進数を表す8ビットで構成されるデジタル情報の単位歴史的に、バイトはコンピュータでテキストの1文字をエンコードするために使用されるビット数でした[36] [37]。このため、多くのコンピュータアーキテクチャでアドレス可能な最小のメモリユニットです
起動
コンピュータまたはコンピュータアプライアンスを使用できるようになるまで起動する際に実装される手順。ボタンを押すなどのハードウェアまたはソフトウェアコマンドによって開始できます。電源を入れた後、コンピュータは比較的ダムであり、読み取り専用メモリと呼ばれるストレージの一部しか読み取ることができません。そこには、ファームウェアと呼ばれる小さなプログラムが保存されていますパワーオンセルフテストを実行し、最も重要なこととして、ハードディスクメインメモリなどの他のタイプのメモリへのアクセスを許可しますファームウェアは、より大きなプログラムをコンピュータのメインメモリにロードして実行します。

C

折り返し電話

また、呼び出し後の関数[38]

特定の時間に引数を「コールバック」(実行)することが期待される他のコードに引数として渡される実行可能コード。この実行は、同期コールバックのように即時に実行される場合もあれば、非同期コールバックのように後で発生する場合もあります
中央処理装置(CPU)
命令で指定された基本的な算術演算、論理演算、制御、および入出力(I / O)演算を実行することによりコンピュータープログラムの命令を実行するコンピューター内の電子回路。コンピュータ業界では、少なくとも1960年代初頭から、「中央処理装置」という用語が使用されてきました。[39]伝統的に、「CPU」という用語は、プロセッサ、より具体的にはその処理ユニットおよび制御ユニット(CU)を指し、コンピュータのこれらのコア要素をメインメモリやI / O回路などの外部コンポーネントから区別します。[40]
キャラクター
書記素、書記素のような単位、または自然言語の書記形式のアルファベット音節文字などの記号にほぼ対応する情報の単位[41]
暗号

また、サイファー

暗号化において暗号化または復号化を実行するためのアルゴリズム—手順として実行できる一連の明確に定義されたステップ
クラス
オブジェクト指向プログラミングにおいて、オブジェクトを作成するための拡張可能なプログラムコードテンプレート。状態の初期値(メンバー変数)と動作の実装(メンバー関数またはメソッド)を提供します。[42] [43]多くの言語では、クラス名はクラスの名前(テンプレート自体)、クラスのデフォルトコンストラクターの名前(オブジェクトを作成するサブルーチン)、およびオブジェクトのタイプとして使用されます。クラスをインスタンス化することによって生成されます。これらの明確な概念は簡単に混同されます。[43]
クラスベースプログラミング

また、クラスオリエンテーション

オブジェクトのみではなく、オブジェクトの「クラス」を定義することによって継承が発生するオブジェクト指向プログラミング(OOP)のスタイル(プロトタイプベースのプログラミングと比較してください)。
クライアント
サーバーによって利用可能になったサービスにアクセスするコンピューターのハードウェアまたはソフトウェアサーバーは多くの場合(常にではありませんが)別のコンピューターシステム上にあります。この場合、クライアントはネットワーク経由でサービスにアクセスします。[44]この用語は、クライアント/サーバーモデルでプログラムまたはデバイスが果たす役割に適用されます
クリーンルームソフトウェアエンジニアリング
認定可能なレベルの信頼性を備えたソフトウェアを作成することを目的としたソフトウェア開発プロセスクリーンルームプロセスは、もともとハーランミルズとIBMのアランヘヴナーを含む彼の同僚の何人かによって開発されました[45]クリーンルームプロセスの焦点は、欠陥の除去ではなく、欠陥の防止にあります。
閉鎖

また、字句クロージャまたは関数クロージャ

第一級関数を使用する言語で字句スコープの 名前バインディングを実装するための手法運用上、クロージャは、関数[a]を環境とともに格納するレコードです。[46]
クラウドコンピューティング
多くの場合インターネットを介して、最小限の管理作業で迅速にプロビジョニングできる、構成可能なコンピューターシステムリソースと高レベルのサービスの共有プールクラウドコンピューティングは、公益事業と同様に、一貫性と規模の経済を実現するためにリソースの共有に依存しています
コードライブラリ
多くの場合ソフトウェア開発のために、コンピュータプログラムによって使用される不揮発性リソースのコレクションこれらには、構成データ、ドキュメント、ヘルプデータ、メッセージテンプレート、事前に作成されたコードサブルーチンクラス、またはタイプの仕様が含まれる場合があります。IBMのOS / 360およびその後継では、これらはパーティション化されたデータセットと呼ばれます
コーディング
コンピュータプログラミングは、特定のコンピューティングタスクを実行するための実行可能な コンピュータプログラムを設計および構築するプロセスです。プログラミングには、分析、アルゴリズムの生成、アルゴリズムの精度とリソース消費のプロファイリング、および選択したプログラミング言語でのアルゴリズムの実装(一般にコーディング[47] [48]と呼ばれる)などのタスクが含まれます。ソースコードプログラムの1つまたは複数のプログラミング言語で書かれています。プログラミングの目的は、特定の問題を解決するためのタスクの実行を自動化する一連の命令を見つけることです。したがって、プログラミングのプロセスでは、アプリケーションドメイン、特殊なアルゴリズム、形式論理の知識など、いくつかの異なる主題に関する専門知識が必要になることがよくあります
符号理論
コードのプロパティと特定のアプリケーションに対するそれぞれの適合性の研究。コードは、データ圧縮暗号化エラー検出と訂正データ送信、およびデータストレージに使用されます。コードは、効率的で信頼性の高いデータ伝送方法を設計する目的で、情報理論電気工学数学言語学コンピューターサイエンスなど、さまざまな科学分野で研究されています。これには通常、冗長性の除去と、送信データのエラーの修正または検出が含まれます。
認知科学
とそのプロセスの学際的で科学的な研究。[49]それは、認知の性質、タスク、および機能を(広い意味で)調べます。認知科学者は、神経系が情報をどのように表現、処理、変換するかに焦点を当てて、知能と行動を研究します認知科学者が関心を持っている精神的能力には、言語、知覚、記憶、注意、推論、および感情が含まれます。これらの能力を理解するために、認知科学者は言語学、心理学、人工知能哲学神経科学、人類学などの分野から借りています。[50]
コレクション
コレクションまたはコンテナーは、解決される問題に対して共通の重要性を持ち、制御された方法で一緒に操作する必要がある、いくつかの可変数のデータ項目(場合によってはゼロ)のグループです。一般に、データ項目は同じタイプであるか、継承をサポートする言語では、いくつかの共通の祖先タイプから派生します。コレクションは抽象データ型に適用できる概念であり、具体的なデータ構造として特定の実装を規定するものではありませんが、多くの場合、従来の選択肢があります(型理論の説明についてはコンテナを参照してください)。
カンマ区切り値(CSV)
値を区切るためにコンマを使用する区切りテキストファイル。CSVファイルは、表形式のデータ(数値とテキスト)をプレーンテキストで保存します。ファイルの各行はデータレコードです。各レコードは、コンマで区切られた1つ以上のフィールドで構成されます。フィールド区切り文字としてのコンマの使用は、このファイル形式の名前のソースです。
コンパイラ
あるプログラミング言語(ソース言語)で書かれたコンピューターコードを別のプログラミング言語(ターゲット言語)に変換するコンピュータープログラム。コンパイラは、デジタルデバイス、主にコンピュータをサポートする一種のトランスレータです。ネームコンパイラは主に、ソースコード高水準プログラミング言語から低水準言語アセンブリ言語オブジェクトコードマシンコードなど)に変換して実行可能プログラムを作成するプログラムに使用されます[51]
計算可能性理論
再帰理論としても知られているのは、数理論理学コンピュータサイエンス、および計算可能関数チューリング次数の研究で1930年代に始まった計算理論の分野です。その後、この分野は一般化された計算可能性と定義可能性の研究を含むように拡大しました。これらの領域では、再帰理論は証明論および効果的な記述集合論と重複しています。
計算
算術ステップと非算術ステップの両方を含みアルゴリズムなどの明確に定義されたモデルに従う任意のタイプの計算[52] [53]計算の研究は、コンピュータサイエンスの分野にとって最も重要です。
計算生物学
生物学的、生態学的、行動的、社会的システムの研究へのデータ分析および理論的手法、数学的モデリングおよび計算シミュレーション技術の開発と応用を含みます。 [54]この分野は広く定義されており、生物学応用数学統計学生化学化学生物物理学分子生物学遺伝学、遺伝学、コンピューターサイエンス、および進化の基礎が含まれています。[55] 計算生物学は生物工学生物学を使用してコンピューターを構築するコンピューターサイエンスコンピューター工学のサブフィールドである生物学的コンピューティング
計算化学
コンピュータシミュレーションを使用して化学問題の解決を支援する化学の一分野。効率的なコンピュータプログラムに組み込まれた理論化学の方法を使用して、分子と固体の構造と特性を計算します。
計算の複雑さの理論
計算問題を固有の難しさに応じて分類し、これらのクラスを相互に関連付けることに焦点を当てた計算科学のサブフィールド。計算問題は、コンピューターによって解決されるタスクです。計算問題は、アルゴリズムなどの数学的ステップを機械的に適用することで解決できます
計算モデル
コンピュータシミュレーションによって複雑なシステムの動作を研究するために広範な計算リソースを必要とする計算科学数学モデル[56]
計算論的神経科学

また、理論的神経科学または数学的神経科学

神経系の発達構造生理学、および認知能力支配する原理を理解するために、数学的モデル、理論的分析、および脳の抽象化を採用する神経科学の一分野[57] [58] [59] [60]
計算物理学
定量理論がすでに存在する物理の問題を解決するための数値解析の研究と実施です。[61]歴史的に、計算物理学は科学における現代のコンピューターの最初の応用であり、現在は計算科学のサブセットです。
計算科学

また、科学計算科学計算SC)。

高度なコンピューティング機能を使用して複雑な問題を理解および解決する学際的な分野。それは多くの分野にまたがる科学の分野ですが、その核となるのは、複雑な自然システムを理解するためのコンピューターモデルとシミュレーションの開発です。
計算ステアリング
結果を変更するために、他の方法では自律的な計算プロセスに手動で介入する方法です。
コンピューター
コンピュータプログラミングを介して算術演算または論理演算のシーケンスを自動的に実行するように指示できるデバイス最近のコンピューターには、プログラムと呼ばれる一般化された一連の操作に従う機能があります。これらのプログラムにより、コンピューターは非常に幅広いタスクを実行できます。
コンピュータアーキテクチャ
コンピュータシステムの機能、編成、および実装を説明する一連のルールとメソッド。アーキテクチャの定義の中には、特定の実装ではなく、コンピュータの機能とプログラミングモデルを説明するものとして定義されているものがあります。[62]他の定義では、コンピュータアーキテクチャには、命令セットアーキテクチャの設計、マイクロアーキテクチャの設計、ロジックの設計、および実装が含まれます。[63]
コンピュータデータストレージ

また、単にストレージまたはメモリ

デジタルデータを保持するために使用されるコンピュータコンポーネントと記録メディアで構成されるテクノロジデータストレージは、すべての最新のコンピュータシステムのコア機能であり基本的なコンポーネントです。[64] :15–16 
コンピュータ倫理
コンピューティングの専門家が専門的および社会的行動に関する決定をどのように行うべきかに関する実践哲学の一部。[65]
コンピューターグラフィックス
コンピューターを使って作成された写真や映画。通常、この用語は、特殊なグラフィカルハードウェアおよびソフトウェアを使用して作成されたコンピューター生成画像データを指します。それは広大で最近開発されたコンピュータサイエンスの分野です。
コンピューターネットワーク

また、データネットワーク

ノードがリソースを共有できるようにするデジタル 通信ネットワーク。コンピュータネットワークでは、コンピューティングデバイスはノード間の接続(データリンク)を使用して相互にデータを交換します。これらのデータリンクは、ワイヤーや光ケーブルなどのケーブルメディア、またはWi-Fiなどのワイヤレスメディアを介して確立されます。
コンピュータープログラム
特定のタスクを実行するためにコンピューターによって実行できる命令[66]のコレクションです。
コンピュータープログラミング
特定のコンピューティングタスクを実行するための実行可能 コンピュータプログラムを設計および構築するプロセス。プログラミングには、分析、アルゴリズムの生成、アルゴリズムの精度とリソース消費のプロファイリング、および選択したプログラミング言語でのアルゴリズムの実装(一般にコーディング[47] [48]と呼ばれる)などのタスクが含まれます。ソースコードプログラムの1つまたは複数のプログラミング言語で書かれています。プログラミングの目的は、特定の問題を解決するためのタスクの実行を自動化する一連の命令を見つけることです。したがって、プログラミングのプロセスでは、アプリケーションドメイン、特殊なアルゴリズム、形式論理の知識など、いくつかの異なる主題に関する専門知識が必要になることがよくあります
コンピュータサイエンス
コンピュータの設計と使用の基礎を形成する理論、実験、および工学これには、デジタル情報を処理、保存、および通信するアルゴリズムの研究が含まれますコンピューター科学者は、計算理論と計算システムの設計を専門としています[67]
コンピュータ科学者
コンピュータサイエンスの知識、情報と計算の理論的基礎の研究、およびそれらの応用を習得した人。[68]
コンピュータセキュリティ

また、サイバーセキュリティ[69]または情報技術セキュリティITセキュリティ)。

コンピュータシステムを、ハードウェアソフトウェア、または電子データの盗難や損傷、および提供するサービスの中断誤った方向から保護します。
コンピュータビジョン
デジタル画像ビデオから高度な理解を得るためにコンピュータを作成する方法を扱う学際的な科学分野エンジニアリングの観点から、人間の視覚システムが実行できるタスクの自動化を目指しています。[70] [71] [72]
コンピューティング
コンピューティング機械を必要とする、恩恵を受ける、または作成する目標指向の活動ですか。これには、アルゴリズムプロセスの研究と、ハードウェアソフトウェアの両方の開発が含まれます。科学的、工学的、数学的、技術的、社会的側面があります。主なコンピューティング分野には、コンピュータエンジニアリングコンピュータサイエンスサイバーセキュリティデータサイエンス情報システム情報技術ソフトウェアエンジニアリングが含まれます。[73]
連結
形式言語理論コンピュータプログラミングでは、文字列の連結は文字列 をエンドツーエンドで結合する操作です。たとえば、「雪」と「ボール」の連結は「雪玉」です。文字列理論とも呼ばれる連結理論の特定の形式化では、文字列連結は原始概念です。
並行性
プログラム、アルゴリズム、または問題のさまざまな部分またはユニットが、最終的な結果に影響を与えることなく、順不同または部分的な順序で実行される能力。これにより、並行ユニットの並列実行が可能になり、マルチプロセッサおよびマルチコアシステムでの実行の全体的な速度を大幅に向上させることができます。より専門的な用語では、並行性とは、プログラム、アルゴリズム、または問題の、順序に依存しない、または半順序のコンポーネントまたはユニットへの分解可能性の特性を指します。[74]
条件付き

また、条件文条件式、および条件付き構文

プログラマーが指定したブール条件がtrueまたはfalseのどちらに評価されるかに応じて、さまざまな計算またはアクションを実行するプログラミング言語の機能。分岐予測の場合とは別に、これは常に、ある条件に基づいて制御フローを選択的に変更することによって実現されます。
容器
クラスデータ構造[75] [76]、またはインスタンスが他のオブジェクトのコレクションである抽象データ型(ADT)です。つまり、特定のアクセスルールに従って整理された方法でオブジェクトを格納します。コンテナのサイズは、コンテナに含まれるオブジェクト(要素)の数によって異なります。さまざまなコンテナタイプの基盤となる(継承された)実装は、サイズと複雑さが異なる場合があり、特定のシナリオに適した実装を柔軟に選択できます。
継続渡しスタイル(CPS)
制御が継続の形で明示的に渡される関数型プログラミングのスタイルこれは、通常のプログラミングスタイルであるダイレクトスタイルとは対照的です。Gerald JaySussmanGuyL。Steele、Jr。は、 Schemeプログラミング言語の最初のバージョンを示したAI Memo 349(1975)でこのフレーズを作成しました。[77] [78]
制御フロー

制御の流れ

命令型プログラム個々のステートメント命令、または関数呼び出し実行または評価される順序。明示的な制御フローに重点を置くことで、命令型プログラミング言語と宣言型プログラミング言語を区別します。
クリエイティブ・コモンズ(CC)
他の人が合法的に構築し、共有するために利用できる創造的な作品の範囲を拡大することに専念しているアメリカの非営利団体。[79]組織は、クリエイティブ・コモンズ・ライセンスとして知られるいくつかの著作権ライセンス無料公開している。
暗号化
または暗号化は、敵対者と呼ばれる第三者の存在下での安全な通信のための技術の実践と研究です[80]より一般的には、暗号化とは、第三者または一般の人々がプライベートメッセージを読むことを防ぐプロトコルを構築および分析することです。 [81]データの機密性データの整合性認証否認防止[82]などの情報セキュリティのさまざまな側面は、現代の暗号化の中心です。現代の暗号は、数学の分野の交差点に存在しますコンピュータ科学電気工学通信科学、および物理学暗号化のアプリケーションには、電子商取引チップベースの支払いカードデジタル通貨コンピューターパスワード、および軍事通信が含まれます。
CSV
カンマ区切りの値を参照してください
ネットいじめ

また、ネットいじめオンラインいじめ

電子的手段を使用したいじめ嫌がらせの一形態。
サイバースペース
広く普及している相互接続されたデジタルテクノロジー

D

デーモン
マルチタスクコンピュータオペレーティングシステム、デーモン(/ ˈdiːmən /または/ ˈdeɪmən / [ 83]対話型ユーザーの直接制御下ではなく、バックグラウンドプロセスとして実行されるコンピュータプログラムです従来、デーモンのプロセス名は、プロセスが実際にはデーモンであることを明確にし、デーモンと通常のコンピュータプログラムを区別するために、文字dで終わります。たとえば、syslogdはシステムロギング機能を実装するデーモンであり、sshdは着信SSH接続を提供するデーモンです。
データセンター

また、データセンター

コンピュータシステムおよび関連コンポーネント(電気通信やデータストレージシステムなど)を収容するために使用される専用スペースこれには通常、電源、データ通信接続、環境制御(空調、消火など)、およびさまざまなセキュリティデバイス用の冗長またはバックアップコンポーネントとインフラストラクチャが含まれます。[84]
データベース
データの整理されたコレクション。通常、コンピュータシステムから電子的に保存およびアクセスされます。データベースがより複雑な場合、データベースは多くの場合、正式な設計およびモデリング手法を使用して開発されます。
データマイニング
機械学習統計データベースシステムの交差点にあるメソッドを含む大規模なデータセットのパターンを発見するプロセスです[85]データマイニングは、コンピュータサイエンス統計学の学際的なサブフィールドであり、データセットから(インテリジェントな方法で)情報を抽出し、さらに使用するために情報をわかりやすい構造に変換することを全体的な目標としています。[85] [86] [87] [88]データマイニングは、「データベースでの知識発見」プロセス、つまりKDDの分析ステップです。[89]生の分析ステップとは別に、データベースとデータ管理の側面、データの前処理モデル推論の考慮事項、興味深い指標、複雑さの考慮事項、発見された構造の後処理、視覚化オンライン更新も含まれます。[85]
データサイエンス
科学的方法、プロセス、アルゴリズム、およびシステムを使用して、データマイニングと同様に、構造化および非構造化の両方のさまざまな形式のデータから知識と洞察を抽出する学際的な分野[90] [91]データサイエンスは、「実際の現象を理解して分析する」ための「統計、データ分析、機械学習、およびそれらに関連する方法を統合する概念」です。[92]それは、数学、統計学、情報科学、およびコンピュータサイエンスの文脈の中で多くの分野から引き出された技術と理論を採用しています
データ構造
効率的なアクセスと変更を可能にするデータ編成、管理、およびストレージ形式。[93] [94] [95]より正確には、データ構造は、データ値、それらの間の関係、およびデータに適用できる関数または操作のコレクションです。[96]
データ・タイプ

また、単に。と入力します。

プログラマーがデータをどのように使用するかをコンパイラーまたはインタープリターに伝えるデータの属性。ほとんどのプログラミング言語は、実数整数ブールの一般的なデータ型をサポートしています。データ型は、変数関数などのが取る可能性のある値を制約しますこのデータ型は、データに対して実行できる操作、データの意味、およびその型の値を格納する方法を定義します。式がその値を取得できる値のタイプ。[97] [98]
デバッグ
コンピュータソフトウェアまたはシステム全体の正しい動作を妨げるコンピュータプログラム内の欠陥または問題を見つけて解決するプロセス。デバッグ戦術には、対話型デバッグ、制御フロー分析、単体テスト統合テストログファイル分析、アプリケーションまたはシステムレベルでの監視、メモリダンプ、およびプロファイリングが含まれます。
宣言
コンピュータプログラミングにおいて、識別子のプロパティを指定する言語構造:単語(識別子)が「意味する」ことを宣言します。[99]宣言は、関数変数定数、およびクラスに最も一般的に使用されますが、列挙型や型定義などの他のエンティティにも使用できます。[99]名前(識別子自体)とエンティティの種類(関数、変数など)に加えて、宣言は通常、データ型(変数と定数の場合)または型署名を指定します(関数用); タイプには、配列などの次元も含まれる場合があります。宣言は、エンティティの存在をコンパイラに通知するために使用されます。これは、関数、変数、定数、およびそれらの型を使用前に宣言で指定する必要がある強い型の言語で重要であり、前方宣言で使用されます。[100]「宣言」という用語は、「定義」という用語としばしば対照的ですが[99]、意味と使用法は言語によって大きく異なります。
デジタルデータ
情報理論および情報システムにおいて、情報または作品の離散的で不連続な表現。数字と文字は一般的に使用される表現です。
デジタル信号処理DSP
コンピュータやより特殊なデジタル信号プロセッサなどによるデジタル処理を使用して、さまざまな信号処理操作を実行します。この方法で処理される信号は、時間、空間、周波数などのドメイン内連続変数のサンプルを表す一連の数値です。
離散イベントシミュレーションDES
時間内のイベントの離散シーケンスとしてのシステムの動作のモデル。各イベントは特定の瞬間に発生し、システムの状態の変化を示します。[101]連続するイベント間では、システムに変更は発生しないと想定されます。したがって、シミュレーションは、あるイベントから次のイベントに時間内に直接ジャンプできます。
ディスクストレージ
(ドライブストレージとも呼ばれます)は、1つまたは複数の回転ディスクの表面層に対するさまざまな電子的、磁気的、光学的、または機械的な変更によってデータが記録されるストレージメカニズムの一般的なカテゴリです。ディスクドライブは、このようなストレージメカニズムを実装するデバイスです。注目すべきタイプは、リムーバブルでないディスクを含むハードディスクドライブ(HDD)、フロッピーディスクドライブ(FDD)とそのリムーバブルフロッピーディスク、およびさまざまな光ディスクドライブ(ODD)と関連する光ディスクメディアです。
分散コンピューティング
分散システムを研究するコンピュータサイエンスの分野。分散システムは、コンポーネントが異なるネットワークコンピュータに配置されているシステムであり、メッセージを相互に渡すことによって、それらのアクションを通信および調整します[102]共通の目標を達成するために、コンポーネントは互いに相互作用します。分散システムの3つの重要な特性は、コンポーネントの同時実行性、グローバルクロックの欠如、およびコンポーネントの独立した障害です。[102]分散システムの例は、SOAベースのシステムから、大規模なマルチプレイヤーオンラインゲームまでさまざまです。ピアツーピアアプリケーション
分割統治アルゴリズム
マルチブランチ再帰に基づくアルゴリズム設計パラダイム分割統治アルゴリズムは、問題を直接解決できるほど単純になるまで、問題を同じタイプまたは関連するタイプの2つ以上のサブ問題に再帰的に分解することによって機能します。次に、サブ問題の解決策を組み合わせて、元の問題の解決策を提供します。
DNS
ドメインネームシステムを参照してください
ドキュメンテーション
コンピュータソフトウェアに付属している、またはソースコードに埋め込まれているテキストまたはイラストそれはそれがどのように動作するか、またはそれをどのように使用するかを説明し、異なる役割の人々にとって異なることを意味するかもしれません。
ドメイン
コンピュータプログラムの対象分野ですこれは、ソフトウェアエンジニアリングで使用される用語です。正式には、狭義または広義にかかわらず、特定のプログラミングプロジェクトの対象となる主題を表します。[103]
ドメインネームシステム(DNS)
インターネットまたはプライベートネットワークに接続されたコンピューター、サービス、またはその他のリソース用の階層型の分散型ネーミングシステム。さまざまな情報を、参加している各エンティティに割り当てられたドメイン名に関連付けます。最も顕著なのは、覚えやすいドメイン名を、基盤となるネットワークプロトコルを使用してコンピュータサービスやデバイスを見つけて識別するために必要な数値のIPアドレスに変換することです。ドメインネームシステムは、世界中に分散されたディレクトリサービスを提供することにより、1985年以来インターネットの機能に不可欠なコンポーネントとなっています。
倍精度浮動小数点形式
コンピューターの数値形式浮動小数点を使用して、幅広いダイナミックレンジの数値を表します
ダウンロード
コンピュータネットワークにおいて、リモートシステム、通常はウェブサーバーFTPサーバー、電子メールサーバー、または他の同様のシステムなどのサーバー[104]からデータを受信すること。これは、データがリモートサーバーに送信されるアップロードとは対照的です。ダウンロードとは、ダウンロード用に提供されたファイルダウンロードされたファイル、またはそのようなファイルを受信するプロセスです。

E

エッジデバイス
エンタープライズまたはサービスプロバイダーのコアネットワークへのエントリポイントを提供するデバイス。例としては、ルーター、ルーティングスイッチ統合アクセスデバイス(IAD)、マルチプレクサ、さまざまなメトロポリタンエリアネットワーク(MAN)およびワイドエリアネットワーク(WAN)アクセスデバイスがあります。エッジデバイスは、キャリアおよびサービスプロバイダーネットワークへの接続も提供します。ローカルエリアネットワークを高速スイッチまたはバックボーン(ATMスイッチなど)に接続するエッジデバイスは、エッジコンセントレータと呼ばれる場合があります。
暗号化
暗号化では、暗号化は情報をエンコードするプロセスですこのプロセスは、平文と呼ばれる情報の元の表現を暗号文と呼ばれる代替形式に変換します。理想的には、許可された当事者のみが暗号文を解読して平文に戻し、元の情報にアクセスできます。暗号化自体は干渉を防ぐことはできませんが、インターセプターになる可能性のあるコンテンツを拒否します。技術的な理由から、暗号化スキームは通常、アルゴリズムによって生成された疑似ランダム暗号化キーを使用しますキーを持たなくてもメッセージを復号化することは可能ですが、適切に設計された暗号化スキームには、かなりの計算リソースとスキルが必要です。許可された受信者は、発信者から受信者に提供されたキーを使用してメッセージを簡単に復号化できますが、許可されていないユーザーには復号化できません。歴史的に、暗号化を支援するためにさまざまな形式の暗号化が使用されてきました。初期の暗号化技術は、軍事メッセージングでよく利用されていました。それ以来、新しい技術が出現し、現代のコンピューティングのすべての分野で一般的になっています。[105]最新の暗号化スキームは、公開鍵対称鍵の概念を利用しています。[105] 最新のコンピューターは暗号化を解読するのに非効率的であるため、最新の暗号化技術はセキュリティを保証します。
イベント
ソフトウェアによって認識されるアクションまたはオカレンス。多くの場合、外部環境から非同期で発生し、ソフトウェアによって処理される場合があります。イベントは、アクションとアクションをトリガーするコンテキスト変数をカプセル化するエンティティであるため、概念を明確にするために、アクロスティックニーモニック「ExecutionV ariable E ncapsulating NamedTrigger よく使用されます
イベント駆動型プログラミング
プログラムのフローが、ユーザーアクション(マウスクリック、キー押下)、センサー出力、または他のプログラムやスレッドからのメッセージなどのイベントによって決定されるプログラミングパラダイムイベントドリブンプログラミングは、ユーザー入力に応答して特定のアクションを実行することに重点を置いた、グラフィカルユーザーインターフェイスやその他のアプリケーション(JavaScript Webアプリケーションなど)で使用される主要なパラダイムです。これは、デバイスドライバーのプログラミングにも当てはまります(たとえば、USBデバイスドライバースタックのP [106])。
進化的計算
生物学的進化に触発された大域的最適化のためのアルゴリズムのファミリー、およびこれらのアルゴリズムを研究する人工知能ソフトコンピューティングのサブフィールド。技術的には、メタヒューリスティックまたは確率的最適化特性を備えた、人口ベースの試行錯誤の問題解決者のファミリーです。
実行可能

また、実行可能コード実行可能ファイル実行可能プログラム、または単に実行可能

意味のあるものにするためにプログラムによって解析されなければならないデータファイルとは対照的に、コンピュータに「エンコードされた命令に従って示されたタスクを実行させる」[107]正確な解釈は用途によって異なります。「命令」は従来、物理CPUのマシンコード命令を意味すると解釈されますが、コンテキストによっては、バイトコードまたはスクリプト言語の命令を含むファイルも実行可能と見なされる場合があります。
実行可能モジュール
実行
コンピュータおよびソフトウェアエンジニアリングでは、コンピュータまたは仮想 マシンがコンピュータプログラムの命令を実行するプロセスです。プログラムの各命令は、特定の問題を解決するために実行される特定のアクションの説明です。プログラムの命令として、したがってそれらが記述するアクションは実行中のマシンによって実行されているため、実行されている命令のセマンティクスに従って特定の効果が生成されます。
例外処理
計算中に例外(特別な処理を必要とする異常または例外的な条件)の発生に対応するプロセスは、プログラム 実行の通常のフローを混乱させることがよくあります。これは、特殊なプログラミング言語構造、割り込みなどのコンピューターハードウェアメカニズム、または信号などのオペレーティングシステムIPC機能によって提供されます
表現
プログラミング言語において、1つ以上の定数変数演算子、およびプログラミング言語が解釈し(優先順位と関連付けの特定の規則に従って)計算して生成する(「戻る」)関数の組み合わせ。 )別の値。このプロセスは、数式と同様に、評価と呼ばれます。
外部ライブラリ

F

フォールトトレラントコンピュータシステム
フォールトトレランスの概念に基づいて設計されたシステム本質的に、彼らはエラーや故障の存在下で満足のレベルまで働き続けることができなければなりません。
フィージビリティスタディ
既存の事業または提案されたベンチャーの長所と短所、自然環境に存在する機会と脅威、実行に必要なリソース、そして最終的には成功の見通しを客観的かつ合理的に明らかにすることを目的とした調査。[108] [109]最も簡単に言えば、実現可能性を判断するための2つの基準は、必要なコストと達成される価値です。[110]
分野
レコード呼ばれるいくつかの部分を持つデータは、フィールドに分割できます。リレーショナルデータベースは、データをデータベースレコードのセット、いわゆるとして配置します。各レコードはいくつかのフィールドで構成されています。すべてのレコードのフィールドがを形成します。フィールドの例:名前、性別、髪の色。
ファイル名拡張子
コンピュータファイル名前接尾辞として指定された識別子拡張子は、ファイルの内容またはその使用目的の特性を示します。
フィルター(ソフトウェア)
ストリームを処理し、別のストリームを生成するためのコンピュータプログラムまたはサブルーチン単一のフィルターを個別に使用することもできますが、パイプラインを形成するためにそれらをつなぎ合わせることがよくあります。
浮動小数点演算
計算において、浮動小数点演算(FP)は、範囲と精度の間のトレードオフをサポートするための近似として実数の公式表現を使用する演算です。このため、浮動小数点計算は、非常に小さい実数と非常に大きい実数を含むシステムでよく見られ、処理時間が速くなります。数値は、一般に、ほぼ固定数の有効桁数(仮数)で表され、固定基数指数使用してスケーリングされます。スケーリングのベースは通常2、10、または16です。正確に表すことができる数値は、次の形式です。
ここで、仮数は整数、基数は2以上の整数、指数も整数です。例えば:
forループ

また、forループ

反復を指定するため制御フロー ステートメント。これにより、コードを繰り返し実行できます。このステートメントを指定するには、さまざまなキーワードが使用されます。ALGOLの子孫は「for」を使用し、 Fortranの子孫は「do」を使用します。他の可能性もあります。たとえば、COBOLは「PERFORMVARYING」を使用します。
形式手法
ソフトウェアおよびハードウェアシステムの仕様、開発、および検証ための数学ベースの技術のセット。[111]ソフトウェアとハ​​ードウェアの設計に形式手法を使用することは、他の工学分野と同様に、適切な数学的分析を実行することで設計の信頼性と堅牢性に貢献できるという期待に基づいています。[112]
フォーマル検証
数学の形式手法を使用して、特定の形式仕様またはプロパティに関してシステムの基礎となる意図されたアルゴリズムの正当性を証明または反証する行為。[113]
関数型プログラミング
プログラミングパラダイムコンピュータープログラムの構造と要素を構築するスタイル)は、計算を数学関数の評価として扱い、状態の変化や可変データを回避します。プログラミングがステートメントの代わりにまたは宣言[114]を使用して行われるという点で、これは宣言型プログラミングパラダイムです。

G

ゲーム理論
合理的な意思決定者間の戦略的相互作用の数学的モデルの研究。[115]社会科学のすべての分野だけでなく、論理学コンピュータサイエンスにも応用できます。もともとは、各参加者の利益または損失が他の参加者の利益または損失と正確にバランスが取れているゼロサムゲームを対象としていました。今日、ゲーム理論は幅広い行動関係に適用され、現在では人間、動物、コンピューターにおける論理的意思決定科学の総称となっています。
ガベージイン、ガベージアウト(GIGO)
欠陥のあるまたはナンセンスな入力データがナンセンスな出力または「ガベージ」を生成するという概念を説明するために使用される用語。また、プログラミングの容赦のない性質を指すこともあります。この場合、プログラムの記述が不十分だと、無意味な動作が発生する可能性があります。
グラフィック交換フォーマット
ギガバイト
デジタル情報の単位バイトの倍数。接頭辞 giga国際単位系(SI)で109を意味します。したがって、1ギガバイトは1 000 000000バイトですギガバイトの単位記号はGBです。
グローバル変数
コンピュータープログラミングにおいて、グローバルスコープを持つ変数。これは、シャドウされていない限り、プログラム全体で表示(したがってアクセス可能)であることを意味しますすべてのグローバル変数のセットは、グローバル環境またはグローバル状態と呼ばれます。コンパイル型言語では、グローバル変数は一般に静的変数であり、その範囲(存続期間)はプログラムの実行時間全体ですが、解釈された言語(コマンドラインインタープリターを含む)では、グローバル変数は不明であるため、宣言時に動的に割り当てられます。事前に。
グラフ理論
数学では、オブジェクト間のペアワイズ関係をモデル化するために使用される数学的構造であるグラフの研究。このコンテキストのグラフは、エッジ(リンクまたはラインとも呼ばれます)で接続された頂点ノードまたはポイントとも呼ばれます)で構成されています。エッジが2つの頂点を対称的にリンクする無向グラフと、エッジが2つの頂点を非対称にリンクする有向グラフは区別されます。

H

取り持つ
コンピュータプログラミングでは、ハンドルは、アプリケーションソフトウェアがデータベースオペレーティングシステムなどの別のシステムによって管理されているメモリまたはオブジェクトのブロックを参照するときに使用されるリソースへの抽象的な参照です。
難しい問題
計算の複雑さの理論は、固有の難しさに従って計算問題を分類し、これらのクラスを相互に関連付けることに焦点を当てています。計算問題は、コンピューターによって解決されるタスクです。計算問題は、アルゴリズムなどの数学的ステップを機械的に適用することで解決できます。
ハッシュ関数
任意のサイズのデータ​​を固定サイズのデータ​​にマップするために使用できる任意の関数。ハッシュ関数によって返される値は、ハッシュ値ハッシュコードダイジェスト、または単にハッシュと呼ばれます。ハッシュ関数は、高速データ検索のためにコンピューターソフトウェアで使用される一般的なデータ構造であるハッシュテーブルと組み合わせて使用​​されることがよくあります。ハッシュ関数は、大きなファイル内の重複レコードを検出することにより、テーブルまたはデータベースの検索を高速化します。
ハッシュ表
コンピューティングでは、ハッシュテーブルハッシュマップ)は、連想配列の抽象データ型を実装するデータ構造であり、キーにマップできる構造ですハッシュテーブルは、ハッシュ関数を使用して、バケットまたはスロットの配列へのインデックスを計算します。この配列から、目的の値を見つけることができます。
ヒープ
ヒーププロパティを満たすほぼ完全な[116]ツリーである特殊なツリーベースのデータ構造:PがCの親ノードである場合、Pのキー)は(in最大ヒープ)または(最小ヒープ)Cのキー以下。 [117]ヒープの「最上位」にあるノード(親なし)は、ルートノードと呼ばれます。
ヒープソート
比較ベースの ソートアルゴリズムヒープソートは、改善された選択ソートと考えることができます。そのアルゴリズムのように、入力をソートされた領域とソートされていない領域に分割し、最大の要素を抽出してソートされた領域に移動することにより、ソートされていない領域を繰り返し縮小します。改善は、最大値を見つけるための線形時間検索ではなく、ヒープデータ構造の使用で構成されます。[118]
ヒューマンコンピュータインタラクション(HCI)
人々(ユーザー)とコンピューターの間のインターフェースに焦点を当てて、コンピューター技術の設計と使用を研究します。HCIの分野の研究者は、人間がコンピューターと対話する方法を観察し、人間がコンピューターと新しい方法で対話できるようにするテクノロジーを設計しています。研究分野として、人間とコンピューターの相互作用は、コンピューターサイエンス行動科学デザインメディア研究、およびその他のいくつかの研究分野の交差点に位置しています

識別子
コンピューター言語では、識別子は言語エンティティに名前を付けるトークン(シンボルとも呼ばれます)です。識別子が示す可能性のあるエンティティの種類には、変数タイプラベルサブルーチン、およびパッケージが含まれます。
IDE
統合開発環境。
画像処理
命令型プログラミング
プログラムの状態を変更するステートメントを使用するプログラミングパラダイム自然言語の命令型がコマンドを表現するのとほぼ同じように、命令型プログラムは、コンピューターが実行するコマンドで構成されます。命令型プログラミングは、プログラムがどのように動作するかを記述することに焦点を当てています。
インクリメンタルビルドモデル
製品が完成するまで、製品が段階的に設計、実装、およびテストされる(毎回少しずつ追加される)ソフトウェア開発の方法。これには、開発と保守の両方が含まれます。製品は、すべての要件を満たしたときに完成したと定義されます。このモデルは、ウォーターフォールモデルの要素とプロトタイピングの反復哲学を組み合わせたものです。
情報空間分析
チーム中心の取り組みのためのリソースを見つけて評価するための、マシンインテリジェンスによって強化された決定論的方法。
情報の視覚化
継承
オブジェクト指向プログラミングにおいて、オブジェクトまたはクラスを別のオブジェクト(プロトタイプベースの継承)またはクラス(クラスベースの継承)に基づいて、同様の実装を保持するメカニズム。また、既存のクラス(スーパークラスまたはベースクラス)から新しいクラス(サブクラス)を派生させ、それらをクラスの階層に形成することとしても定義されます。
入出力(I / O)

また、非公式にioまたはIO

コンピュータなどの情報処理システムと、おそらく人間または別の情報処理システムである外界との間の通信入力はシステムによって受信された信号またはデータであり、出力はシステムから送信された信号またはデータです。この用語は、アクションの一部として使用することもできます。「I / Oを実行する」とは、入力または出力操作を実行することです。
挿入ソート
一度に1つのアイテムの最終的な並べ替え配列(またはリスト)を作成する単純な並べ替えアルゴリズム。
命令サイクル

また、fetch-decode-executecycleまたは単にfetch-executecycleです

中央処理装置(CPU)が起動から、命令を処理するためにコンピューターがシャットダウンするまでのサイクル。これは、フェッチステージ、デコードステージ、および実行ステージの3つの主要なステージで構成されています。
整数
整数データ型のデータ型。数学整数の範囲を表すデータ型整数データ型はサイズが異なる場合があり、負の値を含めることができる場合とできない場合があります。整数は通常、コンピューターでは2進数(ビット)のグループとして表されます。グループ化のサイズは異なるため、使用可能な整数サイズのセットはコンピューターの種類によって異なります。仮想マシンを含むコンピュータハードウェアは、ほとんどの場合、プロセッサレジスタまたはメモリアドレスを整数として表す方法を提供します。
統合開発環境(IDE)
ソフトウェア開発のためにコンピュータープログラマーに包括的な機能を提供するソフトウェアアプリケーションIDEは通常、少なくともソースコードエディタビルド自動化ツール、およびデバッガで構成されています。
統合テスト
(統合およびテストと呼ばれることもあり、I&Tと略されます)は、個々のソフトウェアモジュールを組み合わせてグループとしてテストするソフトウェアテストのフェーズです。統合テストは、システムまたはコンポーネントの指定された機能要件への準拠を評価するために実施されます。[119]単体テストの後、検証テストの前に発生します統合テストは、単体テストされた入力モジュールを受け取り、それらをより大きな集合体にグループ化し、統合テスト計画で定義されたテストをそれらの集合体に適用し、システムテストの準備ができた統合システムを出力として提供します[120]
知的財産(IP)
人間の知性の無形の創造物を含む法的財産のカテゴリー。[121] [122]知的財産には多くの種類があり、一部の国は他の国よりも認識しています。[123] [124] [125] [126] [127]最もよく知られているタイプは、著作権特許商標、および企業秘密です。
インテリジェントエージェント
人工知能ではインテリジェントエージェントIA)は、センサーとその結果として生じるアクチュエーター(つまりインテリジェント)による観察を使用して、環境に基づいて行動し、目標の達成に向けて活動を指示する自律エンティティ(つまりエージェント)を指します。[128]知的エージェントは、目標を達成するために知識を学習または使用することもできます。それらは非常に単純な場合もあれば、非常に複雑な場合もあります。サーモスタットなどの反射機は、インテリジェントエージェントの例と見なされます。[129]
インターフェース
コンピュータシステムの2つ以上の個別のコンポーネントが情報を交換する共有境界。交換は、ソフトウェアコンピュータハードウェア周辺機器、人間、およびこれらの組み合わせの間で行うことができます。[130]タッチスクリーンなどの一部のコンピュータハードウェアデバイスは、インターフェイスを介してデータを送受信できますが、マウスやマイクなどの他のデバイスは、特定のシステムにデータを送信するためのインターフェイスのみを提供する場合があります。[131]
内部ドキュメント
コードのさまざまな部分がどのように、そしてなぜ動作するかについてのメモがコメントとしてソースコードに含まれている場合、コンピュータソフトウェアには内部ドキュメントがあると言われます。これは、将来の潜在的なプログラマーにコードの動作を理解する手段を提供することを目的として、意味のある変数名と組み合わされることがよくあります。これは、プログラマーがメモと説明を別のドキュメントに保存する外部ドキュメントとは対照的です。
インターネット
インターネットプロトコルスイート(TCP / IP)を使用して世界中のデバイスをリンクする相互接続されたコンピュータネットワークのグローバルシステム。これは、ローカルからグローバルまでの範囲のプライベート、パブリック、アカデミック、ビジネス、および政府のネットワークで構成されるネットワークのネットワークであり、さまざまな電子、ワイヤレス、および光のネットワーキングテクノロジーによってリンクされています。
インターネットボット

また、 Webロボットロボット、または単にボット

インターネット上で自動化されたタスク(スクリプト)を実行するソフトウェアアプリケーション[132]通常、ボットは、人間だけの場合よりもはるかに高い速度で、単純で構造的に反復的なタスクを実行します。ボットの最大の用途はWebスパイダリングWebクローラー)です。このスパイダリングでは、自動化されたスクリプトがWebサーバーから情報を取得し、分析し、人間の何倍もの速度でファイルします。
通訳者
プログラミングまたはスクリプト言語で記述された命令を直接実行するコンピュータープログラム。事前に機械語プログラムにコンパイルさている必要はありません。
不変
プログラムの実行中、またはプログラムの一部の間に真であると信頼できる不変条件に遭遇する可能性があります。これは論理的なアサーションであり、実行の特定のフェーズでは常に真であると見なされます。たとえば、ループ不変条件は、ループのすべての実行の開始時と終了時に真となる条件です。
反復
結果を生成するためのプロセスの繰り返しです。シーケンスは、あるエンドポイントまたはエンド値に近づきます。プロセスの各反復は1回の反復であり、各反復の結果が次の反復の開始点になります。数学コンピュータサイエンスでは、反復は(関連する再帰手法とともに)アルゴリズムの標準要素です

J

Java
クラスベースオブジェクト指向[133](ただし、純粋なオブジェクト指向言語[134]ではありません)であり、実装の依存関係をできるだけ少なくするように設計された汎用 プログラミング言語これは、アプリケーション開発者が一度書けばどこでも実行できる」(WORA)[135]ことを目的としています。つまり、コンパイルされたJavaコードは、再コンパイルせずにJavaをサポートするすべてのプラットフォームで実行できます。[136]

K

カーネル
メモリにロードするオペレーティングシステムの最初のセクションオペレーティングシステムの中心として、カーネルは小さく、効率的であり、上書きされないようにメモリ内の保護された領域にロードされる必要があります。ディスクドライブ管理、ファイル管理、メモリ管理、プロセス管理などの重要なタスクを担当する場合があります。

L

ライブラリ(コンピューティング)
多くの場合ソフトウェア開発のために、コンピュータプログラムによって使用される不揮発性リソースのコレクションこれらには、構成データ、ドキュメント、ヘルプデータ、メッセージテンプレート、事前に作成されたコードサブルーチンクラス、またはの仕様が含まれる場合があります。

また、順次検索

リスト内の要素を見つけるためのメソッド一致するものが見つかるか、リスト全体が検索されるまで、リストの各要素を順番にチェックします。[137]
リンクリスト
データ要素の線形コレクション。その順序は、メモリ内の物理的な配置によって指定されません。代わりに、各要素は次を指します。これは、シーケンスを一緒に表すノードのコレクションで構成されるデータ構造です。
リンカ
またはリンクエディタは、コンパイラまたはアセンブラによって生成された1つ以上のオブジェクトファイルを取得し、それらを単一の実行可能ファイル、ライブラリファイル、または別の「オブジェクト」ファイルに結合するコンピュータユーティリティプログラムです。出力をメモリに直接書き込む単純なバージョンはローダーと呼ばれますが、ロードは通常、別のプロセスと見なされます。[138]
リスト
算数の順序付けされた値を表す抽象データ型。同じ値が複数回発生する可能性があります。リストのインスタンスは、有限シーケンスの数学的概念のコンピューター表現です。リストの(潜在的に)無限のアナログはストリームです。[139] :§3.5 リストは他の値を含んでいるため、コンテナの基本的な例です。同じ値が複数回発生する場合、各発生は別個のアイテムと見なされます。
ローダ
プログラムライブラリのロードを担当するオペレーティングシステムの一部これは、プログラムをメモリに配置して実行の準備をするため、プログラムを開始するプロセスの重要な段階の1つです。プログラムのロードには、プログラム命令を含む実行可能ファイルの内容をメモリに読み込んでから、実行可能ファイルを実行できるように準備するために必要なその他の準備タスクを実行することが含まれます。ロードが完了すると、オペレーティングシステムは、ロードされたプログラムコードに制御を渡すことによってプログラムを開始します。
論理エラー
コンピュータープログラミングにおいてプログラムが正しく動作しないが、異常終了(またはクラッシュ)しないプログラムのバグ論理エラーは、意図しない、または望ましくない出力またはその他の動作を生成しますが、すぐには認識されない場合があります。
論理プログラミング
主に形式論理に基づくプログラミングパラダイムの一種論理プログラミング言語で書かれたプログラムはすべて、論理形式の一連の文であり、問​​題のある領域に関する事実と規則を表現しています。主要な論理プログラミング言語ファミリーには、Prolog回答セットプログラミング(ASP)、およびDatalogが含まれます。

M

機械学習(ML)
コンピュータシステム明示的な指示を使用せずに特定のタスクを実行するために使用するアルゴリズム統計モデルの科学的研究。代わりにパターンと推論に依存します。人工知能のサブセットと見なされます。機械学習アルゴリズムは、タスクを実行するように明示的にプログラムされていなくても予測や決定を行うために、 「トレーニングデータ」と呼ばれるサンプルデータに基づいて数学モデルを構築します。[140] [141]
マシンビジョン(MV)
自動検査、プロセス制御、ロボットガイダンスなどのアプリケーションに、通常は業界で画像ベースの自動検査と分析を提供するために使用される技術と方法。マシンビジョンとは、多くのテクノロジー、ソフトウェアおよびハードウェア製品、統合システム、アクション、方法、および専門知識を指します。システム工学の分野としてのマシンビジョンは、コンピュータサイエンスの一形態であるコンピュータビジョンとは異なると見なすことができます既存のテクノロジーを新しい方法で統合し、それらを適用して実際の問題を解決しようとします。この用語は、産業用自動化環境でのこれらの機能の一般的な用語ですが、セキュリティや車両ガイダンスなどの他の環境でのこれらの機能にも使用されます。
数理論理学
数学への形式論理学の応用を探求する数学のサブフィールドそれは、超数学、数学の基礎、および理論計算機科学と密接な関係があります[142]数理論理学の統一テーマには、形式システムの表現力と形式証明システムの演繹力の研究含まます
マトリックス
数学は、行列(複数の行列)は、に配置された数値記号、または式の長方形の 配列[143]不規則な行列を参照)です[144] [145]
メモリー
コンピュータデータストレージは、ストレージと呼ばれることもあり、デジタルデータを保持するために使用されるコンピュータコンポーネントと記録メディアで構成されるテクノロジです。これは、コンピューターのコア機能であり、基本的なコンポーネントです。[146] :15–16 
マージソート

また、マージソート

効率的で汎用的な比較ベースの ソートアルゴリズムほとんどの実装は安定ソートを生成します。これは、等しい要素の順序が入力と出力で同じであることを意味します。マージソートは、1945年にジョンフォンノイマンによって発明された分割統治アルゴリズムです。 [147]ボトムアップマージソートの詳細な説明と分析は、早くも1948年にゴールドスタインフォンノイマンによるレポートに掲載されました。[148]
方法
オブジェクト指向プログラミング(OOP)において、メッセージオブジェクトに関連付けられたプロシージャーオブジェクトは、データと動作で構成されます。データと動作は、オブジェクトのさまざまな消費者[149]がオブジェクトをどのように利用できるかを指定するインターフェースを構成します。
方法論
ソフトウェアエンジニアリングでは、ソフトウェア開発プロセスは、ソフトウェア開発作業を個別のフェーズに分割して、設計製品管理、およびプロジェクト管理を改善するプロセスですこれは、ソフトウェア開発ライフサイクル(SDLC)とも呼ばれます。方法論には、アプリケーションを開発または保守するためにプロジェクトチームによって作成および完成される特定の成果物および成果物の事前定義が含まれる場合があります。[150]
モデム

変調器-復調器のかばん語

データを伝送媒体に適した形式に変換して、あるコンピューターから別のコンピューターに(歴史的には電話線に沿って)送信できるようにするハードウェアデバイス。モデムは、 1つまたは複数の搬送波信号を変調して送信用のデジタル情報をエンコードし、信号を変調解除して送信された情報をデコードします。目標は、元のデジタルデータを再現するために、簡単に送信および確実にデコードできる信号を生成することです。モデムは、発光ダイオードから無線機にアナログ信号を送信するほとんどすべての手段で使用できます一般的なタイプのモデムはコンピュータのデジタルデータを変調された電気信号に変換して電話回線で送信し、受信側の別のモデムによって復調してデジタルデータを復元するものです。

N

自然言語処理(NLP)
言語学コンピューターサイエンス情報工学、およびコンピューターと人間(自然)言語間の相互作用、特に大量の自然言語データを処理および分析するようにコンピューターをプログラムする方法に関係する人工知能のサブフィールド。自然言語処理の課題には、音声認識自然言語理解自然言語生成が含まれることがよくあります。
ノード
リンクリストツリーデータ構造などのデータ構造の基本単位ですノードにはデータが含まれており、他のノードにリンクすることもできます。ノード間のリンクは、多くの場合、ポインタによって実装されます。
数論
主に整数整数値関数の研究に専念する純粋数学の一分野
数値解析
(離散数学とは区別される)数学的分析の問題に対して(記号操作ではなく)数値近似を使用するアルゴリズムの研究
数値的方法
数値解析では、数値解法は数値問題を解決するために設計された数学的ツールです。プログラミング言語で適切な収束チェックを使用した数値解法の実装は、数値アルゴリズムと呼ばれます。

O

物体
オブジェクトは、変数データ構造関数、またはメソッドである可能性があり、そのため、識別子によって参照されるメモリ内ですクラスベースのオブジェクト指向プログラミングパラダイムでは、オブジェクトクラスの特定のインスタンス指します。オブジェクトは、変数、関数、およびデータ構造の組み合わせにすることができます。リレーショナルデータベース管理では、オブジェクトはテーブルまたは列、あるいはデータとデータベースエンティティ間の関連付け(人の年齢を特定の人に関連付けるなど)にすることができます。 [151]
オブジェクトコード

また、オブジェクトモジュール

コンパイラの製品[152]一般的な意味で、オブジェクトコードは、コンピュータ言語、[153]通常、機械語(つまり、バイナリ)またはレジスタ転送言語(RTL)などの中間言語での一連のステートメントまたは命令です。この用語は、コードがコンパイルプロセスの目標または結果であることを示しており、初期のソースの中には、ソースコードを「サブジェクトプログラム」と呼んでいるものもあります。
オブジェクト指向分析および設計(OOAD)
オブジェクト指向プログラミングを適用することによってアプリケーション、システム、またはビジネスを分析および設計するための技術的アプローチ、およびソフトウェア開発プロセス全体でビジュアルモデリングを使用して、利害関係者のコミュニケーションと製品の品質を導きます。
オブジェクト指向プログラミング(OOP)
フィールド属性またはプロパティと呼ばれることが多い)の形式のデータと、プロシージャメソッドと呼ばれることが多い)の形式のコードを含むことができる「オブジェクト」の概念に基づくプログラミングパラダイムオブジェクトの機能は、関連付けられているオブジェクトのデータフィールドにアクセスし、多くの場合変更できるオブジェクトのプロシージャです(オブジェクトには「this」または「self」の概念があります)。OOPでは、コンピュータープログラムは、相互に作用するオブジェクトから作成することによって設計されます。[154] [155] OOP言語は多様ですが、最も人気のある言語はクラスベース。つまり、オブジェクトはクラスのインスタンスであり、クラスのタイプも決定します
オープンソースソフトウェア(OSS)
著作権所有者がユーザーにソフトウェアを調査、変更、および誰にでも、どのような目的でも配布する権利を付与するライセンスの下でソースコードがリリースされるタイプのコンピュータソフトウェア。[156]オープンソースソフトウェアは、共同で公的な方法で開発される可能性があります。オープンソースソフトウェアは、オープンコラボレーションの代表的な例です[157]
オペレーティングシステム(OS)
コンピュータハードウェアソフトウェアリソースを管理し、コンピュータプログラムに共通のサービスを提供するシステムソフトウェア
光ファイバ
ガラスシリカ)やプラスチックを人間の髪の毛より少し太い直径に引っ張って作っ、しなやかで透明な 繊維[158]光ファイバは、ファイバの両端間で光を伝送する手段として最も頻繁に使用され、電気ケーブルよりも長距離および高帯域幅(データレート)での伝送を可能にする光ファイバ通信で広く使用されています。 。信号がより少ない損失でそれらに沿って伝わるので、金属線の代わりに繊維が使用されます。さらに、ファイバーは電磁干渉の影響を受けません 、金属線が苦しむ問題。[159]

P

ペアプログラミング
2人のプログラマーが1つのワークステーションで一緒に作業するアジャイルソフトウェア開発手法。一方のドライバーはコードを書き込み、もう一方のオブザーバーまたはナビゲーター[160]は、入力されたコードの各行を確認します。2人のプログラマーは頻繁に役割を切り替えます
並列計算
多くの計算またはプロセスの実行が同時に実行されるタイプの計算[161]大きな問題はしばしば小さな問題に分割され、同時に解決することができます。並列計算には、ビットレベル命令レベルデータタスク並列処理など、いくつかの異なる形式があります
パラメータ

また、正式な引数

コンピュータープログラミングにおいて、サブルーチンへの入力として提供されるデータの1つを参照するために、サブルーチンで使用される特殊な種類の変数。[b]これらのデータは、サブルーチンが呼び出される/呼び出される引数(多くの場合、実際の引数または実際のパラメーターと呼ばれる)の値[162] [163] [164]です。パラメータの順序付きリストは通常、サブルーチンの定義に含まれているため、サブルーチンが呼び出されるたびに、その呼び出しの引数が評価され、結果の値を対応するパラメータに割り当てることができます。
周辺
コンピュータシステムに接続または統合され、コンピュータに情報を送信したり、コンピュータから情報を取得したりするために使用される補助デバイスまたは補助デバイス。入力デバイスは、データまたは命令をコンピューターに送信します。出力デバイスは、コンピューターからユーザーに出力を提供します入出力デバイスは両方の機能を実行します
ポインタ
メモリアドレスを格納する多くのプログラミング言語オブジェクトです。これは、コンピュータメモリにある別の値の場合もあれば、メモリマップドコンピュータハードウェアの値の場合もあります。ポインタはメモリ内の場所を参照し、その場所に格納されている値を取得することは、ポインタの間接参照と呼ばれます。例えとして、本の索引のページ番号は、対応するページへのポインタと見なすことができます。このようなポインタの間接参照は、指定されたページ番号のページにめくり、そのページにあるテキストを読み取ることによって行われます。ポインタ変数の実際の形式と内容は、基になる変数によって異なります。 コンピュータアーキテクチャ
事後条件
コンピュータープログラミングにおいて、コードのあるセクションの実行直後、または形式仕様での操作の後に常に真でなければならない条件または述語事後条件は、コード自体の中でアサーションを使用してテストされることがあります。多くの場合、事後条件は、影響を受けるコードセクションのドキュメントに含まれているだけです。
前提条件
コンピュータープログラミングにおいて、コードの一部のセクションを実行する直前、または形式仕様の操作の前に常に真でなければならない条件または述語前提条件に違反すると、コードのセクションの効果が未定義になり、意図した作業を実行する場合と実行しない場合があります。 誤った前提条件が原因でセキュリティの問題が発生する可能性があります。
一次ストレージ
メインメモリ内部メモリ、またはプライムメモリとも呼ばれます)は、単にメモリと呼ばれることが多く、CPUに直接アクセスできる唯一のメモリです。CPUはそこに格納されている命令を継続的に読み取り、必要に応じて実行します。アクティブに操作されているデータも、均一に保存されます。
プリミティブデータ型
優先キュー
通常のキューまたはスタックデータ構造に似ていますが、さらに各要素に「優先度」が関連付けられている抽象データ型。優先度キューでは、優先度の高い要素が優先度の低い要素の前に提供されます。一部の実装では、2つの要素の優先度が同じである場合、それらはキューに入れられた順序に従って提供されますが、他の実装では、同じ優先度の要素の順序は定義されていません。
手続き型プログラミング
手順
コンピュータプログラミングでは、サブルーチンは特定のタスクを実行する一連のプログラム命令であり、1つの単位としてパッケージ化されています。このユニットは、特定のタスクを実行する必要があるプログラムで使用できますサブルーチンは、プログラム内で定義することも、多くのプログラムで使用できるライブラリーで個別に定義することもできます。さまざまなプログラミング言語では、サブルーチンは、ルーチン、サブプログラム、関数、メソッド、またはプロシージャと呼ばれる場合があります。技術的には、これらの用語はすべて異なる定義を持っています。一般的な総称の呼び出し 可能ユニットが使用されることがあります。[165]
プログラムライフサイクルフェーズ
プログラムライフサイクルフェーズは、コンピュータプログラムが最初に作成してから展開し、実行するまでの段階です。フェーズは、編集時間、コンパイル時間、リンク時間、配布時間、インストール時間、ロード時間、および実行時間です。
プログラミング言語
さまざまな種類の出力を生成する一連の命令で構成される形式言語プログラミング言語は、アルゴリズムを実装するためにコンピュータプログラミングで使用されます。
プログラミング言語の実装
コンピュータプログラムを実行するためのシステムですプログラミング言語の実装には、解釈コンパイルという2つの一般的なアプローチがあります[166]
プログラミング言語理論
(PLT)は、プログラミング言語とその個々の機能の設計、実装、分析、特性評価、および分類を扱うコンピューターサイエンスの分野です。それは、数学ソフトウェアエンジニアリング言語学、さらには認知科学に依存し、影響を与えるコンピュータサイエンスの分野に含まれますそれはコンピュータサイエンスのよく知られた分野になり、活発な研究分野になり、結果はPLTに特化した多数のジャーナル、および一般的なコンピュータサイエンスとエンジニアリングの出版物に掲載されています。
プロローグ
人工知能計算言語学に関連する論理プログラミング言語です。[167] [168] [169] Prologは一階述語論理形式論理に ルーツがあり、他の多くのプログラミング言語とは異なり、Prologは主に宣言型プログラミング言語として意図されています。プログラム論理は関係の観点から表現されます。事実とルールとして表されます。計算は、これらの関係に対してクエリを実行することによって開始されます。[170]
Python
Is an interpreted, high-level and general-purpose programming language. Created by Guido van Rossum and first released in 1991, Python's design philosophy emphasizes code readability with its notable use of significant whitespace. Its language constructs and object-oriented approach aim to help programmers write clear, logical code for small and large-scale projects.[171]

Q

quantum computing
The use of quantum-mechanical phenomena such as superposition and entanglement to perform computation. A quantum computer is used to perform such computation, which can be implemented theoretically or physically.[172]: I-5 
queue
A collection in which the entities in the collection are kept in order and the principal (or only) operations on the collection are the addition of entities to the rear terminal position, known as enqueue, and removal of entities from the front terminal position, known as dequeue.
quicksort

Also partition-exchange sort.

An efficient sorting algorithm which serves as a systematic method for placing the elements of a random access file or an array in order.

R

R programming language
R is a programming language and free software environment for statistical computing and graphics supported by the R Foundation for Statistical Computing.[173] The R language is widely used among statisticians and data miners for developing statistical software[174] and data analysis.[175]
radix

Also base.

In digital numeral systems, the number of unique digits, including the digit zero, used to represent numbers in a positional numeral system. For example, in the decimal/denary system (the most common system in use today) the radix (base number) is ten, because it uses the ten digits from 0 through 9, and all other numbers are uniquely specified by positional combinations of these ten base digits; in the binary system that is the standard in computing, the radix is two, because it uses only two digits, 0 and 1, to uniquely specify each number.
record
A record (also called a structure, struct, or compound data) is a basic data structure. Records in a database or spreadsheet are usually called "rows".[176][177][178][179]
recursion
Occurs when a thing is defined in terms of itself or of its type. Recursion is used in a variety of disciplines ranging from linguistics to logic. The most common application of recursion is in mathematics and computer science, where a function being defined is applied within its own definition. While this apparently defines an infinite number of instances (function values), it is often done in such a way that no infinite loop or infinite chain of references can occur.
reference
Is a value that enables a program to indirectly access a particular datum, such as a variable's value or a record, in the computer's memory or in some other storage device. The reference is said to refer to the datum, and accessing the datum is called dereferencing the reference.
reference counting
A programming technique of storing the number of references, pointers, or handles to a resource, such as an object, a block of memory, disk space, and others. In garbage collection algorithms, reference counts may be used to deallocate objects which are no longer needed.
relational database
Is a digital database based on the relational model of data, as proposed by E. F. Codd in 1970.[180] A software system used to maintain relational databases is a relational database management system (RDBMS). Many relational database systems have an option of using the SQL (Structured Query Language) for querying and maintaining the database.[181][better source needed]
reliability engineering
A sub-discipline of systems engineering that emphasizes dependability in the lifecycle management of a product. Reliability describes the ability of a system or component to function under stated conditions for a specified period of time.[182] Reliability is closely related to availability, which is typically described as the ability of a component or system to function at a specified moment or interval of time.
regression testing
(rarely non-regression testing[183]) is re-running functional and non-functional tests to ensure that previously developed and tested software still performs after a change.[184] If not, that would be called a regression. Changes that may require regression testing include bug fixes, software enhancements, configuration changes, and even substitution of electronic components.[185] As regression test suites tend to grow with each found defect, test automation is frequently involved. Sometimes a change impact analysis is performed to determine an appropriate subset of tests (non-regression analysis[186]).
requirements analysis
In systems engineering and software engineering, requirements analysis focuses on the tasks that determine the needs or conditions to meet the new or altered product or project, taking account of the possibly conflicting requirements of the various stakeholders, analyzing, documenting, validating and managing software or system requirements.[187]
robotics
An interdisciplinary branch of engineering and science that includes mechanical engineering, electronic engineering, information engineering, computer science, and others. Robotics involves design, construction, operation, and use of robots, as well as computer systems for their perception, control, sensory feedback, and information processing. The goal of robotics is to design intelligent machines that can help and assist humans in their day-to-day lives and keep everyone safe.
round-off error

Also rounding error.[188]

The difference between the result produced by a given algorithm using exact arithmetic and the result produced by the same algorithm using finite-precision, rounded arithmetic.[189] Rounding errors are due to inexactness in the representation of real numbers and the arithmetic operations done with them. This is a form of quantization error.[190] When using approximation equations or algorithms, especially when using finitely many digits to represent real numbers (which in theory have infinitely many digits), one of the goals of numerical analysis is to estimate computation errors.[191] Computation errors, also called numerical errors, include both truncation errors and roundoff errors.[192]
router
A networking device that forwards data packets between computer networks. Routers perform the traffic directing functions on the Internet. Data sent through the internet, such as a web page or email, is in the form of data packets. A packet is typically forwarded from one router to another router through the networks that constitute an internetwork (e.g. the Internet) until it reaches its destination node.[193]
routing table
In computer networking a routing table, or routing information base (RIB), is a data table stored in a router or a network host that lists the routes to particular network destinations, and in some cases, metrics (distances) associated with those routes. The routing table contains information about the topology of the network immediately around it.
run time
Runtime, run time, or execution time is the final phase of a computer program's life cycle, in which the code is being executed on the computer's central processing unit (CPU) as machine code. In other words, "runtime" is the running phase of a program.
run time error
A runtime error is detected after or during the execution (running state) of a program, whereas a compile-time error is detected by the compiler before the program is ever executed. Type checking, register allocation, code generation, and code optimization are typically done at compile time, but may be done at runtime depending on the particular language and compiler. Many other runtime errors exist and are handled differently by different programming languages, such as division by zero errors, domain errors, array subscript out of bounds errors, arithmetic underflow errors, several types of underflow and overflow errors, and many other runtime errors generally considered as software bugs which may or may not be caught and handled by any particular computer language.

S

search algorithm
Any algorithm which solves the search problem, namely, to retrieve information stored within some data structure, or calculated in the search space of a problem domain, either with discrete or continuous values.
secondary storage
Also known as external memory or auxiliary storage, differs from primary storage in that it is not directly accessible by the CPU. The computer usually uses its input/output channels to access secondary storage and transfer the desired data to primary storage. Secondary storage is non-volatile (retaining data when power is shut off). Modern computer systems typically have two orders of magnitude more secondary storage than primary storage because secondary storage is less expensive.
selection sort
Is an in-place comparison sorting algorithm. It has an O(n2) time complexity, which makes it inefficient on large lists, and generally performs worse than the similar insertion sort. Selection sort is noted for its simplicity and has performance advantages over more complicated algorithms in certain situations, particularly where auxiliary memory is limited.
semantics
In programming language theory, semantics is the field concerned with the rigorous mathematical study of the meaning of programming languages. It does so by evaluating the meaning of syntactically valid strings defined by a specific programming language, showing the computation involved. In such a case that the evaluation would be of syntactically invalid strings, the result would be non-computation. Semantics describes the processes a computer follows when executing a program in that specific language. This can be shown by describing the relationship between the input and output of a program, or an explanation of how the program will be executed on a certain platform, hence creating a model of computation.
sequence
In mathematics, a sequence is an enumerated collection of objects in which repetitions are allowed and order does matter. Like a set, it contains members (also called elements, or terms). The number of elements (possibly infinite) is called the length of the sequence. Unlike a set, the same elements can appear multiple times at different positions in a sequence, and order does matter. Formally, a sequence can be defined as a function whose domain is either the set of the natural numbers (for infinite sequences) or the set of the first n natural numbers (for a sequence of finite length n). The position of an element in a sequence is its rank or index; it is the natural number for which the element is the image. The first element has index 0 or 1, depending on the context or a specific convention. When a symbol is used to denote a sequence, the nth element of the sequence is denoted by this symbol with n as subscript; for example, the nth element of the Fibonacci sequence F is generally denoted Fn. For example, (M, A, R, Y) is a sequence of letters with the letter 'M' first and 'Y' last. This sequence differs from (A, R, M, Y). Also, the sequence (1, 1, 2, 3, 5, 8), which contains the number 1 at two different positions, is a valid sequence. Sequences can be finite, as in these examples, or infinite, such as the sequence of all even positive integers (2, 4, 6, ...). In computing and computer science, finite sequences are sometimes called strings, words or lists, the different names commonly corresponding to different ways to represent them in computer memory; infinite sequences are called streams. The empty sequence ( ) is included in most notions of sequence, but may be excluded depending on the context.
serializability
In concurrency control of databases,[194][195] transaction processing (transaction management), and various transactional applications (e.g., transactional memory[196] and software transactional memory), both centralized and distributed, a transaction schedule is serializable if its outcome (e.g., the resulting database state) is equal to the outcome of its transactions executed serially, i.e. without overlapping in time. Transactions are normally executed concurrently (they overlap), since this is the most efficient way. Serializability is the major correctness criterion for concurrent transactions' executions[citation needed]. It is considered the highest level of isolation between transactions, and plays an essential role in concurrency control. As such it is supported in all general purpose database systems. Strong strict two-phase locking (SS2PL) is a popular serializability mechanism utilized in most of the database systems (in various variants) since their early days in the 1970s.
serialization
Is the process of translating data structures or object state into a format that can be stored (for example, in a file or memory buffer) or transmitted (for example, across a network connection link) and reconstructed later (possibly in a different computer environment).[197] When the resulting series of bits is reread according to the serialization format, it can be used to create a semantically identical clone of the original object. For many complex objects, such as those that make extensive use of references, this process is not straightforward. Serialization of object-oriented objects does not include any of their associated methods with which they were previously linked. This process of serializing an object is also called marshalling an object in some situations.[2][3] The opposite operation, extracting a data structure from a series of bytes, is deserialization, (also called unserialization or unmarshalling).
service level agreement
(SLA), is a commitment between a service provider and a client. Particular aspects of the service – quality, availability, responsibilities – are agreed between the service provider and the service user.[198] The most common component of an SLA is that the services should be provided to the customer as agreed upon in the contract. As an example, Internet service providers and telcos will commonly include service level agreements within the terms of their contracts with customers to define the level(s) of service being sold in plain language terms. In this case the SLA will typically have a technical definition in mean time between failures (MTBF), mean time to repair or mean time to recovery (MTTR); identifying which party is responsible for reporting faults or paying fees; responsibility for various data rates; throughput; jitter; or similar measurable details.
set
Is an abstract data type that can store unique values, without any particular order. It is a computer implementation of the mathematical concept of a finite set. Unlike most other collection types, rather than retrieving a specific element from a set, one typically tests a value for membership in a set.
singleton variable
A variable that is referenced only once. May be used as a dummy argument in a function call, or when its address is assigned to another variable which subsequently accesses its allocated storage. Singleton variables sometimes occur because a mistake has been made – such as assigning a value to a variable and forgetting to use it later, or mistyping one instance of the variable name. Some compilers and lint-like tools flag occurrences of singleton variables.
soft computing
software
Computer software, or simply software, is a collection of data or computer instructions that tell the computer how to work. This is in contrast to physical hardware, from which the system is built and actually performs the work. In computer science and software engineering, computer software is all information processed by computer systems, programs and data. Computer software includes computer programs, libraries and related non-executable data, such as online documentation or digital media. Computer hardware and software require each other and neither can be realistically used on its own.
software agent
Is a computer program that acts for a user or other program in a relationship of agency, which derives from the Latin agere (to do): an agreement to act on one's behalf. Such "action on behalf of" implies the authority to decide which, if any, action is appropriate.[199][200] Agents are colloquially known as bots, from robot. They may be embodied, as when execution is paired with a robot body, or as software such as a chatbot executing on a phone (e.g. Siri) or other computing device. Software agents may be autonomous or work together with other agents or people. Software agents interacting with people (e.g. chatbots, human-robot interaction environments) may possess human-like qualities such as natural language understanding and speech, personality or embody humanoid form (see Asimo).
software construction
Is a software engineering discipline. It is the detailed creation of working meaningful software through a combination of coding, verification, unit testing, integration testing, and debugging. It is linked to all the other software engineering disciplines, most strongly to software design and software testing.[201]
software deployment
Is all of the activities that make a software system available for use.[202]
software design
Is the process by which an agent creates a specification of a software artifact, intended to accomplish goals, using a set of primitive components and subject to constraints.[203] Software design may refer to either "all the activity involved in conceptualizing, framing, implementing, commissioning, and ultimately modifying complex systems" or "the activity following requirements specification and before programming, as ... [in] a stylized software engineering process."[204]
software development
Is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development is a process of writing and maintaining the source code, but in a broader sense, it includes all that is involved between the conception of the desired software through to the final manifestation of the software, sometimes in a planned and structured process.[205] Therefore, software development may include research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities that result in software products.[206]
software development process
In software engineering, a software development process is the process of dividing software development work into distinct phases to improve design, product management, and project management. It is also known as a software development life cycle (SDLC). The methodology may include the pre-definition of specific deliverables and artifacts that are created and completed by a project team to develop or maintain an application.[150] Most modern development processes can be vaguely described as agile. Other methodologies include waterfall, prototyping, iterative and incremental development, spiral development, rapid application development, and extreme programming.
software engineering
Is the systematic application of engineering approaches to the development of software.[207][208][209] Software engineering is a computing discipline.[210]
software maintenance
In software engineering is the modification of a software product after delivery to correct faults, to improve performance or other attributes.[211]
software prototyping
Is the activity of creating prototypes of software applications, i.e., incomplete versions of the software program being developed. It is an activity that can occur in software development and is comparable to prototyping as known from other fields, such as mechanical engineering or manufacturing. A prototype typically simulates only a few aspects of, and may be completely different from, the final product.
software requirements specification
(SRS), is a description of a software system to be developed. The software requirements specification lays out functional and non-functional requirements, and it may include a set of use cases that describe user interactions that the software must provide to the user for perfect interaction.
software testing
Is an investigation conducted to provide stakeholders with information about the quality of the software product or service under test.[212] Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include the process of executing a program or application with the intent of finding software bugs (errors or other defects), and verifying that the software product is fit for use.
sorting algorithm
Is an algorithm that puts elements of a list in a certain order. The most frequently used orders are numerical order and lexicographical order. Efficient sorting is important for optimizing the efficiency of other algorithms (such as search and merge algorithms) that require input data to be in sorted lists. Sorting is also often useful for canonicalizing data and for producing human-readable output. More formally, the output of any sorting algorithm must satisfy two conditions:
  1. The output is in nondecreasing order (each element is no smaller than the previous element according to the desired total order);
  2. The output is a permutation (a reordering, yet retaining all of the original elements) of the input.
Further, the input data is often stored in an array, which allows random access, rather than a list, which only allows sequential access; though many algorithms can be applied to either type of data after suitable modification.
source code
In computing, source code is any collection of code, with or without comments, written using[213] a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source code. The source code is often transformed by an assembler or compiler into binary machine code that can be executed by the computer. The machine code might then be stored for execution at a later time. Alternatively, source code may be interpreted and thus immediately executed.
spiral model
Is a risk-driven software development process model. Based on the unique risk patterns of a given project, the spiral model guides a team to adopt elements of one or more process models, such as incremental, waterfall, or evolutionary prototyping.
stack
Is an abstract data type that serves as a collection of elements, with two main principal operations:
  • push, which adds an element to the collection, and
  • pop, which removes the most recently added element that was not yet removed.
The order in which elements come off a stack gives rise to its alternative name, LIFO (last in, first out). Additionally, a peek operation may give access to the top without modifying the stack.[214] The name "stack" for this type of structure comes from the analogy to a set of physical items stacked on top of each other. This structure makes it easy to take an item off the top of the stack, while getting to an item deeper in the stack may require taking off multiple other items first.[215]
state
In information technology and computer science, a system is described as stateful if it is designed to remember preceding events or user interactions;[216] the remembered information is called the state of the system.
statement
In computer programming, a statement is a syntactic unit of an imperative programming language that expresses some action to be carried out.[217] A program written in such a language is formed by a sequence of one or more statements. A statement may have internal components (e.g., expressions).
storage
Computer data storage is a technology consisting of computer components and recording media that are used to retain digital data. It is a core function and fundamental component of computers.[146]: 15–16 
stream
Is a sequence of data elements made available over time. A stream can be thought of as items on a conveyor belt being processed one at a time rather than in large batches.
string
In computer programming, a string is traditionally a sequence of characters, either as a literal constant or as some kind of variable. The latter may allow its elements to be mutated and the length changed, or it may be fixed (after creation). A string is generally considered as a data type and is often implemented as an array data structure of bytes (or words) that stores a sequence of elements, typically characters, using some character encoding. String may also denote more general arrays or other sequence (or list) data types and structures.
structured storage
A NoSQL (originally referring to "non-SQL" or "non-relational")[218] database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. Such databases have existed since the late 1960s, but the name "NoSQL" was only coined in the early 21st century,[219] triggered by the needs of Web 2.0 companies.[220][221] NoSQL databases are increasingly used in big data and real-time web applications.[222] NoSQL systems are also sometimes called "Not only SQL" to emphasize that they may support SQL-like query languages or sit alongside SQL databases in polyglot-persistent architectures.[223][224]
subroutine
In computer programming, a subroutine is a sequence of program instructions that performs a specific task, packaged as a unit. This unit can then be used in programs wherever that particular task should be performed. Subroutines may be defined within programs, or separately in libraries that can be used by many programs. In different programming languages, a subroutine may be called a routine, subprogram, function, method, or procedure. Technically, these terms all have different definitions. The generic, umbrella term callable unit is sometimes used.[165]
symbolic computation
In mathematics and computer science,[225] computer algebra, also called symbolic computation or algebraic computation, is a scientific area that refers to the study and development of algorithms and software for manipulating mathematical expressions and other mathematical objects. Although computer algebra could be considered a subfield of scientific computing, they are generally considered as distinct fields because scientific computing is usually based on numerical computation with approximate floating point numbers, while symbolic computation emphasizes exact computation with expressions containing variables that have no given value and are manipulated as symbols.
syntax
The syntax of a computer language is the set of rules that defines the combinations of symbols that are considered to be correctly structured statements or expressions in that language. This applies both to programming languages, where the document represents source code, and to markup languages, where the document represents data.
syntax error
Is an error in the syntax of a sequence of characters or tokens that is intended to be written in compile-time. A program will not compile until all syntax errors are corrected. For interpreted languages, however, a syntax error may be detected during program execution, and an interpreter's error messages might not differentiate syntax errors from errors of other kinds. There is some disagreement as to just what errors are "syntax errors". For example, some would say that the use of an uninitialized variable's value in Java code is a syntax error, but many others would disagree[226][227] and would classify this as a (static) semantic error.
system console
The system console, computer console, root console, operator's console, or simply console is the text entry and display device for system administration messages, particularly those from the BIOS or boot loader, the kernel, from the init system and from the system logger. It is a physical device consisting of a keyboard and a screen, and traditionally is a text terminal, but may also be a graphical terminal. System consoles are generalized to computer terminals, which are abstracted respectively by virtual consoles and terminal emulators. Today communication with system consoles is generally done abstractly, via the standard streams (stdin, stdout, and stderr), but there may be system-specific interfaces, for example those used by the system kernel.

T

technical documentation
In engineering, any type of documentation that describes handling, functionality, and architecture of a technical product or a product under development or use.[228][229][230] The intended recipient for product technical documentation is both the (proficient) end user as well as the administrator/service or maintenance technician. In contrast to a mere "cookbook" manual, technical documentation aims at providing enough information for a user to understand inner and outer dependencies of the product at hand.
third-generation programming language
A third-generation programming language (3GL) is a high-level computer programming language that tends to be more machine-independent and programmer-friendly than the machine code of the first-generation and assembly languages of the second-generation, while having a less specific focus to the fourth and fifth generations.[231] Examples of common and historical third-generation programming languages are ALGOL, BASIC, C, COBOL, Fortran, Java, and Pascal.
top-down and bottom-up design
tree
A widely used abstract data type (ADT) that simulates a hierarchical tree structure, with a root value and subtrees of children with a parent node, represented as a set of linked nodes.
type theory
In mathematics, logic, and computer science, a type theory is any of a class of formal systems, some of which can serve as alternatives to set theory as a foundation for all mathematics. In type theory, every "term" has a "type" and operations are restricted to terms of a certain type.

U

upload
In computer networks, to send data to a remote system such as a server or another client so that the remote system can store a copy.[232] Contrast download.
Uniform Resource Locator (URL)

Colloquially web address.[233]

A reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifier (URI),[234][235] although many people use the two terms interchangeably.[236][c] URLs occur most commonly to reference web pages (http), but are also used for file transfer (ftp), email (mailto), database access (JDBC), and many other applications.
user
Is a person who utilizes a computer or network service. Users of computer systems and software products generally lack the technical expertise required to fully understand how they work.[239] Power users use advanced features of programs, though they are not necessarily capable of computer programming and system administration.
user agent
Software (a software agent) that acts on behalf of a user, such as a web browser that "retrieves, renders and facilitates end user interaction with Web content".[240] An email reader is a mail user agent.
user interface (UI)
The space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine from the human end, whilst the machine simultaneously feeds back information that aids the operators' decision-making process. Examples of this broad concept of user interfaces include the interactive aspects of computer operating systems, hand tools, heavy machinery operator controls, and process controls. The design considerations applicable when creating user interfaces are related to or involve such disciplines as ergonomics and psychology.
user interface design

Also user interface engineering.

The design of user interfaces for machines and software, such as computers, home appliances, mobile devices, and other electronic devices, with the focus on maximizing usability and the user experience. The goal of user interface design is to make the user's interaction as simple and efficient as possible, in terms of accomplishing user goals (user-centered design).

V

variable
In computer programming, a variable, or scalar, is a storage location (identified by a memory address) paired with an associated symbolic name (an identifier), which contains some known or unknown quantity of information referred to as a value. The variable name is the usual way to reference the stored value, in addition to referring to the variable itself, depending on the context. This separation of name and content allows the name to be used independently of the exact information it represents. The identifier in computer source code can be bound to a value during run time, and the value of the variable may therefore change during the course of program execution.[241][242]
virtual machine (VM)
An emulation of a computer system. Virtual machines are based on computer architectures and attempt to provide the same functionality as a physical computer. Their implementations may involve specialized hardware, software, or a combination of both.
V-Model
A software development process that may be considered an extension of the waterfall model, and is an example of the more general V-model. Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V shape. The V-Model demonstrates the relationships between each phase of the development life cycle and its associated phase of testing. The horizontal and vertical axes represent time or project completeness (left-to-right) and level of abstraction (coarsest-grain abstraction uppermost), respectively.[243]

W

waterfall model
A breakdown of project activities into linear sequential phases, where each phase depends on the deliverables of the previous one and corresponds to a specialisation of tasks. The approach is typical for certain areas of engineering design. In software development, it tends to be among the less iterative and flexible approaches, as progress flows in largely one direction ("downwards" like a waterfall) through the phases of conception, initiation, analysis, design, construction, testing, deployment and maintenance.
Waveform Audio File Format

Also WAVE or WAV due to its filename extension.

An audio file format standard, developed by Microsoft and IBM, for storing an audio bitstream on PCs. It is an application of the Resource Interchange File Format (RIFF) bitstream format method for storing data in "chunks", and thus is also close to the 8SVX and the AIFF format used on Amiga and Macintosh computers, respectively. It is the main format used on Microsoft Windows systems for raw and typically uncompressed audio. The usual bitstream encoding is the linear pulse-code modulation (LPCM) format.
web crawler

Also spider, spiderbot, or simply crawler.

An Internet bot that systematically browses the World Wide Web, typically for the purpose of Web indexing (web spidering).
Wi-Fi
A family of wireless networking technologies, based on the IEEE 802.11 family of standards, which are commonly used for local area networking of devices and Internet access. Wi‑Fi is a trademark of the non-profit Wi-Fi Alliance, which restricts the use of the term Wi-Fi Certified to products that successfully complete interoperability certification testing.[244][245][246]

X

XHTML

Abbreviaton of eXtensible HyperText Markup Language.

Part of the family of XML markup languages. It mirrors or extends versions of the widely used HyperText Markup Language (HTML), the language in which web pages are formulated.

See also

References

  1. ^ "Abstract Methods and Classes". oracle.com. Oracle Java Documentation. Retrieved 11 December 2014.
  2. ^ Colburn, Timothy; Shute, Gary (2007-06-05). "Abstraction in Computer Science". Minds and Machines. 17 (2): 169–184. doi:10.1007/s11023-007-9061-7. ISSN 0924-6495. S2CID 5927969.
  3. ^ a b Kramer, Jeff (2007-04-01). "Is abstraction the key to computing?". Communications of the ACM. 50 (4): 36–42. CiteSeerX 10.1.1.120.6776. doi:10.1145/1232743.1232745. ISSN 0001-0782. S2CID 12481509.
  4. ^ Comparison of Agent Architectures Archived August 27, 2008, at the Wayback Machine
  5. ^ Collier, Ken W. (2011). Agile Analytics: A Value-Driven Approach to Business Intelligence and Data Warehousing. Pearson Education. pp. 121 ff. ISBN 9780321669544. What is a self-organizing team?
  6. ^ "What is Agile Software Development?". Agile Alliance. 8 June 2013. Retrieved 4 April 2015.
  7. ^ Goodrich, Michael T.; Tamassia, Roberto (2002), Algorithm Design: Foundations, Analysis, and Internet Examples, John Wiley & Sons, Inc., ISBN 978-0-471-38365-9
  8. ^ "Application software". PC Magazine. Ziff Davis.
  9. ^ Black, Paul E. (13 November 2008). "array". Dictionary of Algorithms and Data Structures. National Institute of Standards and Technology. Retrieved 22 August 2010.
  10. ^ Bjoern Andres; Ullrich Koethe; Thorben Kroeger; Hamprecht (2010). "Runtime-Flexible Multi-dimensional Arrays and Views for C++98 and C++0x". arXiv:1008.2909 [cs.DS].
  11. ^ Garcia, Ronald; Lumsdaine, Andrew (2005). "MultiArray: a C++ library for generic programming with arrays". Software: Practice and Experience. 35 (2): 159–188. doi:10.1002/spe.630. ISSN 0038-0644. S2CID 10890293.
  12. ^ Definition of AI as the study of intelligent agents:
    • Poole, Mackworth & Goebel 1998, p. 1, which provides the version that is used in this article. Note that they use the term "computational intelligence" as a synonym for artificial intelligence.
    • Russell & Norvig (2003) (who prefer the term "rational agent") and write "The whole-agent view is now widely accepted in the field" (Russell & Norvig 2003, p. 55).
    • Nilsson 1998
    • Legg & Hutter 2007.
  13. ^ Russell & Norvig 2009, p. 2.
  14. ^ Goodrich, Michael T.; Tamassia, Roberto (2006), "9.1 The Map Abstract Data Type", Data Structures & Algorithms in Java (4th ed.), Wiley, pp. 368–371
  15. ^ Mehlhorn, Kurt; Sanders, Peter (2008), "4 Hash Tables and Associative Arrays", Algorithms and Data Structures: The Basic Toolbox (PDF), Springer, pp. 81–98
  16. ^ Douglas Comer, Computer Networks and Internets, page 99 ff, Prentice Hall 2008.
  17. ^ Fred Halsall, to data+communications and computer networks, page 108, Addison-Wesley, 1985.
  18. ^ Cisco Networking Academy Program: CCNA 1 and 2 companion guide, Volym 1–2, Cisco Academy 2003
  19. ^ Behrouz A. Forouzan, Data communications and networking, McGraw-Hill, 2007
  20. ^ Fleming, Philip J.; Wallace, John J. (1986-03-01). "How not to lie with statistics: the correct way to summarize benchmark results". Communications of the ACM. 29 (3): 218–221. doi:10.1145/5666.5673. ISSN 0001-0782. S2CID 1047380.
  21. ^ Breur, Tom (July 2016). "Statistical Power Analysis and the contemporary "crisis" in social sciences". Journal of Marketing Analytics. 4 (2–3): 61–65. doi:10.1057/s41270-016-0001-3. ISSN 2050-3318.
  22. ^ Bachmann, Paul (1894). Analytische Zahlentheorie [Analytic Number Theory] (in German). Vol. 2. Leipzig: Teubner.
  23. ^ Landau, Edmund (1909). Handbuch der Lehre von der Verteilung der Primzahlen [Handbook on the theory of the distribution of the primes] (in German). Leipzig: B. G. Teubner. p. 883.
  24. ^ Williams, Jr., Louis F. (22 April 1976). A modification to the half-interval search (binary search) method. Proceedings of the 14th ACM Southeast Conference. ACM. pp. 95–101. doi:10.1145/503561.503582. Archived from the original on 12 March 2017. Retrieved 29 June 2018.
  25. ^ Knuth 1998, §6.2.1 ("Searching an ordered table"), subsection "Binary search".
  26. ^ Butterfield & Ngondi 2016, p. 46.
  27. ^ Cormen et al. 2009, p. 39.
  28. ^ Weisstein, Eric W. "Binary search". MathWorld.
  29. ^ Rowan Garnier; John Taylor (2009). Discrete Mathematics: Proofs, Structures and Applications, Third Edition. CRC Press. p. 620. ISBN 978-1-4398-1280-8.
  30. ^ Steven S Skiena (2009). The Algorithm Design Manual. Springer Science & Business Media. p. 77. ISBN 978-1-84800-070-4.
  31. ^ Mackenzie, Charles E. (1980). Coded Character Sets, History and Development. The Systems Programming Series (1 ed.). Addison-Wesley Publishing Company, Inc. p. x. ISBN 978-0-201-14460-4. LCCN 77-90165. Archived from the original on 18 November 2016. Retrieved 22 May 2016. [1]
  32. ^ Gupta, Prakash C (2006). Data Communications and Computer Networks. PHI Learning. ISBN 9788120328464. Retrieved 10 July 2011.
  33. ^ James D. Murray; William vanRyper (April 1996). Encyclopedia of Graphics File Formats (Second ed.). O'Reilly. bmp. ISBN 978-1-56592-161-0. Retrieved 2014-03-07.
  34. ^ James D. Murray; William vanRyper (April 1996). Encyclopedia of Graphics File Formats (Second ed.). O'Reilly. os2bmp. ISBN 978-1-56592-161-0. Retrieved 2014-03-07.
  35. ^ Gries, David; Schneider, Fred B. (1993), "Chapter 2. Boolean Expressions", A Logical Approach to Discrete Math, Monographs in Computer Science, Springer, p. 25ff, ISBN 9780387941158
  36. ^ Blaauw, Gerrit Anne; Brooks, Jr., Frederick Phillips; Buchholz, Werner (1962), "4: Natural Data Units" (PDF), in Buchholz, Werner (ed.), Planning a Computer System – Project Stretch, McGraw-Hill Book Company, Inc. / The Maple Press Company, York, PA., pp. 39–40, LCCN 61-10466, archived (PDF) from the original on 2017-04-03, retrieved 2017-04-03, […] Terms used here to describe the structure imposed by the machine design, in addition to bit, are listed below.
    Byte denotes a group of bits used to encode a character, or the number of bits transmitted in parallel to and from input-output units. A term other than character is used here because a given character may be represented in different applications by more than one code, and different codes may use different numbers of bits (i.e., different byte sizes). In input-output transmission the grouping of bits may be completely arbitrary and have no relation to actual characters. (The term is coined from bite, but respelled to avoid accidental mutation to bit.)
    A word consists of the number of data bits transmitted in parallel from or to memory in one memory cycle. Word size is thus defined as a structural property of the memory. (The term catena was coined for this purpose by the designers of the Bull GAMMA 60 [fr] computer.)
    Block refers to the number of words transmitted to or from an input-output unit in response to a single input-output instruction. Block size is a structural property of an input-output unit; it may have been fixed by the design or left to be varied by the program. […]
  37. ^ Bemer, Robert William (1959), "A proposal for a generalized card code of 256 characters", Communications of the ACM, 2 (9): 19–23, doi:10.1145/368424.368435, S2CID 36115735
  38. ^ "What is a callback function?". Stack Overflow. Retrieved 2018-05-16.
  39. ^ Weik, Martin H. (1961). "A Third Survey of Domestic Electronic Digital Computing Systems". Ballistic Research Laboratory. {{cite journal}}: Cite journal requires |journal= (help)
  40. ^ Kuck, David (1978). Computers and Computations, Vol 1. John Wiley & Sons, Inc. p. 12. ISBN 978-0471027164.
  41. ^ "Definition of CHARACTER". www.merriam-webster.com. Retrieved 1 April 2018.
  42. ^ Gamma et al. 1995, p. 14.
  43. ^ a b Bruce 2002, 2.1 Objects, classes, and object types, https://books.google.com/books?id=9NGWq3K1RwUC&pg=PA18.
  44. ^ Sadoski, Darleen. Client/Server Software Architectures – An Overview, Software Technology Roadmap, 1997-08-02. Retrieved on 2008-09-16.
  45. ^ Mills, H.; M. Dyer; R. Linger (September 1987). "Cleanroom Software Engineering". IEEE Software. 4 (5): 19–25. CiteSeerX 10.1.1.467.2435. doi:10.1109/MS.1987.231413. S2CID 383170.
  46. ^ Sussman and Steele. "Scheme: An interpreter for extended lambda calculus". "... a data structure containing a lambda expression, and an environment to be used when that lambda expression is applied to arguments." (Wikisource)
  47. ^ a b Shaun Bebbington (2014). "What is coding". Retrieved 2014-03-03.
  48. ^ a b Shaun Bebbington (2014). "What is programming". Retrieved 2014-03-03.
  49. ^ Cognitive science is an interdisciplinary field of researchers from Linguistics, psychology, neuroscience, philosophy, computer science, and anthropology that seek to understand the mind. How We Learn: Ask the Cognitive Scientist
  50. ^ Thagard, Paul, Cognitive Science, The Stanford Encyclopedia of Philosophy (Fall 2008 Edition), Edward N. Zalta (ed.).
  51. ^ PC Mag Staff (28 February 2017). "Encyclopedia: Definition of Compiler". PCMag.com. Retrieved 28 February 2017.
  52. ^ Computation from the Free Merriam-Webster Dictionary
  53. ^ "Computation: Definition and Synonyms from Answers.com". Answers.com. Archived from the original on 22 February 2009. Retrieved 26 April 2017.
  54. ^ "NIH working definition of bioinformatics and computational biology" (PDF). Biomedical Information Science and Technology Initiative. 17 July 2000. Archived from the original (PDF) on 5 September 2012. Retrieved 18 August 2012.
  55. ^ "About the CCMB". Center for Computational Molecular Biology. Retrieved 18 August 2012.
  56. ^ Melnik, Roderick, ed. (2015). Mathematical and Computational Modeling: With Applications in Natural and Social Sciences, Engineering, and the Arts. Wiley. ISBN 978-1-118-85398-6.
  57. ^ Trappenberg, Thomas P. (2002). Fundamentals of Computational Neuroscience. United States: Oxford University Press Inc. p. 1. ISBN 978-0-19-851582-1.
  58. ^ What is computational neuroscience? Patricia S. Churchland, Christof Koch, Terrence J. Sejnowski. in Computational Neuroscience pp.46-55. Edited by Eric L. Schwartz. 1993. MIT Press "Archived copy". Archived from the original on 2011-06-04. Retrieved 2009-06-11.{{cite web}}: CS1 maint: archived copy as title (link)
  59. ^ Press, The MIT. "Theoretical Neuroscience". The MIT Press. Archived from the original on 2018-05-31. Retrieved 2018-05-24.
  60. ^ Gerstner, W.; Kistler, W.; Naud, R.; Paninski, L. (2014). Neuronal Dynamics. Cambridge, UK: Cambridge University Press. ISBN 9781107447615.
  61. ^ Thijssen, Jos (2007). Computational Physics. Cambridge University Press. ISBN 978-0521833462.
  62. ^ Clements, Alan. Principles of Computer Hardware (Fourth ed.). p. 1. Architecture describes the internal organization of a computer in an abstract way; that is, it defines the capabilities of the computer and its programming model. You can have two computers that have been constructed in different ways with different technologies but with the same architecture.
  63. ^ Hennessy, John; Patterson, David. Computer Architecture: A Quantitative Approach (Fifth ed.). p. 11. This task has many aspects, including instruction set design, functional organization, logic design, and implementation.
  64. ^ name="Patterson">Patterson, David A.; Hennessy, John L. (2005). Computer Organization and Design: The Hardware/Software Interface (3rd ed.). Amsterdam: Morgan Kaufmann Publishers. ISBN 978-1-55860-604-3. OCLC 56213091.
  65. ^ Bynum, Terrell Ward. "A Very Short History of Computer Ethics". Southern Connecticut Wein University. Archived from the original on 2008-04-18. Retrieved 2011-01-05.
  66. ^ Rochkind, Marc J. (2004). Advanced Unix Programming, Second Edition. Addison-Wesley. p. 1.1.2.
  67. ^ "WordNet Search—3.1". Wordnetweb.princeton.edu. Retrieved 14 May 2012.
  68. ^ Orsucci, Franco F.; Sala, Nicoletta (2008). Reflexing Interfaces: The Complex Coevolution of Information Technology Ecosystems, Information Science Reference. p. 335.
  69. ^ Schatz, Daniel; Bashroush, Rabih; Wall, Julie (2017). "Towards a More Representative Definition of Cyber Security". Journal of Digital Forensics, Security and Law. 12 (2). ISSN 1558-7215.
  70. ^ Dana H. Ballard; Christopher M. Brown (1982). Computer Vision. Prentice Hall. ISBN 0-13-165316-4.
  71. ^ Huang, T. (1996-11-19). Vandoni, Carlo, E, ed. Computer Vision : Evolution And Promise (PDF). 19th CERN School of Computing. Geneva: CERN. pp. 21–25. doi:10.5170/CERN-1996-008.21. ISBN 978-9290830955.
  72. ^ Milan Sonka; Vaclav Hlavac; Roger Boyle (2008). Image Processing, Analysis, and Machine Vision. Thomson. ISBN 0-495-08252-X.
  73. ^ "Computing Curriculum 2020" (PDF).
  74. ^ Lamport, Leslie (July 1978). "Time, Clocks, and the Ordering of Events in a Distributed System" (PDF). Communications of the ACM. 21 (7): 558–565. CiteSeerX 10.1.1.142.3682. doi:10.1145/359545.359563. S2CID 215822405. Retrieved 4 February 2016.
  75. ^ Paul E. Black (ed.), entry for data structure in Dictionary of Algorithms and Data Structures. US National Institute of Standards and Technology.15 December 2004. Accessed 4 Oct 2011.
  76. ^ Entry data structure in the Encyclopædia Britannica (2009) Online entry Accessed 4 Oct 2011.
  77. ^ Sussman, Gerald Jay; Steele, Guy L., Jr. (December 1975). "Scheme: An interpreter for extended lambda calculus" . AI Memo. 349: 19. That is, in this continuation-passing programming style, a function always "returns" its result by "sending" it to another function. This is the key idea.
  78. ^ Sussman, Gerald Jay; Steele, Guy L., Jr. (December 1998). "Scheme: A Interpreter for Extended Lambda Calculus" (reprint). Higher-Order and Symbolic Computation. 11 (4): 405–439. doi:10.1023/A:1010035624696. S2CID 18040106. We believe that this was the first occurrence of the term "continuation-passing style" in the literature. It has turned out to be an important concept in source code analysis and transformation for compilers and other metaprogramming tools. It has also inspired a set of other "styles" of program expression.
  79. ^ "Frequently Asked Questions". Creative Commons. 4 August 2016. Retrieved 20 December 2011.
  80. ^ Rivest, Ronald L. (1990). "Cryptography". In J. Van Leeuwen (ed.). Handbook of Theoretical Computer Science. Vol. 1. Elsevier.
  81. ^ Bellare, Mihir; Rogaway, Phillip (21 September 2005). "Introduction". Introduction to Modern Cryptography. p. 10.
  82. ^ Menezes, A.J.; van Oorschot, P.C.; Vanstone, S.A. (1997). Handbook of Applied Cryptography. ISBN 978-0-8493-8523-0.
  83. ^ Eric S. Raymond. "daemon". The Jargon File. Retrieved 2008-10-22.
  84. ^ James Glanz (September 22, 2012). "Power, Pollution and the Internet". The New York Times. Retrieved 2012-09-25.
  85. ^ a b c "Data Mining Curriculum". ACM SIGKDD. 2006-04-30. Retrieved 2014-01-27.
  86. ^ Clifton, Christopher (2010). "Encyclopædia Britannica: Definition of Data Mining". Retrieved 2010-12-09.
  87. ^ Hastie, Trevor; Tibshirani, Robert; Friedman, Jerome (2009). "The Elements of Statistical Learning: Data Mining, Inference, and Prediction". Archived from the original on 2009-11-10. Retrieved 2012-08-07.
  88. ^ Han, Kamber, Pei, Jaiwei, Micheline, Jian (2011). Data Mining: Concepts and Techniques (3rd ed.). Morgan Kaufmann. ISBN 978-0-12-381479-1.{{cite book}}: CS1 maint: multiple names: authors list (link)
  89. ^ Fayyad, Usama; Piatetsky-Shapiro, Gregory; Smyth, Padhraic (1996). "From Data Mining to Knowledge Discovery in Databases" (PDF). Retrieved 17 December 2008.
  90. ^ Dhar, V. (2013). "Data science and prediction". Communications of the ACM. 56 (12): 64–73. doi:10.1145/2500499. S2CID 6107147.
  91. ^ Jeff Leek (2013-12-12). "The key word in "Data Science" is not Data, it is Science". Simply Statistics.
  92. ^ Hayashi, Chikio (1998-01-01). "What is Data Science? Fundamental Concepts and a Heuristic Example". In Hayashi, Chikio; Yajima, Keiji; Bock, Hans-Hermann; Ohsumi, Noboru; Tanaka, Yutaka; Baba, Yasumasa (eds.). Data Science, Classification, and Related Methods. Studies in Classification, Data Analysis, and Knowledge Organization. Springer Japan. pp. 40–51. doi:10.1007/978-4-431-65950-1_3. ISBN 9784431702085.
  93. ^ Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2009). Introduction to Algorithms, Third Edition (3rd ed.). The MIT Press. ISBN 978-0262033848.
  94. ^ Black, Paul E. (15 December 2004). "data structure". In Pieterse, Vreda; Black, Paul E. (eds.). Dictionary of Algorithms and Data Structures [online]. National Institute of Standards and Technology. Retrieved 2018-11-06.
  95. ^ "Data structure". Encyclopaedia Britannica. 17 April 2017. Retrieved 2018-11-06.
  96. ^ Wegner, Peter; Reilly, Edwin D. (2003-08-29). Encyclopedia of Computer Science. Chichester, UK: John Wiley and Sons. pp. 507–512. ISBN 978-0470864128.
  97. ^ type at the Free On-line Dictionary of Computing
  98. ^ Shaffer, C. A. (2011). Data Structures & Algorithm Analysis in C++ (3rd ed.). Mineola, NY: Dover. 1.2. ISBN 978-0-486-48582-9.
  99. ^ a b c "A declaration specifies the interpretation and attributes of a set of identifiers. A definition of an identifier is a declaration for that identifier that:
    • for an object [variable or constant], causes storage to be reserved for that object;
    • for a function, includes the function body;
    • for an enumeration constant, is the (only) declaration of the identifier;
    • for a typedef name, is the first (or only) declaration of the identifier."
    C11 specification, 6.7: Declarations, paragraph 5.
  100. ^ Mike Banahan. "2.5. Declaration of variables". GBdirect. Retrieved 2011-06-08. [A] declaration [...] introduces just the name and type of something but allocates no storage[...].
  101. ^ Stewart Robinson (2004). Simulation – The practice of model development and use. Wiley.
  102. ^ a b Coulouris, George; Jean Dollimore; Tim Kindberg; Gordon Blair (2011). Distributed Systems: Concepts and Design (5th ed.). Boston: Addison-Wesley. ISBN 978-0-132-14301-1.
  103. ^ Bjørner, Dines (2006). "The Tryptych of Software Engineering". Software Engineering 3 – Domains, Requirements, and Software Design (book). Vol. I. Springer Verlag. p. 9. ISBN 978-3-540-33653-2. Retrieved 2016-12-19.
  104. ^ "What is downloading? - Definition from WhatIs.com". SearchNetworkNexting. Archived from the original on 2019-09-05. Retrieved 2019-03-04.
  105. ^ a b Kessler, Gary (November 17, 2006). "An Overview of Cryptography". Princeton University.
  106. ^ Vivek Gupta; Ethan Jackson; Shaz Qadeer; Sriram Rajamani (November 2012). "P: Safe Asynchronous Event-Driven Programming". Microsoft. Retrieved 20 February 2017.
  107. ^ "executable". Merriam-Webster's Online Dictionary. Merriam-Webster. Retrieved 2008-07-19.
  108. ^ Justis, R. T. & Kreigsmann, B. (1979). The feasibility study as a tool for venture analysis. Business Journal of Small Business Management 17 (1) 35-42.
  109. ^ Georgakellos, D. A. & Marcis, A. M. (2009). Application of the semantic learning approach in the feasibility studies preparation training process. Information Systems Management 26 (3) 231–240.
  110. ^ Young, G. I. M. (1970). Feasibility studies. Appraisal Journal 38 (3) 376-383.
  111. ^ R. W. Butler (2001-08-06). "What is Formal Methods?". Retrieved 2006-11-16.
  112. ^ C. Michael Holloway. "Why Engineers Should Consider Formal Methods" (PDF). 16th Digital Avionics Systems Conference (27–30 October 1997). Archived from the original (PDF) on 16 November 2006. Retrieved 2006-11-16. {{cite journal}}: Cite journal requires |journal= (help)
  113. ^ Sanghavi, Alok (May 21, 2010). "What is formal verification?". EE Times Asia.
  114. ^ "Declaration vs. expression style - HaskellWiki".
  115. ^ Myerson, Roger B. (1991). Game Theory: Analysis of Conflict, Harvard University Press, p. 1. Chapter-preview links, pp. vii–xi.
  116. ^ CORMEN, THOMAS H. (2009). INTRODUCTION TO ALGORITHMS. United States of America: The MIT Press Cambridge, Massachusetts London, England. pp. 151–152. ISBN 978-0-262-03384-8.
  117. ^ Black (ed.), Paul E. (2004-12-14). Entry for heap in Dictionary of Algorithms and Data Structures. Online version. U.S. National Institute of Standards and Technology, 14 December 2004. Retrieved on 2017-10-08 from https://xlinux.nist.gov/dads/HTML/heap.html.
  118. ^ Skiena, Steven (2008). "Searching and Sorting". The Algorithm Design Manual. Springer. p. 109. doi:10.1007/978-1-84800-070-4_4. ISBN 978-1-84800-069-8. [H]eapsort is nothing but an implementation of selection sort using the right data structure.
  119. ^ ISO/IEC/IEEE International Standard - Systems and software engineering. ISO/IEC/IEEE 24765:2010(E). 2010. pp. vol., no., pp.1–418, 15 Dec. 2010.
  120. ^ Martyn A Ould & Charles Unwin (ed), Testing in Software Development, BCS (1986), p71. Accessed 31 Oct 2014
  121. ^ World Intellectual Property Organization (WIPO) (2016). Understanding Industrial Property. World Intellectual Property Organization. doi:10.34667/tind.28945. ISBN 9789280525885. Retrieved 2018-12-06.
  122. ^ "Intellectual, industrial and commercial property | Fact Sheets on the European Union". European Parliament. Retrieved 2018-12-06.
  123. ^ "What are intellectual property rights?". World Trade Organization. World Trade Organization. Retrieved 2016-05-23.
  124. ^ "Intellectual property", Black's Law Dictionary, 10th ed. (2014).
  125. ^ "Understanding Copyright and Related Rights" (PDF). World Intellectual Property Organization. p. 4. Retrieved 2018-12-06.
  126. ^ "What is Intellectual Property?" (PDF). World Intellectual Property Organization (WIPO). Retrieved 2018-12-07.
  127. ^ "Understanding Industrial Property" (PDF). World Intellectual Property Organization (WIPO). Retrieved 2018-12-07.
  128. ^ Anderson, Michael; Anderson, Susan Leigh (2007-12-15). "Machine Ethics: Creating an Ethical Intelligent Agent". AI Magazine. 28 (4): 15. doi:10.1609/aimag.v28i4.2065. ISSN 2371-9621.
  129. ^ According to the definition given by Russell & Norvig (2003, chpt. 2)
  130. ^ Hookway, B. (2014). "Chapter 1: The Subject of the Interface". Interface. MIT Press. pp. 1–58. ISBN 9780262525503.
  131. ^ IEEE 100 - The Authoritative Dictionary Of IEEE Standards Terms. NYC, NY, USA: IEEE Press. 2000. pp. 574–575. ISBN 9780738126012.
  132. ^ Dunham, Ken; Melnick, Jim (2008). Malicious Bots: An Inside Look into the Cyber-Criminal Underground of the Internet. CRC Press. ISBN 9781420069068.
  133. ^ DECODER, p. 1.
  134. ^ "Java is pure object oriented or not?". Stack Overflow. Retrieved 2019-05-24.
  135. ^ "Write once, run anywhere?". Computer Weekly. May 2, 2002. Retrieved 2009-07-27.
  136. ^ "1.2 Design Goals of the Java™ Programming Language". Oracle. January 1, 1999. Archived from the original on January 23, 2013. Retrieved January 14, 2013.
  137. ^ Knuth 1998, §6.1 ("Sequential search").
  138. ^ IBM Corporation (1972). IBM OS Linkage Editor and Loader (PDF).
  139. ^ Abelson, Harold; Sussman, Gerald Jay (1996). Structure and Interpretation of Computer Programs. MIT Press.
  140. ^ The definition "without being explicitly programmed" is often attributed to Arthur Samuel, who coined the term "machine learning" in 1959, but the phrase is not found verbatim in this publication, and may be a paraphrase that appeared later. Confer "Paraphrasing Arthur Samuel (1959), the question is: How can computers learn to solve problems without being explicitly programmed?" in Koza, John R.; Bennett, Forrest H.; Andre, David; Keane, Martin A. (1996). Automated Design of Both the Topology and Sizing of Analog Electrical Circuits Using Genetic Programming. Artificial Intelligence in Design '96. Springer, Dordrecht. pp. 151–170. doi:10.1007/978-94-009-0279-4_9.
  141. ^ < Bishop, C. M. (2006), Pattern Recognition and Machine Learning, Springer, ISBN 978-0-387-31073-2
  142. ^ Undergraduate texts include Boolos, Burgess, and Jeffrey (2002), Enderton (2001), and Mendelson (1997). A classic graduate text by Shoenfield (2001) first appeared in 1967.
  143. ^ Equivalently, table.
  144. ^ Anton (1987, p. 23)
  145. ^ Beauregard & Fraleigh (1973, p. 56)
  146. ^ a b Patterson, David A.; Hennessy, John L. (2005). Computer Organization and Design: The Hardware/Software Interface (3rd ed.). Amsterdam: Morgan Kaufmann Publishers. ISBN 1-55860-604-1. OCLC 56213091.
  147. ^ Knuth (1998, p. 158)
  148. ^ Katajainen, Jyrki; Träff, Jesper Larsson (March 1997). "A meticulous analysis of mergesort programs" (PDF). Proceedings of the 3rd Italian Conference on Algorithms and Complexity. Italian Conference on Algorithms and Complexity. Rome. pp. 217–228. CiteSeerX 10.1.1.86.3154. doi:10.1007/3-540-62592-5_74.
  149. ^ Consumers of an object may consist of various kinds of elements, such as other programs, remote computer systems, or computer programmers who wish to utilize the object as part of their own programs.
  150. ^ a b Centers for Medicare & Medicaid Services (CMS) Office of Information Service (2008). Selecting a development approach. Webarticle. United States Department of Health and Human Services (HHS). Re-validated: March 27, 2008. Retrieved 27 Oct 2008.
  151. ^ Oppel, Andy (2005). SQL Demystified. McGraw Hill. p. 7. ISBN 0-07-226224-9.
  152. ^ "Compiler". TechTarget. Retrieved 1 September 2011. Traditionally, the output of the compilation has been called object code or sometimes an object module.
  153. ^ Aho, Alfred V.; Sethi, Ravi; Ullman, Jeffrey D. (1986). "10 Code Optimization". Compilers: principles, techniques, and tools. Computer Science. Mark S. Dalton. p. 704. ISBN 0-201-10194-7.
  154. ^ Kindler, E.; Krivy, I. (2011). "Object-Oriented Simulation of systems with sophisticated control". International Journal of General Systems: 313–343. {{cite journal}}: Cite journal requires |journal= (help)
  155. ^ Lewis, John; Loftus, William (2008). Java Software Solutions Foundations of Programming Design 6th ed. Pearson Education Inc. ISBN 978-0-321-53205-3., section 1.6 "Object-Oriented Programming"
  156. ^ St. Laurent, Andrew M. (2008). Understanding Open Source and Free Software Licensing. O'Reilly Media. p. 4. ISBN 9780596553951.
  157. ^ Levine, Sheen S.; Prietula, Michael J. (2013-12-30). "Open Collaboration for Innovation: Principles and Performance". Organization Science. 25 (5): 1414–1433. arXiv:1406.7541. doi:10.1287/orsc.2013.0872. ISSN 1047-7039. S2CID 6583883.
  158. ^ "Optical Fiber". www.thefoa.org. The Fiber Optic Association. Retrieved 17 April 2015.
  159. ^ Senior, John M.; Jamro, M. Yousif (2009). Optical fiber communications: principles and practice. Pearson Education. pp. 7–9. ISBN 978-0130326812.
  160. ^ Williams, Laurie (February 19–20, 2001). Integrating pair programming into a software development process. 14th Conference on Software Engineering Education and Training. Charlotte. pp. 27–36. doi:10.1109/CSEE.2001.913816. ISBN 0-7695-1059-0. One of the programmers, the driver, has control of the keyboard/mouse and actively implements the program. The other programmer, the observer, continuously observes the work of the driver to identify tactical (syntactic, spelling, etc.) defects, and also thinks strategically about the direction of the work.
  161. ^ Gottlieb, Allan; Almasi, George S. (1989). Highly parallel computing. Redwood City, Calif.: Benjamin/Cummings. ISBN 978-0-8053-0177-9.
  162. ^ Prata, Stephen (2004). C primer plus (5th ed.). Sams. pp. 276–277. ISBN 978-0-672-32696-7.
  163. ^ "Working Draft, Standard for Programming Language C++" (PDF). www.open-std.org. Retrieved 1 January 2018.
  164. ^ Gordon, Aaron. "Subprograms and Parameter Passing". rowdysites.msudenver.edu/~gordona. Retrieved 1 January 2018.
  165. ^ a b U.S. Election Assistance Commission (2007). "Definitions of Words with Special Meanings". Voluntary Voting System Guidelines. Archived from the original on 2012-12-08. Retrieved 2013-01-14.
  166. ^ Ranta, Aarne (9 May 2012). Implementing Programming Languages (PDF). College Publications. pp. 16–18. ISBN 9781848900646. Retrieved 22 March 2020.
  167. ^ Clocksin, William F.; Mellish, Christopher S. (2003). Programming in Prolog. Berlin ; New York: Springer-Verlag. ISBN 978-3-540-00678-7.
  168. ^ Bratko, Ivan (2012). Prolog programming for artificial intelligence (4th ed.). Harlow, England ; New York: Addison Wesley. ISBN 978-0-321-41746-6.
  169. ^ Covington, Michael A. (1994). Natural language processing for Prolog programmers. Englewood Cliffs, N.J.: Prentice Hall. ISBN 978-0-13-629213-5.
  170. ^ Lloyd, J. W. (1984). Foundations of logic programming. Berlin: Springer-Verlag. ISBN 978-3-540-13299-8.
  171. ^ Kuhlman, Dave. "A Python Book: Beginning Python, Advanced Python, and Python Exercises". Section 1.1. Archived from the original (PDF) on 23 June 2012.
  172. ^ The National Academies of Sciences, Engineering, and Medicine (2019). Grumbling, Emily; Horowitz, Mark (eds.). Quantum Computing : Progress and Prospects (2018). Washington, D.C.: National Academies Press. p. I-5. doi:10.17226/25196. ISBN 978-0-309-47969-1. OCLC 1081001288. S2CID 125635007.
  173. ^ R language and environment
    • Hornik, Kurt (2017-10-04). "R FAQ". The Comprehensive R Archive Network. 2.1 What is R?. Retrieved 2018-08-06.
    R Foundation
    • Hornik, Kurt (2017-10-04). "R FAQ". The Comprehensive R Archive Network. 2.13 What is the R Foundation?. Retrieved 2018-08-06.
    The R Core Team asks authors who use R in their data analysis to cite the software using:
    • R Core Team (2016). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. URL http://www.R-project.org/.
  174. ^ widely used
  175. ^ Vance, Ashlee (2009-01-06). "Data Analysts Captivated by R's Power". New York Times. Retrieved 2018-08-06. R is also the name of a popular programming language used by a growing number of data analysts inside corporations and academia. It is becoming their lingua franca...
  176. ^ "Computer Science Dictionary Definitions". Computing Students. Retrieved Jan 22, 2018.
  177. ^ Radványi, Tibor (2014). Database Management Systems. Eszterházy Károly College. p. 19. Retrieved 23 September 2018.
  178. ^ Kahate, Atul (2006). Introduction to Database Management Systems. Pearson. p. 3. ISBN 978-81-317-0078-5. Retrieved 23 September 2018.
  179. ^ Connolly, Thomas (2004). Database Solutions: A Step by Step Guide to Building Databases (2nd ed.). Pearson. p. 7. ISBN 978-0-321-17350-8.
  180. ^ Codd, E. F. (1970). "A Relational Model of Data for Large Shared Data Banks". Communications of the ACM. 13 (6): 377–387. doi:10.1145/362384.362685.
  181. ^ Ambler, Scott. "Relational Databases 101: Looking at the Whole Picture".
  182. ^ Institute of Electrical and Electronics Engineers (1990) IEEE Standard Computer Dictionary: A Compilation of IEEE Standard Computer Glossaries. New York, NY ISBN 1-55937-079-3
  183. ^ Pezzè, Mauro; Young, Michal (2008). Software testing and analysis: process, principles, and techniques. Wiley. Testing activities that focus on regression problems are called (non) regression testing. Usually "non" is omitted
  184. ^ Basu, Anirban (2015). Software Quality Assurance, Testing and Metrics. PHI Learning. ISBN 978-81-203-5068-7.
  185. ^ National Research Council Committee on Aging Avionics in Military Aircraft: Aging Avionics in Military Aircraft. The National Academies Press, 2001, page 2: ″Each technology-refresh cycle requires regression testing.″
  186. ^ Boulanger, Jean-Louis (2015). CENELEC 50128 and IEC 62279 Standards. Wiley. ISBN 978-1119122487.
  187. ^ Kotonya, Gerald; Sommerville, Ian (1998). Requirements Engineering: Processes and Techniques. Chichester, UK: John Wiley and Sons. ISBN 9780471972082.
  188. ^ Ueberhuber, Christoph W. (1997), Numerical Computation 1: Methods, Software, and Analysis, Springer, pp. 139–146, ISBN 978-3-54062058-7
  189. ^ Forrester, Dick (2018). Math/Comp241 Numerical Methods (lecture notes). Dickinson College.
  190. ^ Aksoy, Pelin; DeNardis, Laura (2007), Information Technology in Theory, Cengage Learning, p. 134, ISBN 978-1-42390140-2
  191. ^ Ralston, Anthony; Rabinowitz, Philip (2012), A First Course in Numerical Analysis, Dover Books on Mathematics (2nd ed.), Courier Dover Publications, pp. 2–4, ISBN 978-0-48614029-2
  192. ^ Butt, Rizwan (2009), Introduction to Numerical Analysis Using MATLAB, Jones & Bartlett Learning, pp. 11–18, ISBN 978-0-76377376-2
  193. ^ "Overview Of Key Routing Protocol Concepts: Architectures, Protocol Types, Algorithms and Metrics". Tcpipguide.com. Archived from the original on 20 December 2010. Retrieved 15 January 2011.
  194. ^ Philip A. Bernstein, Vassos Hadzilacos, Nathan Goodman (1987): Concurrency Control and Recovery in Database Systems (free PDF download), Addison Wesley Publishing Company, ISBN 0-201-10715-5
  195. ^ Gerhard Weikum, Gottfried Vossen (2001): Transactional Information Systems, Elsevier, ISBN 1-55860-508-8
  196. ^ Maurice Herlihy and J. Eliot B. Moss. Transactional memory: architectural support for lock-free data structures. Proceedings of the 20th annual international symposium on Computer architecture (ISCA '93). Volume 21, Issue 2, May 1993.
  197. ^ Marshall Cline. "C++ FAQ: "What's this "serialization" thing all about?"". Archived from the original on 2015-04-05. It lets you take an object or group of objects, put them on a disk or send them through a wire or wireless transport mechanism, then later, perhaps on another computer, reverse the process, resurrecting the original object(s). The basic mechanisms are to flatten object(s) into a one-dimensional stream of bits, and to turn that stream of bits back into the original object(s).
  198. ^ Kearney, K.T.; Torelli, F. (2011). "The SLA Model". In Wieder, P.; Butler, J.M.; Theilmann, W.; Yahyapour, R. (eds.). Service Level Agreements for Cloud Computing. Springer Science+Business Media, LLC. pp. 43–68. ISBN 9781461416142.
  199. ^ Nwana, H. S. (1996). "Software Agents: An Overview". Knowledge Engineering Review. 21 (3): 205–244. CiteSeerX 10.1.1.50.660. doi:10.1017/s026988890000789x.
  200. ^ Schermer, B. W. (2007). Software agents, surveillance, and the right to privacy: A legislative framework for agent-enabled surveillance (paperback). Vol. 21. Leiden University Press. pp. 140, 205–244. hdl:1887/11951. ISBN 978-0-596-00712-6. Retrieved 2012-10-30.
  201. ^ SWEBOK Pierre Bourque; Robert Dupuis; Alain Abran; James W. Moore, eds. (2004). "Chapter 4: Software Construction". Guide to the Software Engineering Body of Knowledge. IEEE Computer Society. pp. 4–1–4–5. ISBN 0-7695-2330-7.
  202. ^ Roger S. Pressman Software engineering: a practitioner's approach (eighth edition)
  203. ^ Ralph, P. and Wand, Y. (2009). A proposal for a formal definition of the design concept. In Lyytinen, K., Loucopoulos, P., Mylopoulos, J., and Robinson, W., editors, Design Requirements Workshop (LNBIP 14), pp. 103–136. Springer-Verlag, p. 109 doi:10.1007/978-3-540-92966-6_6.
  204. ^ Freeman, Peter; David Hart (2004). "A Science of design for software-intensive systems". Communications of the ACM. 47 (8): 19–21 [20]. doi:10.1145/1012037.1012054. S2CID 14331332.
  205. ^ "Application Development (AppDev) Defined and Explained". Bestpricecomputers.co.uk. 2007-08-13. Retrieved 2012-08-05.
  206. ^ DRM Associates (2002). "New Product Development Glossary". Retrieved 2006-10-29.
  207. ^ Abran et al. 2004, pp. 1–1
  208. ^ ACM (2007). "Computing Degrees & Careers". ACM. Retrieved 2010-11-23.
  209. ^ Laplante, Phillip (2007). What Every Engineer Should Know about Software Engineering. Boca Raton: CRC. ISBN 978-0-8493-7228-5. Retrieved 2011-01-21.
  210. ^ "The Joint Task Force for Computing Curricula 2005" (PDF). 2014-10-21. Archived (PDF) from the original on 2014-10-21. Retrieved 2020-04-16.
  211. ^ "ISO/IEC 14764:2006 Software Engineering — Software Life Cycle Processes — Maintenance". Iso.org. 2011-12-17. Retrieved 2013-12-02.
  212. ^ Kaner, Cem (November 17, 2006). Exploratory Testing (PDF). Quality Assurance Institute Worldwide Annual Software Testing Conference. Orlando, FL. Retrieved November 22, 2014.
  213. ^ "Programming in C: A Tutorial" (PDF). Archived from the original(PDF) on 23 February 2015.
  214. ^ By contrast, a simple QUEUE operates FIFO (first in, first out).
  215. ^ Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2009) [1990]. Introduction to Algorithms (3rd ed.). MIT Press and McGraw-Hill. ISBN 0-262-03384-4.
  216. ^ "What is stateless? - Definition from WhatIs.com". techtarget.com.
  217. ^ "statement". webopedia. September 1996. Retrieved 2015-03-03.
  218. ^ http://nosql-database.org/ "NoSQL DEFINITION: Next Generation Databases mostly addressing some of the points : being non-relational, distributed, open-source and horizontally scalable".
  219. ^ Leavitt, Neal (2010). "Will NoSQL Databases Live Up to Their Promise?" (PDF). IEEE Computer. 43 (2): 12–14. doi:10.1109/MC.2010.58. S2CID 26876882.
  220. ^ Mohan, C. (2013). History Repeats Itself: Sensible and NonsenSQL Aspects of the NoSQL Hoopla (PDF). Proc. 16th Int'l Conf. on Extending Database Technology.
  221. ^ "Amazon Goes Back to the Future With 'NoSQL' Database". WIRED. 2012-01-19. Retrieved 2017-03-06.
  222. ^ "RDBMS dominate the database market, but NoSQL systems are catching up". DB-Engines.com. 21 Nov 2013. Retrieved 24 Nov 2013.
  223. ^ "NoSQL (Not Only SQL)". NoSQL database, also called Not Only SQL
  224. ^ Fowler, Martin. "NosqlDefinition". many advocates of NoSQL say that it does not mean a "no" to SQL, rather it means Not Only SQL
  225. ^ "ACM Association in computer algebra".
  226. ^ Issue of syntax or semantics?
  227. ^ John Paul Mueller,Semantic Errors in Java
  228. ^ What is "technical documentation"? at Transcom.de. Accessed February 25, 2013.
  229. ^ What is Technical Documentation? Archived 2013-04-18 at archive.today at Tetras Translations. Accessed February 25, 2013.
  230. ^ Documenting the New System at IGCSE ICT. Accessed February 25, 2013.
  231. ^ "Computer Hope, Generation languages"
  232. ^ "Upload Definition". techterms.com. Retrieved 2017-03-30.
  233. ^ W3C (2009).
  234. ^ "Forward and Backslashes in URLs". zzz.buzz. Retrieved 2018-09-19.
  235. ^ RFC 3986 (2005).
  236. ^ a b Joint W3C/IETF URI Planning Interest Group (2002).
  237. ^ RFC 2396 (1998).
  238. ^ Miessler, Daniel. "The Difference Between URLs and URIs".
  239. ^ Jargon File entry for "User". Retrieved November 7, 2010.
  240. ^ "W3C Definition of User Agent". www.w3.org. 16 June 2011. Retrieved 2018-10-20.
  241. ^ Compilers: Principles, Techniques, and Tools, pp. 26–28
  242. ^ Knuth, Donald (1997). The Art of Computer Programming. Vol. 1 (3rd ed.). Reading, Massachusetts: Addison-Wesley. pp. 3–4. ISBN 0-201-89683-4.
  243. ^ Kevin Forsberg and Harold Mooz, "The Relationship of System Engineering to the Project Cycle", in Proceedings of the First Annual Symposium of National Council on System Engineering, October 1991: 57–65.
  244. ^ Beal, Vangie (2 May 2001). "What is Wi-Fi (IEEE 802.11x)? A Webopedia Definition". Webopedia. Archived from the original on 2012-03-08.
  245. ^ Schofield, Jack (21 May 2007). "The dangers of Wi-Fi radiation (updated)" – via www.theguardian.com.
  246. ^ "Certification | Wi-Fi Alliance". www.wi-fi.org.

Notes

  1. ^ The function may be stored as a reference to a function, such as a function pointer.
  2. ^ In this article, the term "subroutine" refers to any subroutine-like construct, which have different names and slightly different meanings depending on the programming language being discussed.
  3. ^ A URL implies the means to access an indicated resource and is denoted by a protocol or an access mechanism, which is not true of every URI.[237][236] Thus http://www.example.com is a URL, while www.example.com is not.[238]