1

手始めに、私がやろうとしていることを皆さんに知らせなければなりません。私が取り組んでいるプロジェクトには、カスタムスクリプトシステムを構築する必要があるという要件があります。これは、アプリケーションを使用しているプログラマー以外の人が使用するものであり、可能な限り自然言語に近いものにする必要があります。たとえば、ユーザーがカスタムシミュレーションを実行して出力をプロットする必要がある場合、ユーザーが作成するコードは次のようになります。

変数input1は10です。変数input2は20です。

変数value1はAVERAGE(input1、input2);です。

変数condition1はtrueです。condition1の場合、PLOT(value1);

あまり意味がないかもしれませんが、それは単なる例です。AVERAGEとPLOTは私たちが定義したい関数であり、それらを変更したり、実際にそれらがどのように機能するかを確認したりすることは許可されるべきではありません。このようなことはDLRで可能ですか?そうでない場合は、他にどのようなオプションがありますか(ANTRLから始めて文法を定義してから次に進みますか?)将来的には、これもXBAPとWPFを使用して実行する必要がある可能性があるため、これも考慮する必要がありますが、dlrとxbapについてはあまり見ていません。ありがとう、そしてうまくいけば、これはすべて理にかなっています。


Luaは、彼らがすでに慣れているものとは異なるため、オプションではありません。

ラルフ、それは反応的になり、正直なところ、結果がユーザーに返される時間枠は、2週間または1か月(非常に複雑な数学関数)までずっと1/100秒である可能性があります。

基本的に、彼らはすでに購入したシステムを持っており、必要なもののいくつかを実行し、上記のことを実行するカスタムスクリプト言語が含まれており、新しいものを学ぶ必要はありません。基本的には、それをコピーするだけです。機能を追加します。ANTRLから始めてそこから行くと思います。

4

5 に答える 5

3

ルア

小さく、速く、埋め込みが簡単で、持ち運び可能で、拡張可能で、楽しいです!

于 2009-02-10T20:03:02.087 に答える
1

Lua はソフト リアルタイム システム (コンピュータ ゲームなど) には間違いなく最良の選択です。詳細なベンチマークについては、 http://shootout.alioth.debian.org/を参照してください。

しかし、前回確認したとき、Lua はマーク アンド スイープ ガベージ コレクタを使用していたため、リアルタイム システムで期限違反や非決定論的ジッタが発生する可能性がありました。

于 2009-02-10T20:10:12.503 に答える
0

まず、独自の言語を定義することは適切ではないと思います。

  • 主な理由は、プログラマーまたは非プログラマーにとって得られる最大の生産性向上は開発ツールだからです。あなた (そして残りの 99.9% の私たち) は、彼らのツールほど優れたツールを作成するつもりはありません。
  • 言語設計は難しい
  • 言語サポートとドキュメンテーションも難しい

事前に構築されたソリューションを探すことをお勧めします。いくつかの機能をロックダウンできる言語を見つけることができれば、それは良い出発点になるでしょう. 一番最初に思いつくのはMatLabです。

最後に、自然言語部分を捨ててください。BASIC、COBOL、YA-TDWTF-Langはすべて試みて失敗しました。


完全な開示:私は、一般化されたドメイン固有言語「システム」を開発している会社で働いています。データ入力/テキスト出力アプリケーションを対象としているため、適切ではなく、まだベータ版ではありません。その結果、私はやや知識が豊富で偏見があります。

于 2009-02-10T19:54:17.677 に答える
0

どのような種類のリアルタイム要件を満たそうとしていますか? シミュレーションはハード リアルタイム シミュレーションですか (ある種のハードウェアインザループ シミュレーション ==> 締め切りは 1/1000 秒未満です)。または、スクリプトシステムをユーザー入力に「反応」させたいですか==> 1/10で十分です。

私は MS DLR の専門家ではありませんが、私の知る限り、ハード リアルタイム システムはサポートされていません。Java のリアルタイム仕様 (RTSJ) を参照してください。

于 2009-02-10T19:56:33.443 に答える