休日(でなくてもいいけれど)の読書の題材としてコンピュータ・プログラムを選んだとき、単にコードを読むだけでなく、何か図形的な補佐が欲しいと思うことがある。 オブジェクト指向の言語だとUML図が便利だが、別のパラダイムではあまり役に立たない。 たとえばC言語では、プログラムの構成要素である関数(というか手続き)の呼び出し合う関係を視覚化できると少しうれしい(「すごくうれしい」とまではいかない)。 次のようなコードがあったとする。 #include <stdio.h> int fib(int n) { if (n<3) return 1; return fib(n-2)+fib(n-1); } int main() { int i; for (i=1; i<=10; ++i) { printf("fibonacci(%d) = %d\n", i, fib(i)); } return 0; }
![コールグラフを描く2つのツール(EgyptとCodeViz) by Inquisitor](https://cdn-ak-scissors.b.st-hatena.com/image/square/f4ea9dadb508cff4c59733b80392e5058a01ceae/height=288;version=1;width=512/http%3A%2F%2Fecx.images-amazon.com%2Fimages%2FI%2F51VNQ5GGEVL._SL160_.jpg)