私はスプレッドシートのようなアプリケーションを構築しています。このアプリケーションでは、多くの小さな計算をツリー構造につなぎ合わせる必要があります。これらの計算はユーザー定義であり、ユーザーが実行時にそれらを入力する方法が必要です。
私の現在のアプローチは、F#で小さな「式DSL」を作成することです。ここでは、FParsecを使用して入力を解析し、識別された共用体に基づいて構文ツリーを構築してから、式を評価できます。これはかなりうまくいきます。
ただし、代わりにDLRに基づいて言語を検討することを考えています。この道を進むことの利点はありますか(入力を解析し、自分の代わりにScripting.ASTのものを使用してASTを生成し、DLRに計算の実行を処理させます)?
それぞれの計算はおそらくかなり小さいでしょう。計算間の依存関係は、より高いレベルで処理されます。
DLRが式のCILコードを生成するので、パフォーマンスが向上することを期待できますか、それともオーバーヘッドがそれを使い果たしますか?
(IronPythonのような既存の言語を使用することに関しては、言語構文に多くのスライスアンドダイス演算子と次元処理のものを追加することを計画しているので、おそらく難しいでしょう)