3

このような自由回答形式の質問をして申し訳ありませんが、C++ で合成アセンブリ (実際のプロセッサ用ではない) をエミュレートしたいので、アセンブリを実行するシミュレータの実装からアセンブリを分離したいと考えています。

DSL などを作成するのは当然の方法のように思えますが、Groovy でそのようなこと (実際には DSL とインタープリターの混合) を行った経験があります。

boost::proto は当然の選択のように思えますが、私が言うように、基本をある程度把握しているにもかかわらず、ドキュメントはまったく理解できないと思います。

AST などの理論ではなく、DSL を書くことの実用性に焦点を当てた方法で、これを行う方法を説明する代替チュートリアルまたは同様のものはありますか。または、代替手段はありますか?現在、私はシミュレーターを構成するクラスのメソッドとしてアセンブリー命令を実装することに行き詰まっています。これにより、アセンブリー命令は非常に緊密にバインドされ、コードベースを維持することが非常に困難になります。

4

1 に答える 1

1

ここで、 XY の問題が正しく一致していない可能性があることを示唆するコメントを支持します。

一方、組み込み eDSL に適用されたBoost Proto の最適な紹介は、Dave Abrahams の cpp-next.com ブログでした。悲しいことに、それは放送されなくなりました。

Boost Proto の作成者である Eric Niebler は、リクエストに応じて、これらのページの生のダンプを人々に送信することを申し出ました。

C++ コミュニティは、cpp-next.com Web サイトと、かつてそこでホストされていたすべての優れたコンテンツの喪失に苦しんでいます。この 2 か月間で、このサイトと「Expressive C++」シリーズの記事の運命について多くの質問を受けました。これに伴い、過去記事を当ブログに転載させていただきます。でも忙しくて時間がかかります。それまでの間、Boost.Proto と C++ のドメイン固有の組み込み言語の読みやすい入門書がどうしても必要で、生のマークダウンを読んでもかまわない場合は、私にメールしてください。私が持っているものを送ります。

http://ericniebler.com/2014/05/24/cpp-next-com-and-the-expressive-cxx-series-2/

それまでの間、waybackmachine には次のようなものがあります。

于 2015-08-17T21:46:31.747 に答える