Naoki Kurosawa
n-kur****@nri*****
2003年 12月 22日 (月) 17:37:55 JST
黒澤です。 > 基本的な言語機能の処理は自前じゃなくて > 他の処理系使った方が楽じゃないですか? えぇ。要件を満たすのがあれば。 > 「ちと無理なんですよねぇ」というのは > どんな感じで無理っぽかったんでしょうか? > 興味のある所です。(Java からだから?) 普通のプログラミング言語の場合、 その言語によって記述された処理を行うべく起動されたプロセス的なものが、 「記述された処理を能動的に全部実行」し、通常それを実行しているマシンを 落とすとそのプロセスも消えます。 ここで実現したいのは、 1.記述された処理の一部を別マシンで処理すること 2.記述された処理の一部を人力(人間からの入力をトリガとして処理が実行 される)で処理すること 3.別マシン、あるいは人力で処理される部分は、普通のプログラミング言語で 想定されるようなタイムスケール(何分とか何秒とか)ではなく、 何日とか、かかってしまうかもしれない。 4.マシンを落としてもその実行状態が保存されるようにしたい。 (マシンを再起動すると、落としたときの実行状態から再開するようにしたい) です。 1番を実現するべく考えられた言語もあります(ありそう)。 (Javaで普通に書いて、なんかツールを通すと並列実行可能な部分を切り出して 別プログラムにし、グリッドで処理するモノとか) が、Robocodeを実行するのは無理そうだなと。 2番を念頭に置いたプログラミング言語はさすがになさそうです。 また、3番のように何日も待ち状態になってしまう場合、 普通のプログラミング言語のプロセスのように、 待ち状態のプロセスがマシン上でメモリなどのリソースを食い続けると、 何万プロセスも同時実行しなければならないかもしれない場合、 (Robocodeのバトルを実行するときを想定) ちとリソースがもったいないです。 さらに、4番を念頭に置いたプログラミング言語、というか処理系も ないですよね。 プロセス記述例として書いてみたらプログラミング言語っぽくなってしまった ものの、上の1〜4の要件を満たすような処理系を考えて、 その処理記述方法を考えてみたらプログラミング言語っぽくなってしまった というだけで、 言語処理系を作ること自体が目的じゃないんです。 処理記述方法が一般的プログラミング言語に似ているのであれば、 例えばその記述はJavaScript(あるいはJavaScriptもどき)にして、 そのJavaScriptもどきを実行するエンジンが上記1〜4の要件を 満たすようにしちゃうのもありかな、と思ったわけです。 もちろん、言語処理エンジン作ることになったからといって、 絶対イチから自分たちで全部作る、というわけではないので、 他の処理系をベースにすることもありえます。 -- Naoki Kurosawa <naoki_kuros****@ybb*****>, <n-kur****@nri*****> Sharpen up JAVA skills. - Robocode Rumble-JP Project - http://rumble-jp.sourceforge.jp/ http://robocode.ddo.jp/rumblejp/