Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

2011年6月19日のブックマーク (4件)

  • llvm-py を使ってみた。 - moriyoshiの日記

    llvm-pyはドキュメントがめちゃくちゃよく書けているのはいいんだけど、バインディングとしての完成度は…普通かな。 0 から 9 までの値をそれぞれ 2 倍したものを表示するサンプルを書いてみた。実は with を初めて使った。 basic block (BB) のセマンティクスとか、定義済み外部関数で、かつ可変引数である printf の呼び出し方とかが参考になるといいなと思う。 文字列定数の扱いはひょっとしたら間違ってるかもしれない。ドキュメントいろいろ漁ったけどよくわからなかったので。 出力結果は次のようになるはず。printf 呼び出しがインライン化されたりしているのは最適化パス (PASS_FUNCTION_INLINING) のおかげ。いろいろパスを足したり除いたりして、どう最適化が効いてくるのかを見るのもおもしろい。 BEFORE: define void @loop()

    llvm-py を使ってみた。 - moriyoshiの日記
  • ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会

    システム開発や保守、運用の現場においてドキュメントは必須のものです。 しかし、ドキュメントの作成・維持には多くのパワーがかかるため、ドキュ メントが存在しない、資料が古いままになっているなどといった現状を多く 耳にします。 勉強会ではこれらのドキュメントでよく利用される「図」にフォーカスし、 みるみるうちに図を作成できる「blockdiag」をご紹介します。 「blockdiag」はシンプルなテキスト記述からブロック図、ネットワーク図などの 画像ファイルを出力可能なオープンソースの画像生成ツールです。書き やすさ、メンテナンスしやすさを中心にデザインされており、図を作るのに 配置や並べ替えに苦労する必要はありません。 blockdiagのサンプルはこちら このような特徴を持つ「blockdiag」と、シンプルな記述でドキュメントを作成 するツール「Sphinx」を組み合わせることによって

    ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
  • 忍者Tシャツが現れた。

  • On Lisp --- マクロ

    Lispのマクロ機能を使うと,コードの変換によってオペレータを実装することができる. マクロ定義とは実質的にLispコードを生成する関数だ ---つまりプログラムを書くプログラムだ. この一歩から始めて,大きな可能性と予期せぬ危険に足を踏み入れていく. 第7章から第10章はマクロの基礎講座だ. この章ではマクロがどのように動作するのかを説明し, マクロを書いたり動作を確かめるときのテクニックを示し, マクロを書くスタイルについての話題に進む. マクロはどのように動作するか マクロは呼び出せるし値を返せるので,関数と一緒くたにされがちだ. マクロ定義は関数定義に似ていることもあるし, 実際はマクロであるdoを普段「組み込み関数」と呼ぶ人も多い. しかしこの喩えを突き詰めすぎると混乱の元になる. マクロの動作は普通の関数とは違っている. マクロはどのように,そしてなぜ違うのかを知ることは,マク

    rokujyouhitoma
    rokujyouhitoma 2011/06/19
    マクロのお話。