1. OS/システムに関連する用語
1.1. OS/Systemの用語
1.1.1. OSの処理能力(32bit/64bit)
OSのエディションには32bit/64bitがあり、それぞれ処理速度、扱えるメモリ量が異なる。
扱えるメモリ容量 | 扱えるHDD容量 | |
---|---|---|
32bit版 | 2~4GB | 2TBまで |
64bit版 | 8GB~2TB | 2TB以上 |
1.1.2. CPUのアーキテクチャ(x86, x64, arm)
x86(32bit)
x86はインテル(Intel)およびAMDなどのCPUアーキテクチャに関連する用語。 x86アーキテクチャは32bitプロセッサを指す。
32bitプロセッサは、32bitのデータ幅を持ち、通常、32bitの命令を処理する。
x64(64bit)
x64は64bitプロセッサアーキテクチャを指す。 x86の拡張バージョンであり、インテルおよびAMDの64bitプロセッサに関連する。
64bitプロセッサは、64bitのデータ幅とアドレッシングをサポートし、大容量のメモリと高性能処理を可能にする。
arm
ARM(Advanced RISC Machines)は、ARMホールディングスが開発した低電力のRISC(Reduced Instruction Set Computer)アーキテクチャ。 arm64で64bit、arm32で32bitの動作となる。
1.2. 言語特性/仕様の用語
1.2.1. GC(ガベージコレクション)
コンピュータプログラムの実行環境などが備える機能の1つであり、実行中のプログラムが占有していたメモリ領域のうち不要になったものを自動的に解放し、空き領域として再利用できるようにするもののことを言う。
1.2.2. クロージャ
あるコードブロック内で定義された関数などが、そのブロックをスコープとする変数などを参照できること。
また、そのような機能を利用してブロック内部で定義された関数のこと。
1.2.3. カリー化
複数の引数をとる関数を、1引数関数の連続した呼び出しに置き換えること.
JavaScriptの例
function greet (name, age) {
console.log('My name is ' + name + '. I am ' + age + ' years old.');
}
greet('taro', 27); // 引数を2つ渡す
// ↓↓↓
function greet (name) {
return function (age) {
console.log('My name is ' + name + '. I am ' + age + ' years old.');
}
}
greet('taro')(27); // 引数の渡し方が変わる
1.2.4. 高階関数
関数を引数や戻り値とする関数。
1.2.6. デコレータ
デコレータは関数やクラスの前後に特定の処理を追加できる機能。
1.2.7. サブルーチン
コンピュータプログラムの中で特定の機能や処理をひとまとまりの集合として定義し、他の箇所から呼び出して実行できるようにしたもの。
1.3. 開発言語の用語
1.3.1. WebAssembly
WebAssemblyは仮想マシン上で動作するバイナリ形式の命令のこと。 WebAssemblyには2つのフォーマットがあり、「Binary Format(WASM)」と「Teaxt Format(WAT)」がある。
公式ドキュメント:https://webassembly.org/getting-started/developers-guide/
WebAssemblyはCやC++、Rust、Goなどの様々な言語から上記のWebAssemblyの命令形式へコンパイルして利用する。
WebAssemblyを用いることにより得られるメリットは以下の3つ。
- JavaScriptではできなかった負荷の大きな処理をブラウザで実行可能
- C/C++など既存のソースコードをブラウザで実行可能
- フロントとバックの処理を同じ言語で記述できる
WebAssemblyが適用できる場面(ユースケース)としては負荷の大きな処理をブラウザで実装したいときに役に立つ。
- 動画、画像編集
- 画像認識
- 低遅延のVR・AR
- CAD
- ゲーム開発
- 圧縮や暗号化など
Qiitaの解説記事:https://qiita.com/t_katsumura/items/ff379aaaba6931aad1c4
1.3.2. JVM言語
処理系がJVM(Java仮想マシン)上で動作する言語の総称。 OS環境に実行が依存しない特徴がある。
Scala, Kotlinなどがある。
1.3.3. SSML
音声マークアップ言語。