Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Effects for cooperable and serializable threads
Yi J., Flanagan C.  TLDI 2010 (Proceedings of the 5th ACM SIGPLAN Workshop on Types in Language Design and Implementation, Madrid, Spain, Jan 23, 2010)3-14.2010.Type:Proceedings
Date Reviewed: Apr 30 2010

Writing ubiquitously threaded code is still an uncommon practice, as not all problems are suited to threads--and this is unlikely to change any time soon. When problems are suited for threading, good threaded code is hard to craft. This paper steps into the future, introducing an original synchronization construct diminutively called “yield.”

Rather than a throwback from cooperative multitasking, yield becomes, in the hands of Yi and Flanagan, a primitive construct suited to reasoning about concurrency in a fully preemptive environment, endowed with original properties and substantial theoretical support. Instead of being another form of locking to guarantee sequential execution, yield is a specification that indicates where context switches are allowed to happen or where interference with sequential execution may occur. As Yi and Flanagan state: “An atomic method is simply one that can never execute a yield annotation.” Yield does not replace locks; it works synergistically as an aid to enable static analysis of the correctness of synchronization, even when such code is executed in a dynamic, preemptive environment. Code written with locks and yield annotations appears susceptible to automated verification that serialization will happen without race conditions.

If this promise--tool support for static analysis of correctness--can be realized in practice, this paper promises to become quite popular. Correctness does not guarantee better performance, which is the ultimate goal of multi-threaded execution, yet a guarantee of correctness will encourage audacity in its pursuit. Since great ideas are seldom born in a vacuum, the paper includes a rich list of references upon which it builds.

Reviewer:  A. Squassabia Review #: CR137953 (1104-0402)
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
Parallel Programming (D.1.3 ... )
 
 
Program Analysis (F.3.2 ... )
 
 
Reliability (D.2.4 ... )
 
 
Specification Techniques (F.3.1 ... )
 
 
Semantics Of Programming Languages (F.3.2 )
 
 
Software/ Program Verification (D.2.4 )
 
  more  
Would you recommend this review?
yes
no
Other reviews under "Parallel Programming": Date
How to write parallel programs: a first course
Carriero N. (ed), Gelernter D. (ed), MIT Press, Cambridge, MA, 1990. Type: Book (9780262031714)
Jul 1 1992
Parallel computer systems
Koskela R., Simmons M., ACM Press, New York, NY, 1990. Type: Book (9780201509373)
May 1 1992
Parallel functional languages and compilers
Szymanski B. (ed), ACM Press, New York, NY, 1991. Type: Book (9780201522433)
Sep 1 1993
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy