Naoki Kurosawa
n-kur****@nri*****
2003年 12月 22日 (月) 15:16:07 JST
黒澤です。 高田さんと直接話していた話題をMLに移します。 M.Takata wrote: > >これ、ほんとプログラム言語って感じですね。。。 Kurosawa wrote: > 既存のプログラミング言語でなんとかならないかと > 考えてみたりもしましたが、ちと無理なんですよねぇ。 > > JavaScriptのエンジンでも作ればいいのかな? M.Takata wrote: > > 既存のプログラミング言語でなんとかならないかと > > 考えてみたりもしましたが、ちと無理なんですよねぇ。 > > うーん。プログラミング言語に似るのって > 1長1短な気がしません?! > > プログラマーには、ピンと来るんだけどみたいな。。。 確かにそうですねぇ。 ただ、今のところこれを記述するのは開発者ですね。 ワークフローエンジンはGUIで記述するので、 こいつにもGUIを付ければいいかというと、 whileだのfunctionだのという存在がプログラミング言語的で、 どうだろうなぁ、という感じですね。 ワークフローエンジンの記述言語を良く見たわけではないんですが、 どうせループを書こうと思ったら、きっとwhileとかfor的な記述をしますよね。 ちょっと変えて、for eachになるぐらいなもんでしょう。 別な点としては、 世にあるワークフローエンジンやバッチコントロールシステムでは、 並列に動くフローの記述がもっと簡単にできるようです。 1つのフロー定義に、マルチスレッド的に分岐・同時実行されるフローが 書けます。 このシステムでは、いちいち別プロセスを起動しなくてはなりません。 こうしたのは、一つのプロセス内で複数のフローを記述できるようにするには、 マルチスレッド的な動きを実現しなければならず、きっと複雑になっちゃう だろうなと思うのと、 そのプロセス記述ってどう書けばいいかが難しいなと思ったからです。 #BPEL4WSの同時実行記述なんか、ものすごく理解しづらいです。 #アクティビティとアクティビティのリンク(依存関係)を定義し、 #依存関係が満たされた(先行アクティビティが終了した)アクティビティが #起動する、という具合なんですが、 #ぱっと見何本のフローに分かれるかなんて読み取れません。 http://www-6.ibm.com/jp/developerworks/webservices/030509/j_ws-bpelcol5.html > >JavaScriptのエンジンでも作ればいいのかな? > > すごいことまで考えてますねぇ|_-) こんにち、言語処理エンジンは、動くものを作るだけならそんなに難しくない んです。 言語仕様をBNFとかで書いて、JavaCCに処理させると 構文解析してオブジェクト・ツリーを作成するパーサを出力してくれたりとか。 そこまでできれば実行する部分はそれほどでもありませんし。 最適化だのなんだの考え出すとそれはそれは奥深い世界になっていきますけど。 -- 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/