タグ付けされた質問 「dsl」

2
「Free Monad + Interpreter」パターンとは何ですか?
特にデータアクセスのコンテキストで、Interpreterを使用してFree Monadについて話している人々を見てきました。このパターンは何ですか?いつ使用したいですか?どのように機能し、どのように実装しますか? (このような投稿から)私はそれがモデルをデータアクセスから分離することだと理解しています。よく知られているリポジトリパターンとの違いは何ですか?彼らは同じ動機を持っているように見えます。

28
いつ自分のプログラミング言語を作成するのが合理的ですか?
長い目で見れば、独自の言語を作成する方が優れているような、キラーアプリケーションのタイプ、アルゴリズムの問​​題のクラスなどはありますか? PS:確かに、私は既存の言語用の新しいコンパイラではなく、新しいプログラミング言語とコンパイラを意味します。 編集:答えてくれてありがとう。DSLの作成が絶対に不要な場合や、DSLが良いアイデアである場合の例をいくつか挙げてください。

3
LISPのマクロは、DSLを作成するRubyの「能力」よりも優れているのはどの領域ですか
Rubyを輝かせるものの1つは、ドメイン固有の言語をより良く作成する機能です。 シナトラ Rspec レーキ Ruby on RailsのActiveRecord マクロを介してLISPでこれらのライブラリを複製できますが、Rubyの実装はよりエレガントだと思います。それでも、LISPのマクロはRubyのマクロよりも優れている場合があると思いますが、マクロは考えられませんでした。 それでは、LISPのマクロは、DSLを作成するRubyの「能力」よりも優れているのはどの領域ですか。 更新 現代のプログラミング言語がLISPの特異点に近づいているので、私はこれを尋ねました。 Cはマクロ展開プリプロセッサを取得しましたが、非常に原始的でエラーが発生しやすい C#には属性がありますが、これは読み取り専用であり、リフレクションによって公開されます Pythonは、関数(およびv 3.0のクラス)の動作を変更できるデコレーターを追加しましたが、かなり制限されています。 気をつければエレガントなDSLを作成するRuby TMTOWTDIですが、Rubyの方法です。 LISPのマクロは特別な場合にのみ適用でき、他のプログラミング言語機能はソフトウェア開発の今日の課題に対応するために抽象化を高めるのに十分強力であると思いました。
21 ruby  lisp  dsl 

5
.NETには、文法を定義してプログラミング言語を生成できるものがありますか?
私は、教授から最終プロジェクトのDSLを作成するように依頼されたコースを持っています。彼はEclipseを使用した最初のコースxTextで私たちを紹介しました。これは新しいコースですが、ドメイン固有言語の意味についてはまだ少しあいまいです。 これが私の現在の理解です。ドメイン固有の言語は、ソフトウェア開発の特定の問題のために作成された言語です。DSLの例にはPHP、SQL、JavaScriptがあり、反対にJava、C#、C ++、Rubyなどの言語があります。 私が間違っている場合は私を修正してください。 私が知りたいこと:Xtextに似た.NET / Visual Studio用のツールがあり、文法を定義し、それに基づいてアクティビティ図でプログラミング言語を生成することができますか?
18 .net  dsl 

4
データベースの抽象化—やり過ぎですか?
多数のデータベース抽象化レイヤーにさらされた後、私は、データにアクセスするための独自の異なるパラダイムを発明するすべてのライブラリーのポイントが何であるか疑問に思い始めています。新しいDALを取得することは、新しい言語をもう一度学習するように感じます。通常、やりたいことは、既に自分の頭に書いたSQLクエリを出力するようにレイヤーを説得することだけです。 そして、それは事後の読みやすさにさえ触れていない: # Exhibit A: A typical DAL rows = db(db.ips_x_users.ip_addr == '127.0.0.1') .inner_join(db.ips_x_users.user_id == db.users.id) .select(order=(db.ips_x_users.last_seen, 'desc'), limit=10) # Exhibit B: Another typical DAL rows = db.ips_x_users .join(db.users, on=db.ips_x_users.user_id == db.users.id) .filter(db.ips_x_users.ip_addr == '127.0.0.1') .select(sort=~db.ips_x_users, limit=10) # Exhibit C: A hypothetical DAL based on standard SQL syntax rows = …
18 database  sql  api-design  dsl 

2
(基本的な)SQLクエリは、意味的に高次関数と同等ですか?
SQLは基本的にマップ+フォールド+フィルターのドメイン固有のインスタンスですか? 次のSQLのようです: SELECT name FROM fruits WHERE calories < 100 これは、次のマップ+フィルター+折りたたみ操作の構文糖です。 var fruits = [{id : 1, name: 'orange', calories : 100}, {id : 2, name : 'banana', calories : 150}, {id : 3, name: 'apple', calories : '50'}]; fruits.map(function(fruit) { return { name : fruit.name, calories : fruit.calories }) …

5
DSLの構築:汎用言語の上にスクリプト化されたものですか、それともスタンドアロンですか?
私は、特定のあいまいなプログラミングモデルを簡略化するために、ドメイン固有の言語を設計することについて議論しています。議論の一部は、既存の言語/ランタイム(Javaなど)の上にそれを(スクリプトとして)構築するか、それをスタンドアロン(独自のコンパイラ、&c)にするかです。 DSL設計の経験がある方、長所/短所、または適切なアプローチに対する確実な答えはありますか?

5
APIはいつ組み込みDSLと見なされますか?
APIと埋め込みドメイン固有言語(DSL)の違いは何ですか? 単なる構文ですか? OpenGLのようなAPIを検討してください。それはグラフィックDSLとどう違うのですか? つまり、APIが十分に複雑な場合、それは組み込みDSLと見なすことができますか?
10 api  dsl 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.