タグ

ブックマーク / itchyny.hatenablog.com (3)

  • LLVMを始めよう! 〜 LLVM IRの基礎はclangが教えてくれた・Brainf**kコンパイラを作ってみよう 〜 - プログラムモグモグ

    コンパイラを作ってみたいと思っていても、アセンブリ言語はよくわからない。 パーサーみたいなコードは書いたことがあるけれど、コード生成の処理はさっぱりだ。 実行ファイルをバイナリエディターで見るとかなにそれ怖い。 そんな私なのですが、LLVMに興味を持ち始めています。 SwiftRust、あるいはEmscriptenなど、近年注目されている言語やコンパイラ技術の中枢にはLLVMがあります。 アセンブリはよく分からなくてもLLVMを使いこなせるようになれば、マルチプラットフォームで実行ファイルを生成できる言語処理系を作るのではないか。 コンパイラ作ってみたいな、LLVMを使ってみようかなと思っている今日このごろです。 ところが、いざLLVMを勉強しようと思ってもどこから始めればいいかよく分かりませんでした。 マニュアルは巨大で読む気が起きないし、リファレンスを見てもさっぱりです。 雰囲気はわ

    LLVMを始めよう! 〜 LLVM IRの基礎はclangが教えてくれた・Brainf**kコンパイラを作ってみよう 〜 - プログラムモグモグ
  • Haskellで無限個の無限リストをソートされた形で結合する - プログラムモグモグ

    CodeforcesやProject Eulerの問題には、無限リストをうまく使うと綺麗に解くことができる問題がたくさんあります。 数列の性質から探索範囲の上界を決めて解を探索することが多いのですが、きちんとした根拠を持って上界を決めることができることは少なく、余裕を持って十分に広い範囲で計算して解を求める解法がよく取られます。 Haskellの特徴である遅延評価とその洗練された糖衣構文を用いると、無限リストを簡単に扱うことができます。 上界を適当に定める解法よりも、より宣言的で美しく、時に効率的なコードで同じ解を得ることができます。 しかし、無限リストをきちんと、それも無限個の無限リストをきちんと扱うとなると、意外と苦労します。 この記事では、無限個の無限リストをソートされた形で結合する方法について説明します。 一般的な無限リストではなく、条件はかなり絞っていてます (そうでないと原理的

    Haskellで無限個の無限リストをソートされた形で結合する - プログラムモグモグ
    Kureduki_Maari
    Kureduki_Maari 2016/01/27
    Haskellで書かれたおもしろいFizzBuzz Haskellで読めないコードに遭遇した時に解読する方法を徹底解説! https://t.co/tPjymBC1I0 Haskellで無限個の無限リストをソートされた形で結合する
  • Vimのバッファーをサムネイルで選択するプラグインthumbnail.vim書いた - プログラムモグモグ

    一日がかりで書きました. まだ荒削りですが, 公開します. リポジトリーはitchyny/thumbnail.vim - GitHubです. ふぇぇ...:;(∩´﹏`∩);:バッファーがいっぱいあってよく分からないよぉ そんな時に:Thumbnailですよヾ(╹◡╹❀)ノ゙;;;... サムネイルから選んでバッファー移動できたぁ+。:.゚٩(๑>◡<๑)۶:.。+゚ itchyny/thumbnail.vim - GitHubからインストールどうぞ. 今分かっている問題は, ロードされていないバッファーには使えないということ. 何とかしたいが, getbuflineが使えないので困ってる. 追記(2013/3/19) mattnさんにプルリクエスト頂き, 上記の問題は解決しました. Show buffer which doesn't loaded yet by mattn · Pull

    Vimのバッファーをサムネイルで選択するプラグインthumbnail.vim書いた - プログラムモグモグ
    Kureduki_Maari
    Kureduki_Maari 2013/03/29
    Vimのバッファーをサムネイルで選択するプラグインthumbnail.vim書いた - プログラムモグモグ
  • 1