Parse (構文解析)

構文解析 (Parsing) とは、プログラムを解釈し、例えばブラウザー内の JavaScript エンジンなどの実行環境で、実際に実行できる内部形式に変換することを意味します。

ブラウザーは HTML を構文解析して DOM ツリーに変換します。 HTML の構文解析処理はトークン化とツリーの構築を含みます。 HTML トークンは、属性の名前や値と同じように、開始タグと終了タグを含みます。文書が適切に構造化されていれば、その構文解析処理は単純で速くなります。パーサーはトークン化された入力内容を構文解析して文書に変換し、文書ツリーを作り上げます。

HTML パーサーが画像のようなブロックされないリソースを見つけた場合、ブラウザーはそれらのリソースを要求し、構文解析を続けます。 CSS ファイルに遭遇した場合は構文解析処理を続けることができますが、 <script> タグ、特に async または defer 属性がないものの場合はレンダリングがブロックされ、 HTML の構文解析処理が停止します。

ブラウザーは CSS スタイルに遭遇した場合、その文字列を構文解析して CSS Object Model (または CSSOM)に変換し、そのデータ構造をレイアウトの整形と描画に使用します。それからブラウザーは、これら両方のデータ構造から、コンテンツを画面に描画するためのレンダリングツリーを生成します。 JavaScript も同様にダウンロードされ、構文解析され、そして実行されます。

JavaScript では、これはコンパイル時または、メソッドの呼び出し中など、パーサーが呼び出されるたびに行われます。

関連情報