• Search Research Projects
  • Search Researchers
  • How to Use
  1. Back to project page

2012 Fiscal Year Research-status Report

実用的ウェブアプリケーション開発を支援するサーバサイドJavaScript処理系

Research Project

Project/Area Number 23500038
Research InstitutionThe University of Electro-Communications

Principal Investigator

岩崎 英哉  電気通信大学, 情報理工学(系)研究科, 教授 (90203372)

Co-Investigator(Kenkyū-buntansha) 鵜川 始陽  電気通信大学, 情報理工学(系)研究科, 助教 (50423017)
中野 圭介  電気通信大学, 先端領域教育研究センター, 准教授 (30505839)
Keywordsプログラミング言語処理系 / 仮想機械 / 実行時最適化 / 外部関数インタフェース / 型システム
Research Abstract

本研究は,サーバ側で実用的な性能で動作する JavaScript 処理系を研究開発することにより,煩雑とされている Web アプリケーション開発のコストを大きく低減させ,広く一般の利用に供することを目的とする.3年計画の研究の2年目にあたる平成24年度は,JavaScript のサブセット (Tiny JavaScript) の仮想機械の性能向上およびライブラリの充実,JavaScript プログラムに対する静的解析のひとつである型推論に焦点を当てて研究を行い,以下の成果を得た.
1. 前年度に仕様を定めたJavascript向けのレジスタベースの仮想機械インタプリタの性能向上を目指し,実行時情報を利用した最適化の一つである Quickening と呼ばれる手法を仮想機械に実装した.Quickening を適用したのは,オペランドの型によって処理が分岐する命令とグローバル変数へのアクセスを行う命令の両者である.さらに,実験を通してその効果を確認した.
2. 上記仮想機械に対する C 言語等の外部関数インタフェースを定めて実装した.これにより,外部ライブラリの動的ロード,データ操作のインタフェースを提供することができ,JavaScriptから各種ライブラリが利用できるようになった.
3. JavaScript プログラムに対して,静的型検査を行う部分を明示的に指定し,型検査で型が定まらなかった部分については,実行時に型検査を行うような漸進的な型システムを考案した.具体的には,JavaScript を副作用のない言語に変換し,その変換先の言語に対する漸進的な型システムを定義し,静的に型付けられた部分に関しては,実行時型エラーが起こらないことを証明した.

Current Status of Research Progress
Current Status of Research Progress

2: Research has progressed on the whole more than it was originally planned.

Reason

本研究は,大きく分けて,仮想機械命令へのコンパイラの設計と開発と担当するグループ (グループA),実行時システムを含む仮想機械の設計と開発を担当するグループ (グループB),静的解析機構の設計と開発を担当するグループ (グループC) の,3グループによる研究体制を敷いている.現在までの各グループの達成度は次の通りである.
グループ A : JavaScript のサブセットである Tiny JavaScript に対する C 言語による Ahead-of-time (AOT) コンパイラの実装が完了している.今後,AOT コンパイラ本体の JavaScript フルセット化に加え,プログラム実行時に仮想機械命令列をネイティブコードに変換する Just-in-time (JIT) コンパイラの実装を急ぐ必要がある.
グループ B : 仮想機械のインタプリタ本体,Quickening のような実行時最適化機構,外部関数インタフェースの実装を完了した.基本的な部分の高速化に加え,実行時最適化を加え,順調な達成度と判断できる.実際,既存の JavaScript 処理系である SpiderMonkey と比較すると,一部のベンチマークを除き,実行時間が SpiferMonkey と同程度かそれよりも高速である.
グループ C : JavaScript プログラムに対する先進的な型システムを定義し,静的に型付けされた部分に対しては実行時エラーを起こさないという「望ましい」性質を理論的に証明した.理論的な考察は順調であるが,漸進的型システムの実装がまだ完了していないので,急ぐ必要がある.
以上を総合的に見ると,個別には更なる進展が望まれる部分もあるが,全体としてはおおむね順調と判断できる.

Strategy for Future Research Activity

今後も先に述べた3グループ体制は堅持しつつ研究を進めていく.
現在,フルセット JavaScript 向けに AOT および JIT コンパイラを実装しているところであるが,これらの設計や作業は,仮想機械インタプリタの内部構成とも密接にかかわってくる.そのため,コンパイラを担当するグループ A と,仮想機械を担当するグループ B の連携をより密にして,作業を進めていく.
また理論的側面を担当するグループ C は,平成24年度に研究を進めた漸進的型システムを,実際のコンパイラに組み込む作業を行う.ここでもグループ A とグループ C が密に連携して実装を進めるとともに,理論面へのフィードバックも行う.
平成25年度は研究の最終年度なので,コンパイラや仮想機械インタプリタの実装をさらに洗練させたものとし,JavaScript ベンチマークプログラムを用いた性能実験,およびサーバサイドのアプリケーション記述実験を行い,提案する処理系の完成度を高めていくことにも力を入れる.

Expenditure Plans for the Next FY Research Funding

該当なし

  • Research Products

    (4 results)

All Other

All Presentation (4 results)

  • [Presentation] ビットマップマーキングを利用したマークコンパクトごみ集めのJikes RVMへの実装

    • Author(s)
      森川 和哉, 鵜川 始陽, 岩崎 英哉
    • Organizer
      情報処理学会 第89回プログラミング研究会
    • Place of Presentation
      北海道小樽市
  • [Presentation] JavaScript処理系に対する外部関数インタフェースの設計及び実装

    • Author(s)
      谷村 明, 岩崎 英哉, 中野 圭介, 鵜川 始陽
    • Organizer
      日本ソフトウェア科学会 第15回プログラミングおよびプログラミング言語ワークショップ (PPL 2013)
    • Place of Presentation
      福島県会津若松市
  • [Presentation] JavaScript 仮想機械におけるQuickeningの効果

    • Author(s)
      高田 祥, 鵜川 始陽, 中野 圭介, 岩崎 英哉
    • Organizer
      日本ソフトウェア科学会 第15回プログラミングおよびプログラミング言語ワークショップ (PPL 2013)
    • Place of Presentation
      福島県会津若松市
  • [Presentation] ドメイン特化言語処理系実装支援ライブラリのメタプログラミングによる実装

    • Author(s)
      塩田 雅人, 岩崎 英哉
    • Organizer
      日本ソフトウェア科学会 第15回プログラミングおよびプログラミング言語ワークショップ (PPL 2013)
    • Place of Presentation
      福島県会津若松市

URL: 

Published: 2014-07-24  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi