ECMAScript
出典: Wikipedio
|
Template:Infobox プログラミング言語 Template: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規格化している。
目次 |
バージョン
ECMA-262には3つのエディションが公開されている。 3rd Editionは条件付きで『ECMAScript』として知られている。『5th Edition』およびその将来型は『Harmony』というコードネームが付けられ、現在策定中である。
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ライブラリのサポート、より完全なオブジェクトの属性のリフレクション<ref>JavaScriptの変更, Part 1: EcmaScript 5</ref> | Pratap Lakshman, Allen Wirfs-Brock |
Harmony | 策定中 | 複数の新たな概念および言語機能 - 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<ref>Mozillaは1.8 Beta 1以降でE4X をサポートしている。</ref></sup> |
Internet Explorer | JScript | 5.8 | ECMA-262 3rd 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草案 <ref>2001年頃のMicrosoftの草案であり、独自に開発を進めたもので、現在のECMAScript 4草案とは大きく異なる。</ref> |
Adobe Flash | ActionScript | 3 | ECMA-262 4th草案 <ref>2001年頃のNetscapeの草案に近く、現在のECMAScript 4草案のサブセットに近い。</ref> 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 |
<references/>
ECMAScript 4
Template: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 を進めることとなった<ref>https://mail.mozilla.org/pipermail/es-discuss/2008-August/003400.html</ref>。仕様は、http://www.ecmascript.org/docs.php にて公開されている。
以下の機能追加を予定していた。
- 型に関する機能が増え、大規模・大人数開発のための機能が増えている。
- 単純なプログラムから、より巨大で信頼性の高い大規模プログラムへの「進化的プログラミング」のための機能を提供する。
- ECMAScript 3 とは、少々下位互換性がない。ActionScript 3 のおおかた上位互換であるが、これも一部互換性がない。
脚注
外部リンク
- ECMAScript
- ECMAScript言語仕様
- Standard ECMA-262 ECMAScript Language Specification 3rd edition (December 1999)
- Standard ECMA-290 ECMAScript Components Specification (June 1999)
- Standard ECMA-327 ECMAScript 3rd Edition Compact Profile (June 2001)
- Standard ECMA-357 ECMAScript for XML (E4X) Specification (June 2004)
- Under Translation of ECMA-262 3rd Edition(日本語訳)
- ECMAScript実装
- SpiderMonkey[1] - C - Firefox/Mozillaブラウザで使われている
- KJS - C++ - KDEのKonquerorブラウザで使われている
- JavaScriptCore - C++ - MAC OS XのSafariブラウザやdashboardで使われている。KJSベース
- 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 - JavaScriptca:ECMAScript
da:ECMAScript en:ECMAScript es:ECMAScript et:ECMAScript fr:ECMAScript hu:ECMAScript ko:ECMA스크립트 nl:ECMAScript no:ECMAScript pl:ECMAScript pt:ECMAScript ru:ECMAScript sv:Ecmascript th:ECMAScript uk:ECMAScript zh:ECMAScript