2009 · 69 citations · 46 references
ComputingComputer ScienceImpact MeasurementInformation RetrievalNorm-referenced AssessmentReference CheckingSoftware Composition AnalysisConcurrent Program TestingNon-deterministic Execution Analysis
The trend towards processors with more and more parallel cores is increasing the need for software that can take advantage of parallelism. The most widespread method for writing parallel software is to use explicit threads. Writing correct multithreaded programs, however, has proven to be quite challenging in practice. The key difficulty is non-determinism. The threads of a parallel application may be interleaved non-deterministically during execution. In a buggy program, non-deterministic scheduling will lead to non-deterministic results - some interleavings will produce the correct result while others will not.
46
An axiomatic basis for computer programming
C. A. R. Hoare · Communications of the ACM · 1969 · 3.9K citations · Full text
Bertrand Meyer · Computer · 1992 · 2.1K citations
Computing, Computer Science, Design +15
David Gay, Philip Levis, Robert von Behren et al. · ACM SIGPLAN Notices · 2014 · 1.7K citations
Stefan Savage, Michael T. Burrows, Greg Nelson et al. · ACM Transactions on Computer Systems · 1997 · 1.6K citations · Full text