プログラミングの用語が全然わかりません(^^ゞ
- 2008年12月30日 2時13分
- misc.
JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティスを何の気なしに買ってみてちらっと目を通したけれど、ちんぷんかんぷんです。
つまりあれだ、オレはプログラミングがわかりません。プログラミングがわからないオレが読んでちんぷんかんぷんなので、これはプログラミングがわからない人が読む本ではありません。
JavaScriptの関数は、(大部分は)レキシカルなスコープを持つファーストクラスオブジェクトである。JavaScriptはメインストリームに登場した最初のラムダ言語だ。実際には、JavaScriptはJavaよりもLispやSchemeとよく似ている。JavaScriptはCの皮を被ったLispなのである。この性質のおかげでJavaScriptは非常に強力な言語になっている。
JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス
ひとまず用語の意味だけはメモしておこう。
レキシカル
-
以下のようにあったので、多分
レキシカル
はローカル変数のローカルと同じ意味だろう。クロージャはある関数全体が他の関数(以下、エンクロージャ)の内部で宣言されたときに発生し、内部の関数はエンクロージャのローカル変数(レキシカル変数)を参照する。
スコープ
-
上記引用に続いて以下のようにある。
実行時に外部の関数が実行された際、クロージャが形成される。クロージャは内部の関数のコードとエンクロージャのスコープ内の必要なすべての変数への参照からなる。
また、
プログラミングでのスコープとは、ある変数や関数が特定の名前で参照される範囲のこと。ある範囲の外に置いた変数等は、通常、その名前だけでは参照できない。このときこれらの変数はスコープ外である、「見えない」といわれる。
ファーストクラスオブジェクト
-
第一級オブジェクトで引けた。
第一級オブジェクト(ファーストクラスオブジェクト、first-class object)は、あるプログラミング言語において、その言語における他のものと比べて制限なしに使用できる物体のことである。第一級オブジェクトは「第一級データ型に属す」という。
この言葉は1960年代にChristopher Stracheyによって「functions as first-class citizens」という文脈で初めて使われた。
言語によって、第一級オブジェクトは次のような性質をもつ。
- 匿名のリテラルとして表現可能である。
- 変数に格納可能である。
- データ構造に格納可能である。
- それ自体に独自性を内在する(名前とは独立している)。
- 他のものとの等値性の比較が可能である。
- プロシージャや関数のパラメータとして渡すことができる。
- プロシージャや関数の戻り値として返すことができる。
- 実行時に構築可能である。
- 表示可能である。
- 読み込むことができる。
- 分散したプロセス間で転送することができる。
- 実行中のプロセスの外に保存することができる。
- ラムダ言語
専門用語を調べるとその専門用語の説明に別の専門用語があってまた専門用語を調べなければなりませんね(^^ゞ
- クロージャ
-
クロージャ (クロージャー、Closure) は、プログラミング言語において引数以外の変数を実行時の環境ではなく、自身が定義された環境(静的スコープ)において解決する関数のことである。関数とそれを評価する環境のペアであるともいえる。
Schemeは完全な静的スコープのクロージャを持つ最初の言語として登場した。実質的にすべての関数型言語(Scala、Haskell、OCamlなど)とSmalltalkに由来するオブジェクト指向言語は何らかの形でクロージャを持っている。 その他のクロージャを持つ言語に、Groovy、ECMAScript(JavaScriptを含む)、Perl、Python、Ruby、Lua、C#などがある。
PHPが入っていませんね(5.3から実装されるらしいです)。
- リテラル
-
コンピュータプログラミングにおいてリテラルは、ソースコード内に値を直接表記したものをいう。数値、文字列、関数などさまざまな型のものが存在し、それぞれの表記方法も言語によって異なる。
リテラルを記述できることは、第一級オブジェクトを構成するための要件として見なされる場合もある。
だめだこりゃ、勉強しないと。



コメントを残す