Premium
Concurrent C
Author(s) -
Gehani N. H.,
Roome W. D.
Publication year - 1986
Publication title -
software: practice and experience
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.437
H-Index - 70
eISSN - 1097-024X
pISSN - 0038-0644
DOI - 10.1002/j.1097-024x.1986.tb00013.x
Subject(s) - computer science , concurrent object oriented programming , concurrent computing , rendezvous , programming language , synchronization (alternating current) , unix , process (computing) , concurrent constraint logic programming , operating system , programming paradigm , parallel computing , distributed computing , procedural programming , inductive programming , functional logic programming , software , computer network , channel (broadcasting) , engineering , spacecraft , aerospace engineering
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.