Hi List,<br>
<br>
I am planning a study on statistical properties of (static) call graphs
for programs written in different languages; the idea is to compute a
handful of "relevant" graph structural metrics and see what
they have to say about the software/language.<br>
<br>
In this lieu, I am studying following languages - C, C++, Haskell,
OCaml and hopefully Scheme and Java. I picked up a handful of Haskell
applications from Haskell Apps repository [0] and computed the call graph for
them [1]. But am not quite sure if the applications are representative; for one,
the graphs are quantitatively distinct! In addition, this difference appears consistent across
the Haskell applications I tried. Am not sure if its GHC compiler/runtime effect or Haskell
effect though. Should the effects are artifact of disassembly, likely that OCaml
graphs would have exhibited them too.<br>
<br>
<br>Is there any particular application(s) that is quintessentially
Haskell'sh that I could convince myself that my samples are
representative?! I am fledging new to Haskell and would appreciate some
pointers in picking up the "few, but ripe" ones. Hope it's fine.<br>
<br>In case any list member is curious, I have got some preliminary plots
hosted at <a href="http://agni.csa.iisc.ernet.in/nganesh/plots">http://agni.csa.iisc.ernet.in/nganesh/plots</a> ; horizontal
dividers represent language boundaries [top, bottom) and in/out/total
stand for degrees. I have five Haskell applications enlisted: Yarrow, Frown, DrIFT, HaXml.{Validate/Extract}.<br>
<br>
Thanks<br>
-ganesh<br>
<br>
[0] <a href="http://www.haskell.org/haskellwiki/Applications_and_libraries">http://www.haskell.org/haskellwiki/Applications_and_libraries</a>; I
picked up whatever I could compile. I am yet to get cabal running.<br>
[1] Am presently constructing the call graphs from disassembled
application binaries; resultant graph includes ghc runtime library calls. <br>