{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,2]],"date-time":"2026-05-02T10:06:38Z","timestamp":1777716398124,"version":"3.51.4"},"reference-count":28,"publisher":"SAGE Publications","issue":"2","license":[{"start":{"date-parts":[[1989,4,1]],"date-time":"1989-04-01T00:00:00Z","timestamp":607392000000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/journals.sagepub.com\/page\/policies\/text-and-data-mining-license"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["The International Journal of Robotics Research"],"published-print":{"date-parts":[[1989,4]]},"abstract":"<jats:p>Many current robot systems exhibit a significant degree of concurrency, doing many activities in parallel. Future sensor- based robots are expected to exhibit even more concurrency. Programs to control such robots are characterized by the need to wait for external events and\/or handle interrupts, deal with concurrent activities, synchronize actions with external events, and communicate with other robots and processes. In this paper, we focus on the advantages of concurrent pro gramming for robotics and suggest that a general-purpose language with the right facilities is a good vehicle for robot programming. In this context we will discuss Concurrent C, an upward-compatible extension of the C language that provides high-level concurrent programming facilities. We give an historical perspective of concurrent programming followed by a brief description of Concurrent C and how Concurrent C programs communicate with robots and de vices. We show by examples how Concurrent C simplifies writing robot programs. Of specific interest are the process interaction and related interrupt handling facilities. We conclude that high-level concurrent programming facilities provide significant advantages for robot programming. In particular, transaction facilities provide an elegant means by which to synchronize with external events and communicate with interacting robots and manufacturing processes. Inter rupts may also be mapped to high-level transaction calls within the language. A concurrent programming language provides a framework in which to describe and develop con current solutions and can hide many details associated with distributed processing from the user. Finally, we believe that a high-level concurrent programming language such as Con current C is not only useful for robotics but also for manufac turing processes in general.<\/jats:p>","DOI":"10.1177\/027836498900800201","type":"journal-article","created":{"date-parts":[[2007,3,4]],"date-time":"2007-03-04T20:24:06Z","timestamp":1173039846000},"page":"3-16","source":"Crossref","is-referenced-by-count":20,"title":["Concurrent Programming and Robotics"],"prefix":"10.1177","volume":"8","author":[{"given":"Ingemar J.","family":"Cox","sequence":"first","affiliation":[{"name":"AT&T Bell Laboratories Murray Hill, New Jersey 07974"}]},{"given":"Narain H.","family":"Gehani","sequence":"additional","affiliation":[{"name":"AT&T Bell Laboratories Murray Hill, New Jersey 07974"}]}],"member":"179","published-online":{"date-parts":[[1989,4,1]]},"reference":[{"key":"atypb1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-96883-9"},{"key":"atypb2","doi-asserted-by":"publisher","DOI":"10.1109\/MC.1982.1653918"},{"key":"atypb3","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1975.6312840"},{"key":"atypb4","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380110404"},{"key":"atypb5","author":"Cmelik, R.F.","year":"1988","journal-title":"IEEE Trans. Software Enging"},{"key":"atypb6","volume-title":"Cooperating sequential processes. In Programming languages","author":"Dijkstra, E.W.","year":"1968"},{"issue":"6","key":"atypb7","volume":"14","author":"DoD","year":"1979","journal-title":"SIGPLAN Notices"},{"key":"atypb8","volume-title":"Ada: Concurrent programming","author":"Gehani, N.H.","year":"1984"},{"key":"atypb9","volume-title":"Synchronous versus asynchronous message passing","author":"Gehani, N.H.","year":"1987"},{"key":"atypb10","doi-asserted-by":"crossref","unstructured":"Gehani, N.H., and Roome, W.D. 1986. Concurrent C. Software\u2014Practice & Experience 16(9):821-844.","DOI":"10.1002\/j.1097-024X.1986.tb00013.x"},{"key":"atypb11","volume-title":"Concurrent C++: Concurrent programming with class(es). To be published in Software\u2014Practice & Experience","author":"Gehani, N.H.","year":"1988"},{"key":"atypb12","author":"Gehani, N.H.","year":"1988","journal-title":"IEEE Trans. Software Enging"},{"key":"atypb13","volume-title":"IEEE Workshop on Languages for Automation","author":"Hayward, V."},{"key":"atypb14","doi-asserted-by":"publisher","DOI":"10.1145\/355620.361161"},{"key":"atypb15","doi-asserted-by":"publisher","DOI":"10.1145\/359576.359585"},{"key":"atypb16","unstructured":"Kapilow, D.A. 1985. Real-time programming in a UNIX environment. Symp. on Factory Automation and Robotics, Courant Institute of Mathematical Sciences, New York University, pp. 28-29."},{"key":"atypb17","first-page":"834","author":"Kanayama, Y.","year":"1983","journal-title":"Artificial Intelligence"},{"key":"atypb18","volume-title":"The C programming language","author":"Kernighan, B.W.","year":"1978"},{"key":"atypb19","volume-title":"General Motors manufacturing automation protocol","year":"1984"},{"key":"atypb20","doi-asserted-by":"publisher","DOI":"10.1016\/0165-6074(84)90010-3"},{"key":"atypb21","volume-title":"Proc. 1986 Fall Joint Computer Conf","author":"Nackman, L.R."},{"key":"atypb22","volume-title":"Conf. Record Tenth Annual ACM Symp. Principles of Programming Languages","author":"Pratt, V."},{"key":"atypb23","doi-asserted-by":"publisher","DOI":"10.1002\/j.1538-7305.1978.tb02140.x"},{"key":"atypb24","doi-asserted-by":"crossref","unstructured":"Sawyer, B. A. 1968. U.S. patent 3,376,578.","DOI":"10.1136\/bmj.3.5614.376"},{"key":"atypb25","volume-title":"The C++ programming language","author":"Stroustrup, B.","year":"1986"},{"key":"atypb26","doi-asserted-by":"publisher","DOI":"10.1177\/027836498200100302"},{"key":"atypb27","unstructured":"Volz, R.A. 1985. Distributed systems integration tools for robotics. Symp. Factory Automation and Robotics, Courant Institute of Mathematical Sciences, New York University, pp. 23-25."},{"key":"atypb28","volume-title":"Proc. SME Canf. Robotics Research: The Next Five Years","author":"Volz, R.A."}],"container-title":["The International Journal of Robotics Research"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/journals.sagepub.com\/doi\/pdf\/10.1177\/027836498900800201","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/journals.sagepub.com\/doi\/pdf\/10.1177\/027836498900800201","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,4,29]],"date-time":"2026-04-29T10:18:15Z","timestamp":1777457895000},"score":1,"resource":{"primary":{"URL":"https:\/\/journals.sagepub.com\/doi\/10.1177\/027836498900800201"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1989,4]]},"references-count":28,"journal-issue":{"issue":"2","published-print":{"date-parts":[[1989,4]]}},"alternative-id":["10.1177\/027836498900800201"],"URL":"https:\/\/doi.org\/10.1177\/027836498900800201","relation":{},"ISSN":["0278-3649","1741-3176"],"issn-type":[{"value":"0278-3649","type":"print"},{"value":"1741-3176","type":"electronic"}],"subject":[],"published":{"date-parts":[[1989,4]]}}}