C. 用語集

ActionScript
Adobe Flash で使われたプログラミング言語。ECMAScript の方言。
属性 (attribute)
  1. ECMAScript 仕様において、プロパティが持つ設定可能な特性。
  2. HTML において、振る舞いを変更するために開始タグに付与する値。
AWK
元々は Unix 用に開発されたドメイン固有言語 [Aho et al. 1988]。
束縛 (binding)
名前を変数あるいは定数値に対応付ける関係性のこと。
破壊的変更 (breaking-change)
既存のプログラムが動作しなくなる、または誤った動作をするようになるようなプログラミング言語あるいはプログラミングプラットフォームの変更のこと。
ブラウザ戦争 (browser war)
市場の独占を目論むブラウザベンダーが激しい競争を繰り広げた時期のこと。
Chrome
Google が開発、配布するウェブブラウザ。
Chromium
Chrome ブラウザの核となるコンポーネント。オープンソースで公開されている。
クラス (class)
プログラミング言語において、何らかの仕組みを使って定義された、オブジェクトのグループが共有する共通のインターフェースと実装の集合を表す概念。
古典的継承 (classical inheritance)
オブジェクトがクラス定義のチェーンから状態と振る舞いを手に入れる継承メカニズム。
CoffeeScript
Jeremy Ashkenas によって作成された、JavaScript にコンパイルされるプログラミング言語。
CommonJS
Kevin Dango によって開始された、ブラウザ以外の環境向けの JavaScript 技術を開発するプロジェクト。
コンパイラ (compiler)
プログラムを (通常は) プロセッサが直接実行できる機械語に変換するエンジン。
コンストラクタ (constructor)
コンストラクタ関数を参照。
コンストラクタ関数 (constructor function)
オブジェクトのアロケートと初期化を行う JavaScript 関数。new 演算子で呼び出せる。
循環型ガベージコレクション (cyclic garbage collection)
孤立した環状の構造体にアロケートされた空間であっても解放して再利用できるメモリ管理機構。
Dart
Google によって開発されたクラスベースのオブジェクト指向プログラミング言語。Web ブラウザで JavaScript を置き換えることが当初の目標だった。
宣言的 (declarative)
期待される結果の特徴を記述することで計算を行うアプローチを取っていること。
委譲 (delegation)
オブジェクトが (他のクラスではなく) 他のオブジェクトから状態と振る舞いの一部または全てを手に入れるメカニズム。
判別可能 union (discriminated union)
保持できる内部構造の選択肢が複数存在するデータレコード。実際に保持する構造はタグの値で明示的に指定される。
分割代入 (destructuring assignment)
配列の要素 (またはオブジェクトのプロパティ) を、配列リテラル (またはオブジェクトリテラル) に似た記法を使って取り出して変数に代入すること。
脱糖 (desugar)
プログラミング言語の文あるいは演算子を、より基礎的な文あるいは演算子に分解すること。
DevDiv
Microsoft の開発ツール部門 (Developer Tools Division)。
動的言語 (dynamic language)
実行前にプログラムの解析をほとんど (あるいは全く) 行わないプログラミング言語のこと。言語が課すエラー検査の大部分は実行中に起こる。プログラムを実行中に構築または改変できることが多い。静的言語も参照。
動的型付け (dynamically typed)
プログラミング言語がデータ型安全性に関する制約を主にプログラムの実行中に確認すること。静的型付けも参照。
es-discuss
ECMAScript の進化を議論する公開の電子メールフォーラム。
ECMA-262
ECMAScript 言語仕様 (ECMAScript Language Specification)。
ECMA-402
ECMAScript 国際化 API 仕様 (ECMAScript Internationalization API Specification)。
エンジン (engine)
プログラムを実行する機構。
es4-discuss
電子メールフォーラム es-discuss の元々の名前。
ES.next
次バージョンの ECMA-262 を指して TC39 内で使われることがあった名称。
奇異オブジェクト (exotic object)
全てのオブジェクトがサポートしなければならない必須内部メソッド (のいずれか) がデフォルトの振る舞いを持たない JavaScript オブジェクト。
expando プロパティ (expando property)
作成後にオブジェクトへ動的に追加されたプロパティ。
ファクトリ関数 (factory function)
新しいオブジェクトを返す関数。
Firefox
Mozilla が開発、配布するウェブブラウザ。
ファーストクラス (first-class)
データ値として利用できるプログラミング言語ランタイムの要素であること。例えばファーストクラスの値に対しては変数に代入する、関数の引数として使う、関数から返す、データ構造に格納するといったことが行える。
Flash
Adobe が開発するマルチメディアソフトウェアプラットフォーム。リッチインターネットアプリケーションなどの用途をサポートする。
自由変数 (free variable)
参照されるもののローカルスコープでは定義されない束縛。
関数 (function)
サブルーチンのこと。パラメータ化されたプログラムの小部分。
ハッカソン (hackathon)
プログラマが集まり、数日にわたって一つのプロジェクトに協力して取り組むイベント。
Harmony
ES42 が破棄された後、開発中の ECMA-262 を指して TC39 で使われたコードネーム。
ホストオブジェクト (host object)
JavaScript エンジンによって提供される、ホストのアプリケーションまたはプラットフォームが持つ機能に対するアクセスを提供するオブジェクトまたはオブジェクトのクラス。
命令的 (imperative)
期待される結果を得るための一連のステップを記述することで計算を行うアプローチを取っていること。
継承 (inherit)
オブジェクト指向言語において、あるオブジェクトのデータや振る舞い (の一部または全て) を他のオブジェクトに受け継がせるメカニズム。
継承プロパティ (inherited property)
JavaScript オブジェクトのプロパティであって、プロトタイプから継承されたもの。
内部メソッド (internal method)
ECMAScript の仕様において、オブジェクトの意味論の一部を定義するのに使われるメカニズム。JavaScript 言語自体には含まれない。
内部プロパティ (internal property)
内部メソッドが利用するオブジェクトの様態。オブジェクトの意味論の一部を定義するときに必要な状態が格納される。
インタープリタ (interpreter)
プログラムを実行するエンジン。プログラムを表現したデータを走査し、見つかった演算をその場で実行することでプログラムを実行する。
国際化 (internationalization)
プログラムが様々な (自然) 言語、文字、表記規則を処理できるようにするプロセス。
Internet Explorer
Microsoft が開発、配布するウェブブラウザ。
Java
Sun Microsystems によって開発された、クラスベースのオブジェクト指向言語。
JavaScript エンジン (JavaScript engine)
JavaScript 言語の実装のこと。
JScript
Microsoft が実装する JavaScript の方言。
ラムダ式 (lambda expression)
識別子に束縛されずに定義される関数。特に、期待される引数と実行あるいは評価のステップを定義する式。ラムダ計算と Lisp の用語から。
漏れのある抽象化 (leaky abstraction)
隠蔽されるべき (あるいはプライベートにされるべき) 詳細を意図せず公開してしまっている抽象化のこと。
マッシュアップ (mashup)
独立して管理される複数のサーバーから JavaScript コードとコンテンツを読み込み、それらを動的に組み合わせるウェブページ。
メンブレン (membrane)
オブジェクト機能モデルを使うシステムにおいて、異なるセキュリティコンテキスト間で改ざん不可能な形でオブジェクトを共有するためのメカニズム。
メタオブジェクトプロトコル (metaobject protocol)
オブジェクト指向言語において、オブジェクトが持つ言語レベルの基礎的な振る舞いの定義およびそれへのアクセスを行うための明確に定められたインターフェース。
メソッド (method)
オブジェクトの構成要素となっている関数。
Netscape Navigator
Netscape Communications Corporation によって開発、配布されたウェブブラウザ。
Mocha
後に JavaScript となった言語のコードネーム。および Netscape が最初に作った JavaScript エンジンの名前。
Mosaic
NCSA の Marc Andreessen と Eric Bina が開発したウェブブラウザ。
Node.js
JavaScript ベースのサーバープラットフォーム。最初のバージョンは 2009 年に Ryan Dahl が開発した。
名前的型システム (nominal type system)
任意の型の定義がそれぞれユニークなデータ型を作成する型システムのこと。一部のオブジェクト指向言語ではクラスの定義が名前的型の定義とみなされる。
非規定的 (non-normative)
規格文書の特定の部分が要件を定義しないことを表す。
noop
何もしない操作のこと。
規定的 (normative)
規格文書の特定の部分が要件を定義することを表す。
オブジェクト (object)
プログラミングにおいて、データと振る舞いを一つにまとめたファーストクラスの複合エンティティを表す概念。オブジェクトの定義と操作の仕組みはプログラミング言語ごとに異なる。
Opera
Opera Software が開発、配布するウェブブラウザ。
固有プロパティ (own property)
JavaScript オブジェクトのプロパティであって、継承されておらずオブジェクト自身に組み込まれているもの。
通常オブジェクト (ordinary object)
全てのオブジェクトがサポートしなければならない必須内部メソッドの振る舞いが全てデフォルトの JavaScript オブジェクト。奇異オブジェクトも参照。
プロファイル (profile)
機能の集合を特定のデバイス、プラットフォーム、アプリケーションの要件に合うようにまとめたもの。
polyfill
ブラウザによって提供されるはずにもかかわらず提供されていない API を代わりに提供するライブラリ。
適切な末尾呼び出し (proper tail call)
呼び出した関数に制御が一度も戻らないような末尾呼び出し。
プロパティ (property)
JavaScript オブジェクトの構成要素。
プロパティキー (property key)
オブジェクトが持つ特定のプロパティを識別するのに使われる文字列またはシンボル。
プロトタイプ (prototype)
継承を通じて状態と振る舞いを他のオブジェクトに与えるために存在するオブジェクト。
プロトタイプ継承 (prototype)
オブジェクトが状態と振る舞いの全てまたは一部をプロトタイプチェーンから取得する継承メカニズム。
Safari
Apple が開発するウェブブラウザ。
サンドボックス (sandbox)
プログラム全体または一部を隔離することで、ホスト環境や他のプログラムのデータに対する直接的な読み取りや干渉を行えないようにするメカニズム。
Secure ECMAScript
セキュリティエクスプロイトに利用されかねない機能を削除した ECMAScript 方言。
セルフホスト (self-host)
プログラミング言語エンジンの一部をエンジンに入力されるのと同じ言語のコードで実装すること。
隠蔽 (shadow)
継承された特性を上書きすること。再定義はしない。
Silverlight
Microsoft が開発したリッチインターネットアプリケーションのためのプラットフォーム。
スコープ (scope)
特定の変数 (あるいは任意の宣言された束縛) を参照できるプログラムの領域。
スコープの輪郭 (scope contour)
入れ子になったスコープのグループにおける単一のスコープを指す言葉。
スクリプト言語 (scripting language)
他の言語で定義されたコンピューティングシステム、アプリケーション、あるいは抽象的な計算対象に対する操作を行うための通常は単純なプログラミング言語。
SpiderMonkey
Netscape と Mozilla で 1996 年以降に開発された全てのブラウザで使われた JavaScript エンジン。
静的言語 (static language)
実行前にプログラムに対してある程度の (あるいは徹底的な) 解析を行うプログラミング言語。言語が課すエラー検査の多くは実行前に起こる。実行中にプログラムを改変できない場合が多い。動的言語も参照。
静的型付け (statically typed)
プログラミング言語がデータ型安全性に関する制約を主にプログラムの実行前に確認すること。動的型付けも参照。
末尾呼び出し (tail call)
メソッドの最後の操作となっているメソッドもしくは関数の呼び出しのこと。そういった呼び出しの実装では、呼び出された関数が返るときに制御を呼び出し側のメソッドに戻す必要がない (戻しても構わない)。適切な末尾呼び出しも参照。
トランスパイラ (transpiler)
ある言語で書かれたプログラムを他の言語のプログラムに翻訳する言語処理プログラム。
型 (type)
値の区分。同じ型に属する値は共通の特徴 (利用可能な演算や表現など) を持つ。
型注釈 (type annotation)
変数またはその他の束縛に型を関連付けるために利用される構文。
URL
World Wide Web のページのアドレス (Uniform Resource Locator)。
値 (value)
プログラムが操作する情報の一単位。型付けのある言語では、任意の値が数多くある型のいずれかに分類される。
V8
Chrome ブラウザが利用する JavaScript エンジン。
WebKit
Apple Safari およびその他のいくつかのブラウザの核となるコンポーネント。オープンソースで公開されている。
Web 2.0
ユーザー生成コンテンツに焦点を当てるウェブアプリケーションのスタイル。対話性が非常に高く、AJAX のテクニックを使って開発されることが多い。
Web Reality
今この瞬間に存在し、既存のウェブページやアプリケーションによって利用されている通りのワールドワイドウェブが持つ技術的な特徴と性質を指す言葉。ウェブというインフラストラクチャの拡張は通常、この既存の特徴と性質をそのままにするように行わなければならない。
関連書籍 (Amazon アソシエイト)
プロを目指す人のためのTypeScript入門 安全なコードの書き方から高度な型の使い方まで
JavaScript Primer 迷わないための入門書
JavaScript 第7版
「ものづくり」の科学史 世界を変えた《標準革命》