Concurrent computing: Difference between revisions

Content deleted Content added
Monkbot (talk | contribs)
m Task 18 (cosmetic): eval 14 templates: del empty params (1×); hyphenate params (3×); del |ref=harv (2×);
Monkbot (talk | contribs)
m Task 18 (cosmetic): eval 14 templates: hyphenate params (2×);
Line 90:
Concurrent computing developed out of earlier work on railroads and [[telegraphy]], from the 19th and early 20th century, and some terms date to this period, such as semaphores. These arose to address the question of how to handle multiple trains on the same railroad system (avoiding collisions and maximizing efficiency) and how to handle multiple transmissions over a given set of wires (improving efficiency), such as via [[time-division multiplexing]] (1870s).
 
The academic study of concurrent algorithms started in the 1960s, with {{Harvtxt|Dijkstra|1965}} credited with being the first paper in this field, identifying and solving [[mutual exclusion]].<ref>{{Citation | url=http://www.podc.org/influential/2002.html | title=PODC Influential Paper Award: 2002 | work=ACM Symposium on Principles of Distributed Computing | accessdateaccess-date=2009-08-24}}</ref>
 
==Prevalence==
Line 169:
* [[Reia (programming language)|Reia]]—uses asynchronous message passing between shared-nothing objects
* [[Red (programming language)|Red/System]]—for system programming, based on [[Rebol]]
* [[Rust (programming language)|Rust]]—for system programming, using message-passing with move semantics, shared immutable memory, and shared mutable memory.<ref name="bblum2012">{{cite web|url=http://winningraceconditions.blogspot.com/2012/09/rust-4-typesafe-shared-mutable-state.html|title=Typesafe Shared Mutable State|last1=Blum|first1=Ben|accessdateaccess-date=2012-11-14|year=2012}}</ref>
* [[Scala (programming language)|Scala]]—general purpose, designed to express common programming patterns in a concise, elegant, and type-safe way
* [[SequenceL]]—general purpose functional, main design objectives are ease of programming, code clarity-readability, and automatic parallelization for performance on multicore hardware, and provably free of [[race condition]]s