Call Arity と融合変換

Posted on 金 26 7月 2019 in プログラミング言語 • Tagged with Haskell, GHC, 融合変換, コンパイラ, 最適化

GHC は,最適化のため Call Arity と呼ばれるコード解析を行っている.この解析で,自由変数が何個引数を持っていいかを判定 …


Continue reading

GHC の線形型プロトタイプのお試し環境を作る

Posted on 金 28 6月 2019 in プログラミング言語 • Tagged with Haskell, 線形型, GHC, Docker

現在, GHC に 線形型の追加提案 が出ている.その提案に合わせて,プロトタイプも公開されている.内容はあまり詳しく追 …


Continue reading

Rust のジェネリック関数はどうコンパイルされるのか

Posted on 月 24 6月 2019 in プログラミング言語 • Tagged with Rust, 多相関数, ジェネリクス, トレイト

最近, (特に境界条件を伴った) 多相関数が言語ごとにどういうコードを吐くかが気になったので, Haskell とコードの生成方 …


Continue reading

GHC IO モナドの中身

Posted on 金 17 5月 2019 in プログラミング言語 • Tagged with Haskell, GHC, IO

Haskell の IO モナドって,中身どうなってたんだろと気になってて,ちょっと調べてみた.そのメモ.

IO モナドと RealWorld

まずは基本 …


Continue reading

Scala コードの裏側

Posted on 水 24 4月 2019 in プログラミング言語 • Tagged with Scala, Java, JVM, 最適化

先日, Scala コードの裏側について幾つか話を聞いた.で,気になったので実際に JVM コードを出して,色々見てみることにした.なお,当方 Scala 初心者 …


Continue reading

STG Version 2.5 の動作

Posted on 金 19 4月 2019 in プログラミング言語 • Tagged with Haskell, 抽象機械, GHC

先日 STG の動作について説明する機会があったんだが,ちゃんと説明できなかった.で,ちょっとこれじゃまずいって思 …


Continue reading