タグ

2019年12月23日のブックマーク (3件)

  • Haskell+LLVM構成で作る自作コンパイラ - Qiita

    Haskellのパーサコンビネータmegaparsecと、コンパイラ基盤であるLLVMを使って、コンパイラを作ってみます。モチベーションとしてはコンパイラはC/C++を使って作るのが定番ですが、型の恩恵を受けながら開発したいなあということでHaskellでも作れないか調べてみました。 コンパイラ作成の流れ パーサコンビネータのMegaparsecで四則演算のパーサを作成します。 LLVM IR構築のライブラリであるllvm-hs-pureでLLVM IRのコードへ変換するコンパイラを作成します。 簡単な式をコンパイルしてLLVMのインタープリタlliで実行します。 LLVMのコンパイラllcでアセンブラを生成してgccでバイナリまで生成します。 環境 あらかじめ以下をインストールしておいてください。 stack 1.9.3 Haskell 8.6.5 LLVM 9.0.0 コマンドラインで

    Haskell+LLVM構成で作る自作コンパイラ - Qiita
    kakkun61
    kakkun61 2019/12/23
    思ったより簡単に遊べそうだ
  • 独断と偏見で語るGHCのderiving系拡張 - Qiita

    先日のHaskell Dayでderivingに関する発表があった Haskell Day 2019を開催しました! aiya000, 「しんさんきぼう」のDerivingストラテジー ので、触発されて私もderivingについて思うところを書いてみます。主にderiving系拡張の落とし穴・注意点に重点を置きます。 標準でderiveできるやつ、またはGHCに組み込まれているやつ (stock deriving) 標準で Eq, Ord, Enum, Bounded, Show, Read, Data.Ix.Ix がderiveできます。この手の話題で Ix はよく見落とされます。ちゅうか Haskell 2010 Language Report, Chapter 11 のderive可能なクラスの一覧からもオミットされている……。 GHC拡張を有効にすることで、他のいくつかのクラスでも

    独断と偏見で語るGHCのderiving系拡張 - Qiita
  • 電子先幕シャッターの使われ方はメーカーによって違いがあるのだ

    このサイトの記事は広告を含む場合があります。 記事内で紹介する商品などを購入すると、当サイトに売り上げの一部が還元されることがあります。 最近のカメラにはわりとあたりまえに搭載されている電子先幕シャッター。 明るいレンズで背景をボカして撮ったときに点光源ボケなどが欠けて写ることがある、という問題が起きて話題になったので、覚えている人も多いのではないかと思う。 ワタシも、手持ちの機材でボケ像の欠けがどの程度起きるかを大あわてでチェックしたくちである。 さて、この問題。実は起きるメーカーと起きないメーカーがあるのはご存知だろうか? と言うのは、電子先幕シャッターの使われ方が、メーカーによって違っているからで、それによってボケ欠け問題が起きる、起きないの違いが生じるのである。 今回はそのあたりについてぶつぶつやっていこうと思う。 電子先幕シャッターについてのおさらい 電子先幕シャッターがどういう

    電子先幕シャッターの使われ方はメーカーによって違いがあるのだ
    kakkun61
    kakkun61 2019/12/23
    説明書見ても解説がなくてよく分からないのでこういう記事は嬉しい