2015年12月4日のブックマーク (5件)

  • LLVMによるプログラミング言語の実装 – 日曜研究室

    最近の投稿 問題: 積み木を10個積み上げるのにかかる時間は 2020/8/20 木曜日 Google の G Suit Team から “[Action Required] Remove internal links to the G Suite Domain Contact page for your organization” ていうメールが来た 2020/8/14 金曜日 NZXT H1 と ROG STRIX B550-I GAMING で組んでみた 2020/7/17 金曜日 花粉症対策2019 2019/3/16 土曜日 マルチディスプレイ時のDisplayPort問題を何とかしてみた 2019/1/12 土曜日 REALFORCEソフトウェアがインストールできない(解決済) 2018/12/6 木曜日 GeForce RTX 2080 Founders Edition を買

  • 大学院生のための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
  • 高速文字列処理ライブラリを作った - prime's diary

    この記事はポエムアドベントカレンダー4日目の記事です。 www.adventar.org 大量の文字列データを扱うことの多くなった現代において、文字列処理ライブラリの高速化は重要である。 しかしながら、個人レベルで汎用的かつ高速な文字列処理ライブラリを作成することは難しい。 今回は汎用性を少し下げることにより圧倒的な高速化をした文字列処理ライブラリ「A」を制作した。 ソースコード gist.github.com ライブラリの仕様 文字列の制約 すべての文字がAで構成されていること 制約を満たす文字列の例 AAAAAA AAAAAAAAAA 制約を満たさない文字列の例 aaa ABCDE 制約を満たさない文字列を用いた場合、正しくない結果を得る可能性がある。 利用方法 ライブラリ中では専用の効率的なデータ構造により文字列を管理する。そのため、利用するにはstd::stringから変換処理を行

    daiki0910
    daiki0910 2015/12/04
    わろたw
  • [LLVM/Clang] LLVM/Clangを知る【はじめに】 | DevelopersIO

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

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