ECMAScript
テンプレート:Infobox プログラミング言語 テンプレート:Infobox file format
ECMAScript(エクマスクリプト)は、Ecma Internationalによって標準化されたスクリプト言語である。実装ごとの互換性が低い JavaScript 類(特に JScript)の標準を定めたものである。現在の最新バージョンは5 (5th edition)。最初のバージョンのリリースは2009年12月である。関連規格の一つである ECMAScript for XML (E4X) では、ネイティブで XML がサポートされている。
Ecma Internationalのほか、ISO/IEC JTC 1からもISO/IEC 16262として標準化されている。日本もJIS X 3060としてJIS規格化している。
バージョン
Edition | 公開日 | 以前のバージョンとの違い | 策定者 |
---|---|---|---|
1 | 1997年6月 | First edition | Guy L. Steele, Jr. |
2 | 1998年6月 | Editionとしての仕様はそのままであり、ISO/IEC 16262 international standardに完全な対応をした | Mike Cowlishaw |
3 | 1999年12月 | 正規表現、よりよい文字列の取り扱い、新しいコントロール構文、try/catch例外処理、より厳格なエラー処理、数字のその他の書式化フォーマット | Mike Cowlishaw |
4 | 放棄 | 4th Editionは放棄された。言語の複雑化に関する政治的な差異による。いくつかの成果は5thの基礎として採用され、いくらかはECMAScript Harmonyの基礎となっている。 | |
5 | 2009年12月 | "strictモード"、初期化時に発生しがちなエラーを回避するための追加仕様の追加。多くの曖昧な部分、および仕様に準拠しつつも現実世界の実装の融通の利く振る舞いを明確にした。いくらかの新機能、getterやsetter、JSONライブラリのサポート、より完全なオブジェクトの属性のリフレクション[1] | Pratap Lakshman, Allen Wirfs-Brock |
5.1 | 2011年6月 | ||
Harmony (6) | 策定中 | 複数の新たな概念および言語機能 - Future development (英文)を参照 |
2004年6月に、Ecma InternationalはECMA-357 standardを公開した。ECMAScriptの拡張であり、 E4Xとして知られるものである (ECMAScript for XML).
EcmaはECMAScriptのための"Compact Profile"も定義した — ES-CP、あるいはECMA 327として知られる — リソースの厳しいデバイス用にデザインされている。ECMAScript のいくつかの動的な機能(『eval』関数など)はオプションにされている。これにより、処理系はプログラムの振る舞いに対してより多くの仮定ができるようになり、その結果、より良いパフォーマンス・トレードオフを実行時に得ることができるようになる。 HD DVD standardはECMAScript Compact Profileに準拠し、完全なECMAScriptの支援をより少ないメモリのデバイスで実行できるよう採用している。
ECMAScriptの方言およびその呼称
ECMAScript は、ウェブブラウザをはじめとする多くのアプリケーションでサポートされている。DOM との連携はドキュメントの操作を可能にする。
アプリケーション | 呼称 | 最新バージョン | 対応するECMAScriptリビジョン |
---|---|---|---|
Mozilla およびその派生品 | JavaScript | 1.8 | ECMA-262 3rd edition ECMA-357[呼称 1]</sup> |
Internet Explorer | JScript | 5.8 | ECMA-262 3rd edition |
JScript (Chakra) | 9.0 | ECMA-262 5th edition | |
Opera | ECMAScript, with extensions to both JavaScript and JScript | ECMA-262 3rd edition | |
Konqueror(KJS) | JavaScript | ECMA-262 3rd edition | |
Safari(JSCore) | JavaScript | ECMA-262 3rd edition | |
iCab | InScript | ECMA-262 3rd edition | |
Microsoft .NET | JScript .NET | 8.0 | ECMA-262 4th草案 [呼称 2] |
Adobe Flash | ActionScript | 3 | ECMA-262 4th草案 [呼称 3] ECMA-357 |
Adobe Acrobat | JavaScript | 1.5 | ECMA-262 3rd edition |
Adobe Creative Suite | ExtendScript | ECMA-262 3rd edition | |
DMDScript | DMDScript | ECMA-262 3rd edition | |
Qt | QtScript | ECMA-262 3rd edition | |
Max/MSP | JavaScript | 1.5 | ECMA-262 3rd edition |
Google Chrome | JavaScript | ECMA-262 3rd edition |
- 元の位置に戻る ↑ Mozillaは1.8 Beta 1以降でE4X をサポートしている。
- 元の位置に戻る ↑ 2001年頃のMicrosoftの草案であり、独自に開発を進めたもので、現在のECMAScript 4草案とは大きく異なる。
- 元の位置に戻る ↑ 2001年頃のNetscapeの草案に近く、現在のECMAScript 4草案のサブセットに近い。
ECMAScript 4
テンプレート:See also ECMAScript 4 は過去2回仕様作成が挑戦されたが、仕様がまとまらず、失敗に終わっている。
1回目
2000年~2003年ごろ行われた。主に、旧Netscape社とMicrosoft社によって行われたが、意見がまとまらずに、打ち切りとなった。この時の案は ActionScript へと引き継がれた。
- http://www.mozilla.org/js/language/old-es4/ - 昔のNetscape草案
2回目
2007年~2008年ごろ、2回目の仕様作成が行われた。大きく機能を追加される予定であったが、意見がまとまらず、2008年8月13日に、小規模の改善にとどまる、ECMAScript 3.1 を進めることとなった[2]。仕様は、http://www.ecmascript.org/docs.php にて公開されている。
以下のような予定があった。
- 大規模・大人数開発のための機能の追加テンプレート:要出典
- 型に関する機能の追加テンプレート:要出典
- ジェネリックプログラミングの機能の追加
- ECMAScript 3 が下位互換だが、互換でない仕様が一部に入るテンプレート:要出典
- ActionScript 3 の上位互換だが、互換でない仕様が一部に入るテンプレート:要出典
脚注
外部リンク
- ECMAScript
- ECMAScript言語仕様
- ECMAScript実装
- SpiderMonkey[1] - C - Firefox/Mozillaブラウザで使われている
- KJS - C++ - KDEのKonquerorブラウザで使われている
- JavaScriptCore - C++ - MAC OS XのSafariブラウザやdashboardで使われている。KJSベース
- Google V8 JavaScript Engine - C++ - Google Chromeブラウザで使われている
- NJS - C
- SEE - Simple ECMAScript Engine - C
- ixlib - C++
- QSA - Qt Script for Applications - C++
- DMDScript - C++/D
- DMonkey - Delphi
- Rhino[2] - Java
- FESI - Free EcmaScript Interpreter - Java
- Scriptonite - Java
- xwt - Java
- JANET - Java
- Epimetheus - C++ - Mozillaプロジェクトによる以前のECMAScript Edition 4草案の実装
- Narcissus - JavaScript