PPLサマースクール2021
JavaScript処理系とChromeブラウザの実装技術」
 
日本ソフトウェア科学会 (JSSST) プログラミング論研究会 (PPL) 主催
日本ソフトウェア科学会第38回大会 併設企画
 
講師:鵜川 始陽(東京大学情報理工学系研究科)
講師:中川 博貴(グーグル合同会社)
講師:服部 慶士(グーグル合同会社)
講師:椎野 裕樹(グーグル合同会社)
 
2021年8月31日(火) 13時-18時(予定)
オンライン開催
 

ニュース

  • Web ページを公開しました (6/29)
  • 無事終了しました。講演資料へのリンクを追記しました (9/1)

概要

JavaScript は世界でもっとも利用されている重要なプログラミング言語の一つであり、ウェブブラウザで利用可能なほぼ唯一のプログラミング言語という特徴から、ウェブアプリケーション開発で広く利用されています。

この重要性から、JavaScript処理系の性能改善に関する研究開発が活発に行われてきました。JavaScriptの性能改善は、動的な言語ながらの困難さも知られています。今年のサマースクールでは、鵜川さん(東京大学)にJavaScriptの実装技術について、その困難さをどう克服するか、基本的なところからご紹介いただきます。

JavaScriptを動作させるソフトウェアとして、Google が開発を主導するV8処理系、およびそれを利用するGoogle Chrome(以降Chrome)ブラウザが著名です。本サマースクールでは、実際にChromeブラウザを開発しているグーグル合同会社の中川さん、服部さん、椎野さんに、Chromeブラウザに関する実装技術について、開発者だからこそできるご講演をいただきます。

講師の皆さんは、実際に手を動かして言語処理系やブラウザという複雑なソフトウェアを開発している方々です。言語処理系に興味があり作ってみたいと思うすべての方にお勧めしたい内容です。

プログラム(予定)

  • 13:10 オープニング
  • 13:30 講演1: JavaScriptエンジンの実装技術(鵜川 始陽(東京大学情報理工学系研究科))
  • 14:30 休憩
  • 14:40 講演2:JavaScript 処理系 V8 とレンダリングエンジン Blink のアーキテクチャ(中川 博貴(グーグル合同会社))
  • 15:40 休憩
  • 15:50 講演3:C++とJSを跨ぐクロスコンポーネントガベージコレクタ(服部 慶士(グーグル合同会社))
  • 16:35 休憩
  • 16:45 講演4:Web IDL(仕様記述言語)と(半)自動実装コード生成(椎野 裕樹(グーグル合同会社))
  • 17:30 全体の Q&A セッション
  • 18:00 クロージング

講演1: JavaScriptエンジンの実装技術

JavaScript言語の特徴を概観した上で、それを実行するためのソフトウェアであるJavaScriptエンジンの実現方法や、動的言語特有の最適化について解説する。動的言語の最適化の基本的アイデアはJavaScriptよりも古い。基本的なアイデアを解説したうえで、最近の研究も紹介する。

講演資料

講師:鵜川 始陽(東京大学情報理工学系研究科)

京都大学卒業.京都大学特任助手、電気通信大学助教、高知工科大学准教授を経て、現在、東京大学准教授。ガーベージコレクションを中心としたマネージド言語の処理系に関する研究に従事。博士(情報学)。

講演2:JavaScript 処理系 V8 とレンダリングエンジン Blink のアーキテクチャ

ウェブブラウザはアプリケーションの実行環境として広く利用されるようになりました。その中核をなすのが JavaScript 処理系とレンダリングエンジンです。Chrome ブラウザでは JavaScript 処理系 V8 とレンダリングエンジン Blink を組み込んでいます。本講演では Chrome がウェブ特有の実行モデルやセキュリティモデルを守りながらどのように V8 と Blink を協調させているのか、その歴史やアーキテクチャを紹介します。

講演資料

講師:中川 博貴(グーグル合同会社)

Chrome ブラウザを開発しているソフトウェアエンジニアです。ブラウザをより高機能なアプリケーションプラットフォームにするための API (ストレージやワーカーなど) やページ読み込みを素早く効率的に行うローディング機構の開発などを担当してきました。

講演3:C++とJSを跨ぐクロスコンポーネントガベージコレクタ

ChromeのレンダリングエンジンBlinkはC++で実装され、元々は参照カウントによってメモリ管理がされていました。私達は9年前からガベージコレクションへの移行を行い、現在はC++とJSを跨ぐオブジェクトグラフに対しても、リーク等の心配のない、正確なGCを行えるクロスコンポーネントガベージコレクタを実装しました。オブジェクトグラフの増大に対応するために実装した高速化や、C++とGCを共存させるための工夫なども交えてこれを紹介します。

講演資料

講師:服部 慶士(グーグル合同会社)

Chrome ブラウザチームのソフトウェアエンジニアとして 主にメモリ管理に関する開発を担当。

講演4:Web IDL(仕様記述言語)と(半)自動実装コード生成

HTMLDOMといったウェブ規格はWeb IDLという仕様記述言語を使って定義されています()。Web IDLはあくまで仕様を記述する言語であり、JavaScriptのような実装のための言語と異なり、プログラムを実装することはできません。Chromeブラウザでは、このWeb IDLからC++実装コードを半自動生成する仕組み(コードジェネレータ)を導入することで、実装の負担を減らしています。本講演ではコードジェネレータの作成、利用を通して得られた知見を共有します。またChromeブラウザにおけるDSLとしてのWeb IDL / コードジェネレータを紹介します。

講演資料

講師:椎野 裕樹(グーグル合同会社)

Chromeブラウザの開発をしているソフトウェアエンジニアです。ブラウザ間のAPI互換性を向上させたり、ウェブ標準により準拠させる仕事をしています。最近Web IDLコードジェネレータを作りました。

参加費・参加申し込み

PPLサマースクールの参加費は以下の通りです.

  • 学生会員, 学生非会員, 一般会員:無料
  • 一般非会員1000円

参加申し込みは日本ソフトウェア科学会第38回大会 参加申し込みページ からお願いします。PPLサマースクール2021 だけの登録も可能です。

  • 申し込みが完了すると、「参加登録受付メール」が送られます。「参加登録受付メール」に、「PPLサマースクール2021 「JavaScript処理系とChromeブラウザの実装技術」参加のご案内」ページの URL を含んでいるので、オンラインでの参加方法についてはそちらをご参照ください。もし、その URL がわからない、という場合は、幹事までご確認ください。
  • 参加費が0円の場合(大会には参加されない場合)は、決済は不要です。「参加登録受付メール」が届いた時点で登録完了になります。
  • 「参加のご案内」ページでは、事前の質問も受け付けておりますので、どうぞこの機会に聞いておきたいことをお寄せください。講演者の方が心づもりができます。

受講者へのご連絡

問い合わせ先

PPLサマースクール2021 幹事
笹田 耕一(クックパッド)
E-mail: ko1[at]cookpad.com

過去のサマースクール