質問

Nowebなどのツールがマクロをサポートしていないことがわかりました。識字プログラミングにおけるマクロの利点と欠点は何ですか?

役に立ちましたか?

解決

「マクロ」とは、CプリプロセッサやほとんどのアセンブラーのようなLPツールに「マクロゼン装置」を実行することを意味すると思います。

マクロ置換は「構文砂糖」です。これは、多くの同様の詳細を表す単一のシンボルを書く方法です。したがって、「マクロ」という用語:それは「マクロプログラミング」であり、より高いレベルの抽象化で書いています。

これは、簡単にアクセスできる抽象化層を提供するオブジェクト指向プログラミングがなかった昔の時代に私たちがしたことです。

技術的には、Just Function Callを使用してCで抽象化とマクロスタイルのプログラミングのレイヤーを持つことができました。プリプロセッサの「マクロ」プログラミングはそうではありません 必要. 。たとえば、インライン関数をプリプロセッサ「マクロ」として定義して、コードを手作業で定義していました。これは、Cコンパイラが初期の頃にはうまくいかなかったためです。

OOプログラミングができたので、より原始的なプログラミング言語のマクロ機能は必要ありません。

読み書きのできるプログラミングマクロ機能は、LPレベルでクラスのような機能と継承のような機能を作成するために、非OO言語(CやPascalなど)で使用されました。

それには意味がありません。適切なクラスを定義し、適切な継承を使用してください。

他のヒント

私は2つの異なるLPツールを書きました:TCLP-マクロをサポートしません:http://code.google.com/p/tclpAMD Nanolp、非常に柔軟なマクロをサポートしています:http://code.google.com/p/nano-lp.

そして、私がTCLPを書いていたとき、マクロに関する私のアイデアはそうでした - それはプログラム構造、別のマクロシステムのようなものを破壊するので悪いことです - あなたはC言語の並列マクロシステムのようにそれについて考えることができます。 Cマクロスは実際のコードを隠します - それらは実際の関数呼び出しではありませんが、(プレースホルダーのように!)リアルコードとLP -Macrosはコードを非表示にする並行方法です。これは不利なものです。

しかし、読みやすく理解しやすい良いLPマクロを書いている場合、それらを使用するのに問題はないため、次のツールNanolpにFlex Macrosシステム(Plaeholders、Importing、Variables Dictionariesなど)を含めました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top