型エラースライシングによるデッドロックの原因特定
小林先生のデッドロック解析のための型システムに対して、型付けできなかった時の原因、つまりデッドロックの原因を特定するための型エラースライシングを導入したという論文。型推論はつまるところ制約充足なので、充足不能な場合に極小な充足不能集合を求めて、それを元のプログラムに戻せばスライスになってるよね、というのが型エラースライシング。制約と元のプログラムの対応付けをどうするかがこの論文のコア部分。型エラースライシングは面白いので最近実装している情報流解析のための型システムに応用してみたけど、元のプログラムに戻すところがやっぱり面倒。
author="飯村 枝里 and 小林 直樹 and 末永 幸平",
title="{型エラースライシングによるデッドロックの原因特定}",
journal="情報処理学会論文誌 プログラミング",
volumn="1",
number="2",
pages="71--84",
year="2008"
Recency Types for Dynamically-Typed, Object-Based Languages
JavaScript のような動的型付けでオブジェクトな言語の型システムの提案。うまいようにも見えるし微妙な感じにも見えるのは読み方が甘いのかなんなのか。同じロケーションに割り付けられたオブジェクトは基本的には最新のものしか見えなくて、古いのはそこにあったことだけわかるような仕掛けになっている。preservation と progression が示されているけど、やっぱりどことなく納得いかない感じ。
author="Philip Heidegger and Peter Thiemann",
title="{Recency Types for Dynamically-Typed, Object-Based Languages}",
booktitle="FOOL'09",
publisher="ACM",
year="2009"
PR-Miner: Automatically Extracting Implicit Programming Rules and Detecting Violations in Large Software Code
初めにこの関数を呼んで次にこれを呼んで最後にあれを呼ぶ、といった暗黙知となっているようなルールを抽出するとともに、関数の呼び忘れみたいなルールに反すると思われるコードを検出する手法の論文。単純な方法では場合の数が爆発するので、frequent itemset mining を応用する。手法としては、パターンの抽出、ルールの生成、違反の検出の順で、前の 2 つに対して frequent itemset mining 特に FPclose を利用。基本的には関数内で呼び出す関数や利用する変数の名前に着目して関数ごとに解析するが、関数をまたがったルールに対応するために関数間解析も行う。
author="Zhenmin Li and Yuanyuan Zhou",
title="{PR-Miner: Automatically Extracting Implicit Programming Rules and Detecting Violations in Large Software Code}",
booktitle="FSE'05",
publisher="ACM",
pages="306--315",
year="2005"