- 著者
-
逢坂 美冬
菊地 大介
上野 雄大
大堀 淳
佐々木 加奈子
- 雑誌
- 情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
- 巻号頁・発行日
- vol.8, no.4, pp.17, 2015-12-04
今日広く用いられているWebアプリケーションフレームワークは,プログラムの自動生成やファイル名の命名規約など,プログラミング言語の範囲を超えた記述を要求するものが多い.この方法は,典型的なアプリケーションの開発において生産性が高いと考えられている一方,実行されるコードの全体像を把握することが難しく,フレームワークの想定から外れた,細やかな制御を必要とするアプリケーションを書くことは難しい.この問題を解決する1つの方法は,Webアプリケーションを構成するすべての要素がプログラミング言語の概念で網羅されるようにアプリケーションを構築することである.関数型言語は,高階関数やモジュール言語などの機能による高い記述力を持ち,このようなWebアプリケーション開発に適していると期待できる.従来の関数型言語では,Webアプリケーション開発に必須となる,データベースへのシームレスなアクセスやマルチコアCPUへの対応が不十分なため,言語単体でのWebアプリケーション開発は難しい.本発表では,SML#を用いた試作を通じて,関数型言語による高水準なWebアプリケーション開発の可能性を分析し,単独プロセスのWebサーバーとして動作するユーザプログラムとしてWebアプリケーションを開発する枠組みを提案する.提案手法では,HTTPサーバー機能を含む,サーバーサイドプログラミングに含まれるすべての要素はSML#のプログラムとして構築される.その構成から,SML#が持つCやデータベースとの連携により,データベースを含めた高水準なプログラミングや,マルチスレッドへのスケールアップ性は,自然に得られる.さらに本発表では,クライアントサイドプログラミングや,HTMLのリンクをユーザがたどることによる状態遷移など,本手法とクライアントとの連携の可能性について論じる.