関連タグで絞り込む (1)

タグの絞り込みを解除

Clangに関するdaiki0910のブックマーク (3)

  • 大学院生のためのLLVM | POSTD

    (注:2017/07/06、いただいたフィードバックを元に翻訳を修正いたしました。) この記事は、 LLVM コンパイラ基盤を使ってリサーチをする人のための入門書です。これを読めば、コンパイラに全く興味のない大学院生も、楽しみながらLLVMを使って優れた功績をあげられるようになるでしょう。 LLVMとは何か? LLVMは非常に優れていて、ハックしやすく、C言語やC++のような”ネイティブ”言語向けの、時代の先端を行くコンパイラです。 LLVMの素晴らしさに関しては他にも様々な話を聞くのではないでしょうか(JITコンパイラとしても使えるとか、C言語系列以外の様々な言語を強化できるとか、 App Storeからの新しい配信形態 であるとか、などなど)。もちろん全部当のことですが、今回の記事の目的としては、上述の定義が重要です。 LLVMが他のコンパイラと差別化される理由には、いくつかの大きな

  • LLVMをちょっと調べてみた - wagavulin's blog

    最近LLVMについて調べてみたのでまとめてみる。自分はコンパイラの専門家でも何でもないので間違った内容があるかもしれない。 GCCとコンパイラの仕組み LLVMの前にまずはコンパイラ一般の話。コンパイラはまずソースコードを解析して内部表現にする。これはたいていツリー構造となる。このツリー構造のデータに対して文法チェックを行ったり最適化処理を行ったりした後に、オブジェクトファイルを生成する。 コンパイラの内部表現だが、実際には複数の種類の内部表現を使っていることが多いらしく、GCCもそのようになっている([1]の図3)。これによるとまずはその言語固有のツリーにするようだ(C trees, C++ treesなど)。これをGENERICという形式にする。GENERICは名前のとおり言語に依存しない一般的な形式で、どの言語の場合も一度GENERICにする。 GENERICはその後さらにGIMPL

    LLVMをちょっと調べてみた - wagavulin's blog
  • [LLVM/Clang] LLVM/Clangを知る【はじめに】 | DevelopersIO

    LLVM/Clang iOSアプリケーション開発においてなくてはならない重要な技術の一つです。 普段ほとんど気にする人はいないかと思いますが、Xcodeで開発する上で、裏側の処理はどうなっているかを少し覗いてみます なぜLLVM/Clang? Androidでも実験的にARTなどLLVMを基盤にした技術が導入され始めているため、モバイル・アプリケーション開発にこれからも関わる気があるならば少し基盤の方も知っておいた方が良いかと思った次第です。 まあ、ほぼ趣味ですが。 参考書籍 以下の書籍がさくさく読める内容であったため、LLVM/Clangに興味を持つきっかけになりました。 レビューはえらい書かれようですが、コンパイラに関する基礎知識がある程度あれば、LLVM/Clangのエッセンスについて広く知ることが出来ました。コンパイラの動作やどのようにコンピュータが実行可能なファイルに変換されるの

    [LLVM/Clang] LLVM/Clangを知る【はじめに】 | DevelopersIO
  • 1