  Computing professionals in areas like compilers, performance analysis, and
security often analyze and manipulate control flow graphs (CFGs) in their work.
CFGs are directed networks that describe possible orderings of instructions in
the execution of a program. Visualizing a CFG is a common activity in
developing or debugging computational approaches that use them. However,
general graph drawing layouts, including the hierarchical ones frequently
applied to CFGs, do not capture CFG-specific structures or tasks and thus the
resulting drawing may not match the needs of their audience, especially for
more complicated programs. While several algorithms offer flexibility in
specifying the layout, they often require expertise with graph drawing layouts
and primitives that these potential users do not have. To bring domain-specific
CFG drawing to this audience, we develop CFGConf, a library designed to match
the abstraction level of CFG experts. CFGConf provides a JSON interface that
produces drawings that can stand-alone or be integrated into multi-view
visualization systems. We developed CFGConf through an interactive design
process with experts while incorporating lessons learned from previous CFG
visualization systems, a survey of CFG drawing conventions in computing systems
conferences, and existing design principles for notations. We evaluate CFGConf
in terms of expressiveness, usability, and notational efficiency through a user
study and illustrative examples. CFG experts were able to use the library to
produce the domain-aware layouts and appreciated the task-aware nature of the
specification.
