{"title":"Representation and Implementation of CSP and VCR Traces","authors":"Neil C. C. Brown, Marc L. Smith","doi":"10.3233/978-1-58603-907-3-329","DOIUrl":null,"url":null,"abstract":"Communicating Sequential Processes (CSP) was developed around a for- mal algebra of processes and a semantics based on traces (and failures and diver- gences). A trace is a record of the events engaged in by a process. Several program- ming languages use, or have libraries to use, CSP mechanisms to manage their con- currency. Most of these lack the facility to record the trace of a program. A standard trace is a flat list of events but structured trace models are possible that can provide more information such as the independent or concurrent engagement of the process in some of its events. One such trace model is View-Centric Reasoning (VCR), which offers an additional model of tracing, taking into account the multiple, possibly imper- fect views of a concurrent computation. This paper also introduces \"structural\" traces, a new type of trace that reflects the nested parallelism in a CSP system. The paper describes the automated generation of these three trace types in the Communicating Haskell Processes (CHP) library, using techniques which could easily be applied in other libraries such as JCSP and C++CSP2. The ability to present such traces of a concurrent program assists in understanding the behaviour of real CHP programs and for debugging when the trace behaviours are wrong. These ideas and tools promote a deeper understanding of the association between practicalities of real systems soft- ware and the underlying CSP formalism.","PeriodicalId":246267,"journal":{"name":"Communicating Process Architectures Conference","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2008-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"8","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Communicating Process Architectures Conference","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.3233/978-1-58603-907-3-329","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 8
Abstract
Communicating Sequential Processes (CSP) was developed around a for- mal algebra of processes and a semantics based on traces (and failures and diver- gences). A trace is a record of the events engaged in by a process. Several program- ming languages use, or have libraries to use, CSP mechanisms to manage their con- currency. Most of these lack the facility to record the trace of a program. A standard trace is a flat list of events but structured trace models are possible that can provide more information such as the independent or concurrent engagement of the process in some of its events. One such trace model is View-Centric Reasoning (VCR), which offers an additional model of tracing, taking into account the multiple, possibly imper- fect views of a concurrent computation. This paper also introduces "structural" traces, a new type of trace that reflects the nested parallelism in a CSP system. The paper describes the automated generation of these three trace types in the Communicating Haskell Processes (CHP) library, using techniques which could easily be applied in other libraries such as JCSP and C++CSP2. The ability to present such traces of a concurrent program assists in understanding the behaviour of real CHP programs and for debugging when the trace behaviours are wrong. These ideas and tools promote a deeper understanding of the association between practicalities of real systems soft- ware and the underlying CSP formalism.