Title
Understanding interleaved code
Abstract
Complex programs often contain multiple, interwoven strands of computation, each responsible for accomplishing a distinct goal. The individual strands responsible for each goal are typically delocalized and overlap rather than being composed in a simple linear sequence. We refer to these code fragments as being . Interleaving may be intentional-for example, in optimizing a program, a programmer might use some intermediate result for several purposes-or it may creep into a program unintentionally, due to patches, quick fixes, or other hasty maintenance practices. To understand this phenomenon, we have looked at a variety of instances of interleaving in actual programs and have distilled characteristic features. This paper presents our characterization of interleaving and the implications it has for tools that detect certain classes of interleaving and extract the individual strands of computation. Our exploration of interleaving has been done in the context of a case study of a corpus of production mathematical software, written in Fortran from the Jet Propulsion Laboratory. This paper also describes our experiences in developing tools to detect specific classes of interleaving in this software, driven by the need to enhance a formal description of this software library's components. The description, in turn aids in the automated component-based synthesis of software using the library.
Year
DOI
Venue
1996
10.1007/BF00126959
Autom. Softw. Eng.
Keywords
Field
DocType
software understanding,interleaving,domain models,specification extraction,analysis tools
Programming language,Programmer,Software engineering,Computer science,Fortran,Formal description,Theoretical computer science,Software,Mathematical software,Domain model,Interleaving,Computation
Journal
Volume
Issue
ISBN
3
1/2
0-7923-9756-8
Citations 
PageRank 
References 
14
0.97
29
Authors
3
Name
Order
Citations
PageRank
Spencer Rugaber161973.52
Kurt Stirewalt231230.24
Linda M Wills329340.95