@InProceedings{BrownSmith09, title = "{R}elating and {V}isualising {CSP}, {VCR} and {S}tructural {T}races", author= "Brown, Neil C.C. and Smith, Marc L.", editor= "Welch, Peter H. and Roebbers, Herman and Broenink, Jan F. and Barnes, Frederick R. M. and Ritson, Carl G. and Sampson, Adam T. and Stiles, G. S. and Vinter, Brian", pages = "89--103", booktitle= "{C}ommunicating {P}rocess {A}rchitectures 2009", isbn= "978-1-60750-065-0", year= "2009", month= "nov", abstract= "As well as being a useful tool for formal reasoning, a trace can provide insight into a concurrent program's behaviour, especially for the purposes of run-time analysis and debugging. Long-running programs tend to produce large traces which can be difficult to comprehend and visualise. We examine the relationship between three types of traces (CSP, VCR and Structural), establish an ordering and describe methods for conversion between the trace types. Structural traces preserve the structure of composition and reveal the repetition of individual processes, and are thus well-suited to visualisation. We introduce the Starving Philosophers to motivate the value of structural traces for reasoning about behaviour not easily predicted from a program's specification. A remaining challenge is to integrate structural traces into a more formal setting, such as the Unifying Theories of Programming -- however, structural traces do provide a useful framework for analysing large systems." }