【宣伝】C84にて「きつねさんとおぼえる!Clang」を頒布します【取り置きも受け付けます】






既に風ちゃんが宣伝してますが,C84の宣伝です.
取り置きの情報も記載していますので,興味のある方はご確認下さい.

しかし気づいたら一週間前とは何とも早い・・・

C84 頒布の本について

C84にて,きつねさんシリーズ新作の「きつねさんとおぼえる!Clang」を頒布します.
タイトルからもわかる通り,Clangの解説本になっています.

大項目として,Sanitizer,LibClang,LibTooling,ClangPluginを取り扱っています.
(コンパイラとしてのClangの機能はほぼほぼ説明していません)
なお,私の担当はLibToolingとClangPluginで,
風薬(id:sabottenda)がSanitizerとLibClang,矢上さん(web)が表紙です.
今回は時間的な問題でチュートリアルレベルの基礎的な内容ですが,
“Clangの各機能でどのようなことができるか”といった部分は紹介できているかと思います.

ちなみに,今回は本文の最後に表紙のきつねさん'sの設定資料が載っています.
今までの表紙詐欺に泣いていた,きつねさんを愛でたい人たちにも満足して頂けるのではないかと!


なお,頒布情報は下記のとおりです.

会場:東京ビッグサイト
日程:2013年8月12日
スペース番号:東 ペ-04a
頒布物:きつねさんとおぼえる!Clang
価格:1部 700円
※部数制限なし(150部持込)

取り置きについて

今回も前回に引き続き,取り置きの受付をしてみます.
(今回は150部あるので大丈夫かなぁと思うけれど)
前回同様,取り置きのルールは以下の通りです.

  • 取り置き専用エントリ(こちら)にて名前と必要な部数を申請してください
  • C84 当日は専用エントリに記入した名前をスペースでつげてください
  • 取り置きは最大14時頃までとし,14時までにいらっしゃらなかった場合は販売分にまわします

一応今のところ取り置きにも部数制限をかけるつもりはありません.
が,予想以上に伸びるような事があったら一旦受付をとめるかもしれません.

担当箇所について

私が担当した部分について簡単に説明しておきます.
自分担当箇所の目次は以下の通りです.

  • 第5 章LibTooling
    • 5.1 LibTooling とは
    • 5.2 ビルド環境の構築
    • 5.3 Clang AST の概要
    • 5.3.1 clang-check でast をdump してみる
    • 5.4 LibTooling で簡単なツールを作る
    • 5.4.1 コマンドラインオプションのパース
    • 5.4.2 ClangTool を生成して実行する
    • 5.4.3 コンパイルと実行
    • 5.4.4 独自のFrontendAction を作成する
    • 5.5 RecursiveASTVisitor でAST の情報を出力する
    • 5.5.1 RecursiveASTVisitor の作成
    • 5.5.2 ASTConsumer の修正
    • 5.5.3 コンパイルと実行
    • 5.6 LibAstMatchers で特定パターンのAST を捕捉する
    • 5.6.1 AST matcher
    • 5.6.2 clang::ast_matchers::MatchFinder
    • 5.6.3 clang::ast_matchers::MatchFinder::MatchCallback の作成2
    • 5.6.4 コンパイルと実行
    • 5.7 RefactoringTool でコードを書き換えてみる
    • 5.7.1 RefactoringTool の生成と実行
    • 5.7.2 MatcherCallback にReplacements を渡す
    • 5.7.3 MatchResult からAST のノード情報を取得する
    • 5.7.4 Replacement を生成する
    • 5.7.5 コンパイルと実行
  • 第6 章ClangPlugin
    • 6.1 ClangPlugin とは
    • 6.2 ClangPlugin で簡単なプラグインを作成する
    • 6.2.1 PluginASTAction の作成と登録
    • 6.2.2 コンパイルと実行

LibToolingから触り始めたのでそちらの話がメインとなっています.
LibToolingでは既存のFrontendActionを実行するところから始まり,
独自のFrontendActionの作成やASTMatcherの利用など,少しずつ機能を変更していく形で説明しています.

ClangPluginの方は簡単なプラグインの作成方法を説明しています.
ClangPluginではLibToolingとコードを共有できるという点も伝えたかったので,
5章で使用したソースコードを流用してプラグインを実装し,ロード/実行までを確認します.
そういった意味で,こちらは若干おまけみたいな内容になっていますね。。。