タグ

macroに関するhiroyukimのブックマーク (5)

  • Python とマクロ、インポートフックと抽象構文木 - forest book

    どちらがきっかけだったのか忘れてしまいましたが、wikipedia:メタプログラミング か wikipedia:抽象構文木 について調べているうちに マクロ が出てきました。 私の中では、マクロと聞くと、C 言語の、プリプロセッサ (コンパイルの前処理) でコードに置き換えるものを漠然とイメージします。改めてマクロって何だったっけ?何が嬉しいのだっけ?と考えてみると、基的なことが分かっていないことに気付いたのでマクロについて調べ直してみました。 マクロとは wikipedia からマクロの定義を引用します。 A macro (short for "macroinstruction", from Greek μακρο- 'long') in computer science is a rule or pattern that specifies how a certain input s

  • マクロアノテーション

    MACRO PARADISE Eugene Burmako 著 Eugene Yokota 訳 マクロアノテーションはマクロパラダイスプラグインからのみ利用可能だ (Scala 2.10.x、2.11.x、2.12.x 系列全て同様)。 この機能が正式な Scala に入る可能性は、Scala 2.13 には残されているが、一切保証されていない。 マクロパラダイスページの説明にしたがってコンパイラプラグインをダウンロードしてほしい。 一巡り マクロアノテーションは定義レベルでテキスト抽象化を実現する。Scala がマクロだと認識可能な定義であればトップレベルでも入れ子の定義でも、このアノテーションを付けることで (1つまたは複数の) メンバに展開させることができる。マクロパラダイスの以前のバージョンと比較して、2.0 のマクロパラダイスは以下の点を改善した: クラスやオブジェクトだけではな

  • Scalaのマクロの基礎。評価タイミング、評価回数と、健全性 - xuwei-k's blog

    Scalaのマクロというより、一般的にマクロに共通する基であり重要な部分です。それをScala使って説明するだけです。 Scalaのマクロは、未だexperimentalという位置づけで、他の機能に比べれば仕様やAPIが変わりやすい状態です。そして、機能が搭載されてからあまり時間が経っていないこともあって*1あまり一般的に使われているとはいえない状態でしょう。しかし、Cなどのマクロとは違い、Scalaのものはある程度は格的にコンパイル時に抽象構文木を自由にいじれるものであり、使いこなせるようになってくるとなかなかおもしろいです。 マクロというと、ある程度の人はLispを思い浮かべると思いますが(?)、先ほど書いた「格的に抽象構文木いじれる」という点はまさにLispと共通する部分もあります(もちろん異なる部分も多くあります)。 つまり、これから説明することは、On Lisp*2 On

    Scalaのマクロの基礎。評価タイミング、評価回数と、健全性 - xuwei-k's blog
  • http://jon.es/htm4l/htm4l/macros.html

  • m4 (プログラミング言語) - Wikipedia

    m4 は、ブライアン・カーニハンとデニス・リッチーが設計した汎用テキストマクロプロセッサである。その名称は「macro」(マクロ)の「m」と、AP-3ミニコンピュータでデニス・リッチーがそれ以前に書いたマクロプロセッサ「m3」の次、というところから来ている。 使用[編集] テキストマクロプロセッサとは、マクロと呼ばれるコマンドに従ってテキストを置換するテキスト処理ツールである。プログラミングにおいて、ソースコードのプリプロセス(前処理)でテキストをテンプレートとして再利用する、といった用途に多用されるが、あらゆる文書における定型処理のようなものに使うことができる。 歴史[編集] クリストファー・ストレイチーのGPM[2]、『ソフトウェア作法』[3]で例題として解説されているマクロプロセッサ、AP-3ミニコンピュータでデニス・リッチーがそれ以前に書いたマクロプロセッサm3、などを基に[4]、

  • 1