|

本開発により、当初目標としていた次の問題を解決することができた。
・記述性の向上:記述性の向上を狙って、ライブラリやsyntax sugarの導入、構文の全面的見直しなどを行った。また、サーバソケットが扱えるように、高階チャネルをサポートし、チャネルの送受信を行えるようにした。結果として、HTTPサーバのような典型的なサーバアプリケーションがPreccsを用いて簡単に記述できるようになった。
・最適化処理の実装:通信プロトコルの処理速度の向上を狙って、いくつかの最適化処理を導入した。まず、コンパイラの中間コード整理し、2レベルの中間コードを新たに導入した。各レベルで、それぞれの抽象度に見合った最適化処理を行うようにした。また、正規表現パターンマッチにおけるバックトラックのオーバヘッドをなくすために、決定性オートマトンによる処理を実装した。その他、実行時のデータ表現についても工夫を行った。これらの結果、従来と比較して5〜18倍程度の大幅な速度向上が得られた。
・通信プロトコルの実装・評価:Preccsの有効性を検証するために、いくつかの通信プロトコルの実装と評価を行った。簡易HTTPサーバを実装して、性能評価を行ったところ、Apacheと同等以上の処理性能が得られた。また、デモ用のアプリケーションとしてSIP+RTPプロトコルのサブセットを用いた簡易VoIPシステムをPreccsで実装した。これはCODECを含めてわずか600行程度で記述できた。
・その他の機能強化:その他、ソケット関連の典型的な処理などは、ライブラリとして切り出した。また、より強固なエラーチェック機能を実装した。これらの機能によって、より実用的なソフトウェアを容易に実装できるようになった。
これらの成果を次の学会において発表した。
[1] 服部健太:Preccs:インターネットのための通信プロトコル記述言語,第47回プログラミング・シンポジウム,2006.
[2] 服部健太,平木敬:通信プロトコルコンパイラPreccsにおける正規表現パターンマッチングの高速化,情報処理学会
プログラミング研究会(SWoPP2006),2006.
また、旧版をhttp://preccs.isp.jp/
にて公開中であるが、最新版を近日中に公開予定である。
|