読者です 読者をやめる 読者になる 読者になる

セカイ内存在証明

それは多分、単なる思い付き

一人ECMA-262 6th Edition読書会、その1(「Introduction」から「4. Overview」まで)

夏も終わりに近付いているので、ECMAScriptの復習と予習を兼ねてES6読書会をしたいと思います。

ちなみに、読んでいるのは現時点での最新版である「Draft August 24, 2014」です。

ECMAScript Language Specification ECMA-262 6th Edition – DRAFT

Introduction

妙に長い最初の文章。主にECMAScriptの標準化の歴史が綴られている。

ブレンダン・アイクがNetscape社でJavaScript(当時はMochaかな?)を作った話から始まったりして、結構興味深い話だった。

とは言っても、仕様だけに興味がある人間は別にすっとばしてもいいと思う。

1. Scope

This Standard defines the ECMAScript scripting language.

「この標準はECMAScriptというスクリプト言語を定めています。」

それだけ。

2. Conformance

規格を満たす実装とはどのようなことか、について

A conforming implementation of ECMAScript must

から始まる文章で延々と綴られています。仕様厨しか興味ない。

3. Normative references

参照する規格の一覧、でいいのかな?

浮動小数点の規格であるIEEE 754と、ISO/IEC 10646などのUnicode関連の規格を参照している模様。

‥‥まあ、ぶっちゃけここまでは前座みたいなものですね。

4. Overview

というわけでここからが本番です(何が?)。

This section contains a non-normative overview of the ECMAScript language.

「この章は参考的なECMAScript言語の外観を含みます。」

つまりはECMAScriptってどういう言語、っていうのを簡単に説明する章ってこと。

ECMAScriptオブジェクト指向スクリプト言語で、スクリプト言語ってのはこういうもので、ECMAScriptは元々Webスクリプト言語としてデザインされて‥‥。という感じの内容です。大したことは書いてありません。

そして、C,Java,Self,Schemeの影響を受けた、なんて書いてあります。

また、このあとは4つの副章に分かれます。

4.1. Web Scripting

クライアントサイドでもサーバーサイドでも、環境とか目的こそ違うけどECMAScriptの実行環境を供給するよ、って話(超適当)。

何かどうでもいい気がしたので流し読みした。

4.2. ECMAScript Overview

「4. Overview」を言い直して、もっと具体的な内容に触れるようにした部分。

焼き増しみたいな感じでそこまで面白くないんだけど‥‥。

さりげなく、

A primitive value is a member of one of the following built-in types: Undefined, Null, Boolean, Number, Symbol and String;

なんて書いてある。「Symbol」というプリミティブ型が追加されているみたいです!

4.2.1. Objects

オブジェクトについて、特にプロトタイプチェーンについて説明している。

図とかもあるんだけど‥‥、これ、ぶっちゃけ分かりやすいか?

4.2.2. The Strict Variant of ECMAScript

Strictモードについて書いてある感じ。

4.3. Terms and definitions

「用語と定義」

後々も使われることになる用語の一覧です。一通り目を通しておくといいと思います。

4.4. Organization of This Specification

この仕様がどんな組織に定められたか、って話。

どうしてこんな場所にあるんだろう‥‥?


そんなわけでとりあえず「Introduction」から「4. Overview」まででした。Chrome拡張で英単語の意味を選択するだけで表示できるようにしているので結構楽に読めた気がします。

ただ、今回読んだ部分はまだ概念的な話ばかりで、実際の仕様らしい部分ほとんどありませんでした。

次回は「5. Notational Conventions」「6. ECMAScript Data Types and Values」あたりを読み進めたいと思っています。