問題タブ [antlr]
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.
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 が意図的なプログラミングと異なる場合、意図的なプログラミングに似たものはありますか?
parsing - ANTLRは、バイナリデータ形式をシリアル化/逆シリアル化するための適切なツールですか?
スマート電気メーターと通信するためにさまざまなネットワークを介して送信するオクテットストリームを読み書きする必要があります。バイナリデータ形式を説明するANSI規格ANSIC12.19があります。データ形式はそれほど複雑ではありませんが、標準は非常に大きく(500ページ以上)、多くの異なるタイプを記述しています。この標準は、EBNF文法によって完全に記述されています。ANTLRを利用してEBNF文法またはその修正バージョンを読み取り、オクテットストリームを読み書きできるC#クラスを作成することを検討しています。
これはANTLRの良い使い方ですか?
もしそうなら、ANTLR 3.1を利用できるようにするために何をする必要がありますか?ニュースグループのアーカイブを検索すると、文字の代わりにバイトを読み取ることができる新しいストリームを実装する必要があるようです。それですべてですか、それともレクサー派生物も実装する必要がありますか?
ANTLRがストリームの読み取り/解析に役立つ場合、ストリームの書き込みにも役立ちますか?
ありがとう。
ダンフィヌケーン
antlr - ANTLR2 対 ANTLR3
これらのいずれかまたは両方を使用したことがありますか? あなたはどちらを好みますか、またその理由は何ですか?
たとえば、私は最近 v2 を学びましたが、おそらく v2 を使い続けるつもりです。これは、netbeans チームが提供する高性能な実装のおかげです (ええ、私は Java で行き詰っています)。この場合、乗り換えるやむを得ない理由はありますか?
parsing - ANTLR のツリー パーサーとは何ですか?
Java環境で実行されるANTLRのCの小さなサブセット用のレクサー/パーサーを書いています。私は言語文法の世界に不慣れで、多くの ANTLR チュートリアルで AST - 抽象構文ツリーを作成します。作成する必要があるのはなぜですか?