解析表現文法とSchemeマクロ展開器を用いたJavaScript向けHygienic構文マクロシステムの実装
スポンサーリンク
概要
- 論文の詳細を見る
本稿は,JavaScriptの構文拡張を可能にするHygienic構文マクロシステムの実装技法を提案する.Hygienic構文マクロシステムは,マクロ展開の前後で変数の束縛や参照関係を破壊しない安全な構文マクロシステムである.このHygienic構文マクロシステムを利用することによって,プログラミング言語の構文の自由な拡張が可能になる.しかし,Hygienic構文マクロシステムは,S式という一貫した構文構造を持つSchemeには標準で組み込まれているものの,その他の一般的なプログラミング言語に実装された例はほとんどない.本稿では,まず,汎用的なプログラミング言語におけるHygienic構文マクロシステムの実装の難しさを示し,次に,本研究が提案するJavaScript向けHygienic構文マクロシステムの実装技法について述べる.提案する実装技法では,マクロ構文の追加によって拡張されるJavaScript構文を解析するための拡張可能なパーザの実現に解析表現文法を用い,マクロ展開は既存のSchemeマクロ展開器に委ねる.マクロ展開においては,マクロを含むJavaScriptコードをそれと等価なS式へと変換し,Schemeマクロ展開器で展開を行った後に,JavaScriptコードに逆変換するという言語間相互変換を行う.これらの工夫によりわずか2,000行弱のコンパクトな実装によってJavaScriptに対する記述力が高いHygienic構文マクロシステムを実現できた.
- 2013-08-29
著者
-
佐々木 晃
法政大学情報科学部
-
脇田 建
東京工業大学大学院情報理工学研究科数理・計算科学専攻
-
脇田 建
東京工業大学
-
甫水 佳奈子
東京工業大学大学院情報理工学研究科数理・計算科学専攻|現在,三菱電機株式会社
関連論文
- 彩色意図にもとづく色覚障害者のための再配色システム(セッション2:インタラクションデザイン:理論と実践(2))
- 属性文法に基づくテストプログラム生成器の設計と実装
- 仮想機械の仕様記述に基づくバイトコードインタプリタ生成系
- 仮想機械の仕様記述に基づくバイトコードインタプリタ生成系
- GUIコンポーネントに基づく視覚的言語に対するエディタの自動生成
- D-041 大規模社会ネットワークからのクラスタ構造の抽出(D分野:データベース)
- ドメイン特化型言語のための開発支援手法
- ドメイン特化型言語のためのビジュアルエディタの定式化
- ドメイン特化型言語に対するエディタの自動生成手法
- LA-005 移植可能なSuperoptimizerによる最適な命令パターンの自動生成とそのパターンによる覗き穴最適化(モデル・アルゴリズム・プログラミング)
- システムXEROにおける高水準データ定義/操作言語
- 一級継続の並行言語への導入
- Java言語上の細粒度マルチスレッドフレームワークにおける問題点の考察
- メモリ管理の性能評価基盤
- 属性文法の系統的デバッグ法におけるバグ絞り込みの効率化(プログラミングおよびプログラミング言語)
- アセンブリ言語上でのプログラム特化
- 10-217 東京工業大学におけるOCWの活用(口頭発表論文,オーガナイズドセッション「オープンコースウエアとその活用」-I)
- O-011 大規模スパムフィルタと実験環境の構築手法の提案(O分野:情報システム)
- 並列オブジェクト指向言語への安全な継承の導入について
- OOPSLA '89に参加して
- POPL2002/PEPM2002/PADL2002報告(プログラミング及びプログラミング言語)
- 属性文法に基づくグラフィカルユーザインタフェース生成系とその評価
- 仮想機械の仕様記述に基づくバイトコードインタプリタ生成系
- SSA形式を利用したPredicated Execution向け命令スケジューリング手法
- SSA形式を利用したPredicated Execution向け命令スケジューリング手法
- バッファ溢れ攻撃とその防御(コンピュータセキュリティシリーズ(1))
- メモリ管理機能のモジュラーかつ効率的な実装手法
- ウィルスをはじめとする悪性ソフトウエア
- ウィルスをはじめとする悪性ソフトウエア
- Java, C#の次に来るのは?(インタラクティブ・エッセイ)
- 属性文法に対するデバッガ
- 循環属性文法に基づく生成系Junについて
- 属性文法に対するデバッグ方式の構想
- 木属性文法とGUI生成系を利用したデバッガの作成
- 異機種分散環境上でのDcamlバイトコードコンパイラの設計と実現
- 異機種分散環境上でのDcamlネイティブコンパイラの設計と実現
- 異機種分散環境上のアプリケーション開発環境Dcamlシステムの構想
- 並行言語Harmony/2とその一級継続機構
- 東日本大震災 危機発生時の対応について考える:9.危機に試されるスマートフォンのアプリケーション
- 並行言語Harmony/2とその一級継続機構
- データベース指向OS XEROのデータベースシステム実現モデル
- データベース処理を指向した分散OS XEROの永続オブジェクト管理
- データベース処理を指向した分散オペレーティング・システムXEROの設計
- プログラミング言語処理系SqueakのSHARP Zaurusへの移植とその評価
- 低レベル命令セット仮想計算機を利用した混成環境におけるプロセス移送
- 高速実行可能な低レベル命令セット仮想計算機の設計
- 「情報処理学会論文誌 : プログラミング」の編集について
- 多言語に対応した自己記述をもったバイナリデータ形式
- 並行トランザクション機構の実装
- Actorモデルにもとづいた非同期並列プログラミング言語ActGPUのコンパイラの実装とその評価
- Actorモデルにもとづいた非同期並列プログラミング言語ActGPUのコンパイラの実装とその評価
- 解析表現文法とSchemeマクロ展開器を用いたJavaScript向けHygienic構文マクロシステムの実装
- 動機づけと達成度を保証するためのプログラミング入門科目の設計