Hi List,
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.
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.
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.
In case any list member is curious, I have got some preliminary plots
hosted at http://agni.csa.iisc.ernet.in/nganesh/plots ; 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}.
Thanks
-ganesh
[0] http://www.haskell.org/haskellwiki/Applications_and_libraries; I
picked up whatever I could compile. I am yet to get cabal running.
[1] Am presently constructing the call graphs from disassembled
application binaries; resultant graph includes ghc runtime library calls.