«前の日記(2007-01-24) 最新 次の日記(2007-01-31)» 編集

netail.net

自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.

最近のお知らせ (古いものはこちら)


2007-01-29 [長年日記]

_ [論文] プログラムの自己進化のためのアーキテクチャ

個人的には,プログラムが自己進化する必要は今のところないと思いますが,いちおう夢がある(?)話なので取り上げてみます.

Ming-Yang Hou, Xi-Yang Liu, He-Hui Liu: Fifi: An Architecture to Realize Self-evolving of Java Program. [ACM site]

Proceedings of SEAMS 2006, p.93, Shanghai, China, May 2006.

1ページの Research Summary で,自己進化型プログラムのためのフレームワークを作ってます,というものです.

このフレームワークでは,JVMTI を使って相互通信する2つの JVM を同時実行し,1つをプログラム実行用,1つを監視システムとします.そして,監視システム側は,プログラム実行時のイベント列に応じてプログラム改変が必要かどうかを判定し,改変の指令をプログラム実行用JVMに送ります(改変されるのは実行プログラムのみで,監視用のコード部分は書き換えません).

仕組みとしては,今の Java バイトコード書き換えツールを駆使すればそれなりに実現できそうですし,コードの最適化とか難読化にも使えそうです.実行中のプログラムにパッチを当てるという話に似ていますが,この研究の場合,監視プログラムが,機能改変用のパッチを自動生成するという違いがあります.

自己進化の「コードを書き換えるルールを書く」という観点だけを見ると,静的な操作,たとえばリファクタリング操作をスクリプト言語で書くとか,sed でコードをまとめて変更するいったものであれば,あまり変な気はしません.

プログラムの実行を監視して,随時,動的に書き換える必要がある機能変更ってどんなもの,といって何も思いつかないのが,怪しいと感じる要因かもしれません.原稿では「捕まえられない例外が投げられたらtry-catchブロックの自動追加(エラーを無視して実行を再開する)」というものだけが例として載っています.

お名前:
E-mail:
右の画像に書かれている文字列を入力してください:
コメント: