Software Practice and Experience · 1986 · 41 citations · 10 references
ComputingComputer ScienceComputer SystemsDistributed SystemsParallel ComputingProgramming LanguagesConcurrent ProgrammingParallel Computing SystemsSynchronization PrimitivesConcurrent ComputationConcurrent ProcessesParallel Program SynchronizationProcess Synchronization PrimitivesRendezvous CommunicationSynchronizationSynchronization Mechanisms
Concurrent programming is becoming increasingly important because multicomputers, particularly networks of microprocessors, are rapidly becoming attractive alternatives to traditional maxicomputers. Effective use of such network computers requires that programs be written with components that can be executed in parallel. The C programming language does not have concurrent programming facilities. Our objective is to enhance C so that it can be used to write concurrent programs that can run efficiently on both single computers and multicomputers. Our concurrent programming extensions to C are based on the rendezvous concept. These extensions include mechanisms for the declaration and creation of processes, for process synchronization and interaction, and for process termination and abortion. We give a rationale for our decisions and compare Concurrent C extensions with the concurrent programming facilities in Ada. Concurrent C has been implemented on the UNIX system running on a single processor. A distributed version of Concurrent C is being implemented.
10
Communicating sequential processes
C. A. R. Hoare · Communications of the ACM · 1978 · 3.5K citations · Full text
Rationale for the design of the Ada programming language
Jean D. Ichbiah, Bernd Krieg-Brueckner, Brian Wichmann et al. · ACM SIGPLAN Notices · 1979 · 408 citations · Full text