問題タブ [dsl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - DSL には、TCL と Lisp のどちらが優れていますか?
DSL には、TCL と Lisp のどちらが優れていますか? Java(C#)-TCL バインディングと Lisp(Scheme) のバインディングについて何が言えますか? .Net 開発に適用できる DSL ツールはどれですか? (Microsoft DSL ツールを除く)
python - Python で DSL 用のコンパイラを作成する
Python でゲームを作成しており、マップ データ ファイル用の DSL を作成することにしました。正規表現を使用して独自のパーサーを作成できることはわかっていますが、PHP エンジンで使用されている re2c のように、これをより簡単に実行できる既存の python ツールがあるかどうか疑問に思っています。
追加情報:
- はい、確かに DSLが必要です。そうでなくても、プロジェクトで DSL を構築して使用する経験が必要です。
DSL にはデータ (宣言型?) のみが含まれており、「実行」されません。ほとんどの行は次のようになります。
SOMETHING: !abc @123 #xyz/123
データのツリーを読み取るだけです。
visual-studio - DSL ツール: DLL を弱い名前で作成する方法
DSL Tools ソリューションがあります。
このプロジェクトに弱い名前の参照を追加する必要があります。DSL Tools プロジェクトの DLL は厳密な名前が付けられているため、弱い名前の DLL は使用できません。
再コンパイルできないため、DLL を厳密な名前にすることはできません。
Dsl および DslPackage プロジェクトのプロパティに移動して、署名タブの [アセンブリに署名する] オプションのチェックを外して、DSL ツール プロジェクト DLL を弱い名前で作成しようとしました。
それから私はそれをコンパイルします。エラーリストには次のエラーが表示されます
VS2005 の出力ウィンドウを見ると、gacutil が呼び出されていることがわかります
その後、コマンド プロンプトを使用すると、gacutil.exe エラーが次のように表示されます。
gacutil.exe が呼び出される理由と方法がわかりません。プロジェクトとソリューションのプロパティを確認しましたが、gacutil.exe を呼び出すように構成されたオプションはありません。「gacutil.exe」のすべてのファイルの中も調べましたが、何も見つかりませんでした。
私が本当に欲しいのは、厳密な名前を付けることができない弱い名前の DLL を使用できるようにすることです。この結果、私は自分の DSL Tools DLL を弱い名前にしようとしてきましたが、できません。
これを回避する方法について何か助けはありますか?
前もって感謝します、 ルイス・フィリペ
perl - Perl で DSL を書くことはできますか?
GUI テストの自動化には Perl を使用します。それは非常に成功しています。GUI テスト用に非常に軽量な DSL のような言語を作成しました。DSL はオブジェクト モデルに非常に似ています。
たとえば、ルートに Application オブジェクトがあります。アプリケーションの各プロパティ シートは、View オブジェクトです。ページの下の各ページは、Page オブジェクト自体と呼ばれます。Perl から GUI アプリケーションにコマンドを送信すると、GUI はコマンドを解釈し、コマンドに適切に応答します。コマンドを送信するには、次のようにします。
これは非常に読みにくいです。代わりに、App、View、Page 用の Perl DSL を書きたいと思っています。Perl は、次のことができるような DSL 構造を提供していますか?
App は Application クラスのインスタンスです。実行時に View2 のオブジェクトを取得する必要があります。
そのようなものをどのように使用するのですか?
c++ - C/C++ のドメイン固有言語、これはコーシャですか?
この「奇妙な」解決策を考えたとき、C/C++ の新しいプロジェクトのドメイン固有言語の設計をいじっていました。
良い点は、これが標準で正しいことです (ただし、Duff Switch もそうです)、クロスプラットフォーム、移植可能などです...ただし、この方法は実際には文字列をコードに書き込むよりも優れているわけではありませんが、DSL エンジンが解析するためです。とにかく、このようにするときれいに見え、混乱が減ります。しかし、他の人々がそれについてどう思うか疑問に思っていました.
ありがとう
python - スペースを含むPythonメソッド引数
ユーザーがデータを入力できるようにする簡単なファイル形式/DSLを作成したいと思います。私のシステムはPythonであり、Pythonのパーサーを使用することは魅力的です。データ要素を定義するためのこのような構文は非常に便利なようです。
ただし、スペースを含むパラメーター名はサポートされていません。
Pythonパーサーに適したバージョンは次のようになりますが、あまりユーザーフレンドリーではありません。
これをPythonで読みやすくする方法はありますか?
.net - Microsoft Visual Studio SDK DSLツール-真面目な人はいますか?
いくつかの抽象的なデザイナーを作成するためのMicrosoftDSLツールキットを検討しています。私はすでにいくつかのPOCを行いましたが、同じことについていくつかの意見を聞きたいと思います。
Microsoft DSL ToolkitとT4での作業経験を共有するためにここにいる人はいますか?また、オープンソースのDSLプロジェクトへのポインタが役立ちます-例:Microsoft Service Factoryモデリングエディションは、DSLツールキットに大きく依存しています。
OSLO / Quadrantがリリースされるまでには時間がかかるため、MicrosoftDSLデザイナーに依存するしか選択肢がないと思います。(同じ上のKiethのブログを参照してください)
また、DSLに関して私がすでに持っているいくつかの情報があります:
inversion-of-control - SFig 言語の構文は効率的で明確ですか (Spring-Framework の XML DSL より優れていますか)?
補遺編集:
経験豊富な Spring Framework 開発者からのフィードバックがなかったため、これに対する回答を受け入れていません。
私は、Spring-Framework の applicationContext.xml ファイル (ここでは、Spring Bean ファクトリにロードするための Bean の初期化と依存関係が記述されています) に使用する代替 DSL に取り組んでいます。
私の動機は、Spring がこの目的で XML を使用するのが好きではなく、これまでに考案された代替手段がどれも本当に好きではないということです。ここでは説明しませんが、さまざまな理由から、Groovy などの命令型スクリプト言語ではなく、宣言型言語にとどまりたいと考えています。
そこで私は ANTLR パーサー ツールを手に入れ、SFig と名付けた新しい Bean ファクトリ DSL を考案しました。これについて詳しく説明しているリンクは次のとおりです。
SFig™ - Spring-Framework の代替メタデータ構成言語
ソースコードリポジトリサイトは次のとおりです。
http://code.google.com/p/sfig/
これまでのところ、言語構文でどのようにやっているのか知りたいです。SFig は効率的でわかりやすいと思いますか? (私は現在、複数行のテキスト文字列に特に関心があります):
cryptography - ガロアのクリプトルを使う計画がある人はいますか?
2008 年 12 月 29 日の Dobb 博士の電子メール レポートで、暗号システムを設計するための新しい DSL (ドメイン固有言語) があることを見ました。これはCryptolと呼ばれ、Galois から入手できます。
誰かがそれを見ましたか?誰かがそれを使用する計画を持っていますか? 価値があると思いますか。
ロバート・ギャンブルは次のように述べています。
Cryptol は新しいものではなく、何年も前から存在しています。新しいのは、それ (の一部) が一般に公開されたことです。元々は NSA のために開発され、使用されていました。
ブライアンのように、クリプトルを使用する本当の理由はありません。SSL ベースの実装を (再) 検証する必要がある場合に役立つかもしれませんが、そこで役立つかどうかはわかりません (SSL ライブラリを検証する必要はありません。 (誤) SSL ライブラリの使用)。
domain-driven-design - Antlr は DSL ジェネレーターであり、意図的なプログラミングに代わるものですか?
最初は Microsoft で、次に彼自身の会社で、意図的プログラミングの分野を確立しようとする Charles Simonyi の努力の野心と創造性に私は感銘を受けました。
http://en.wikipedia.org/wiki/Intentional_programming
このソフトウェアへのアプローチでは、プログラマーはまず、特定の問題領域 (生命保険など) に固有のツールボックスを構築します。ドメインの専門家は、プログラマーの助けを借りて、WYSIWYG (What You See Is What You Get) のような方法で、プログラムの意図した動作を説明します。自動化されたシステムは、プログラム記述とツールボックスを使用して最終的なプログラムを生成します。連続した変更は、WYSIWYG レベルでのみ行われます。
これは、プログラミングに対する非常に有用で実用的なアプローチのようであり、現在のソフトウェア開発アプローチに伴う問題の多くを回避できる可能性があります。
基本的に、非プログラマー (ビジネス/システム アナリスト) によるドメイン固有言語の作成を容易にするように見えますが、UML が提供できるよりも実際の実装にはるかに近い段階にあります。最終的には完成するだろうが、まだ完成していない(ほぼ 15 年後)と彼は言う。
DSL は、単純な 5 行のルール エンジンから、Ruby on Rails のような複雑なアプリケーションまで、あらゆる範囲を実行します。したがって、彼の製品のリリースが遅れたのは、すべてのドメイン言語を一度にカプセル化できるようにする必要があるため、彼がはるかに高いレベルの抽象化を単純化することに取り組んでいるという事実に関係していると思います。
だから、私の質問は
(a) Antlrが意図的なプログラミングの代替になるかどうか - ビジネス アナリストが DSL を生成することを許可するのではなく、プログラマーの介入を必要とする、おそらくユーザーフレンドリーではない代替案ですが? Antlr を使用して、Ruby on Rails のような DSL を生成できますか (Ruby を出力としてサポートしていると仮定しますが、サポートされていないと思います)。できないことは何ですか?また、「言語ジェネレーター」ではなく「言語パーサー」と呼ばれる理由がわかりません。後者は使用目的を説明し、前者は最終結果をどのように達成するかを説明するためです。
と
(b) Antlr が意図的なプログラミングと異なる場合、意図的なプログラミングに似たものはありますか?