Abstract
The author selects classic papers written by the computer scientists who made the major breakthroughs in concurrent programming. These papers cover the pioneering era of the field from the semaphores of the mid 1960s to the remote procedure calls of the late 1970s. The author summarizes the classic papers and puts them in historical perspective.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Bibliography
• G. R. Andrews and F. B. Schneider 1983. Concepts and notations for concurrent programming. Computing Surveys 15, 1 (March), 3–43.
• G. R. Andrews 1991. Concurrent Programming: Principles and Practice. Benjamin/Cummings, Redwood City, CA.
° G. R. Andrews 1993. Reviewers’ comments. In P. Brinch Hansen, Monitors and Concurrent Pascal: a personal history. SIGPLAN Notices 28, 3 (March 1993), 1–35.
• H. E. Bal, J. G. Steiner and A. S. Tanenbaum 1989. Programming languages for distributed computing systems. A CM Computing Surveys 21, (September), 261–322.
• J. Bishop 1986. Data Abstraction in Programming Languages. Addison-Wesley, Reading, MA.
• J. Boyle, R. Butler, Terrence Disz, Barnett Glickfeld, Ewing Lusk, Ross Overbeek, James Patterson and Rick Stevens 1987. Portable Programs for Parallel Processors. Holt, Rinehart and Winston, New York.
° P. Brinch Hansen 1967a. The logical structure of the RC 4000 computer. BIT 7, 3, 191–199.
° P. Brinch Hansen 1967b. The RC 4000 real-time control system at Pulawy. BIT 7, 4. 279–288.
° P. Brinch Hansen 1968. The Structure of the RC 4000 Monitor. Regnecentralen, Copenhagen, Denmark (February).
* P. Brinch Hansen 1969. RC 4000 Software: Multiprogramming System. Regnecentralen, Copenhagen, Denmark, (April). Article 3.
• P. Brinch Hansen 1970. The nucleus of a multiprogramming system. Communications of the ACM 13, 4 (April), 238–241, 250.
* P. Brinch Hansen 1971a. An outline of a course on operating system principles. In C. A. R. Hoare and R. H. Perrott Eds. 1972, Operating Systems Techniques, Proceedings of a Seminar at Queen’s University, Belfast, Northern Ireland, August-September 1971, Academic Press, New York, 29–36. Article 6.
• P. Brinch Hansen 1972a. A comparison of two synchronizing concepts. Acta Informatica 1, 3 (1972), 190–199.
* P. Brinch Hansen 1972b. Structured multiprogramming. Communications of the ACM 15, 7 (July), 574–578. Article 7.
• P. Brinch Hansen 1973a. Testing a multiprogramming system. Software-Practice and Experience 3, 2 (April-June), 145–150.
• P. Brinch Hansen 1973b. Operating System Principles. Prentice-Hall, Englewood Cliffs, NJ (May).
* P. Brinch Hansen 1973c. Class Concept. In Operating System Principles, P. Brinch Hansen, Prentice Hall, Englewood Cliffs, NJ, (July 1973), 226–232. Article 8.
° P. Brinch Hansen 1973d. On September 6, 1973, I sent Mike McKeag “a copy of a preliminary document that describes my suggestion for an extension of Pascal with concurrent processes and monitors” (R. M. McKeag, letter to P. Brinch Hansen, July 3, 1991). No longer available.
° P. Brinch Hansen 1973e. Concurrent programming concepts. ACM Computing Surveys 5, 4, (December), 223–245.
° P. Brinch Hansen 1974a. Concurrent Pascal: a programming language for operating system design. Information Science, California Institute of Technology, Pasadena, CA, (April). (Referenced in A. Silberschatz, R. B. Kieburtz and A. J. Bernstein 1977. Extending Concurrent Pascal to allow dynamic resource management. IEEE Transactions on Software Engineering 3, (May), 210–217.)
* P. Brinch Hansen 1975a. The programming language Concurrent Pascal. IEEE Transactions on Software Engineering 1, 2 (June), 199–207. Original version: Information Science, California Institute of Technology, Pasadena, CA, (November 1974). Article 10.
* P. Brinch Hansen 1975b. The Solo operating system: a Concurrent Pascal program. Information Science, California Institute of Technology, Pasadena, CA, (June-July). Also in Software-Practice and Experience 6, 2 (April-June 1976), 141–149. Article 11.
* P. Brinch Hansen 1975c. The Solo operating system: processes, monitors and classes. Information Science, California Institute of Technology, Pasadena, CA, (June-July). Also in Software-Practice and Experience 6, 2 (April-June 1976), 165–200. Article 12.
° P. Brinch Hansen 1975d. Concurrent Pascal report. Information science, California Institute of Technology, Pasadena, CA, (June).
Also in P. Brinch Hansen 1977b, The Architecture of Concurrent Programs, Prentice-Hall, Englewood Cliffs, NJ, (July), 231–270.
° P. Brinch Hansen and A. C. Hartmann 1975e. Sequential Pascal report. Information science, California Institute of Technology, Pasadena, CA, (July).
° P. Brinch Hansen 1975f. Concurrent Pascal machine. Information Science, California Institute of Technology, Pasadena, CA, (October).
Also in P. Brinch Hansen 1977b, The Architecture of Concurrent Programs, Prentice-Hall, Englewood Cliffs, NJ, (July), 271–297.
° P. Brinch Hansen 1976a. Innovation and trivia in program engineering. Guest Editorial, Software-Practice and Experience 6, 2 (April-June), 139–140.
° P. Brinch Hansen 1976b. Concurrent Pascal implementation notes. Information Science, California Institute of Technology, Pasadena, CA. No longer available. (Referenced in M. S. Powell, Experience of transporting and using the Solo operating system. Software-Practice and Experience 9, 7 (July 1979), 561–570.)
• P. Brinch Hansen 1977a. Experience with modular concurrent programming, IEEE Transactions on Software Engineering 3, 2 (March), 156–159.
• P. Brinch Hansen 1977b. The Architecture of Concurrent Programs. PrenticeHall, Englewood Cliffs, NJ, (July).
* P. Brinch Hansen 1977c. Design Principles. In P. Brinch Hansen, The Architecture of Concurrent Programs, Prentice Hall, Englewood Cliffs, NJ, (July), 3–14. Article 13.
• P. Brinch Hansen 1978a. Network: A multiprocessor program. IEEE Transactions on Software Engineering 4, 3 (May), 194–199.
• P. Brinch Hansen and J. Staunstrup 1978b. Specification and implementation of mutual exclusion. IEEE Transactions on Software Engineering 4, 4 (September), 365–370.
* P. Brinch Hansen 1978c. Distributed Processes: a concurrent programming concept. Communications of the ACM 21, 11 (November), 934–941. Article 16.
• P. Brinch Hansen 1978d. A keynote address on concurrent programming. IEEE Computer Software and Applications Conference, Chicago, IL, (November), 1–6. Also in Computer 12, 5 (May 1979), 50–56.
• P. Brinch Hansen 1978e. Reproducible testing of monitors. Software-Practice and Experience 8, 6 (November-December), 721–729.
• P. Brinch Hansen 1979. The end of a heroic era. In P. Wegner Ed. Research Directions in Software Technology, MIT Press, Cambridge, MA, 646–649.
• P. Brinch Hansen and J. A. Fellows 1980. The Trio operating system. Software-Practice and Experience 10, 11 (November), 943–948.
• P. Brinch Hansen 1981. The design of Edison. Software-Practice and Experience 11, 4 (April), 363–396.
* P. Brinch Hansen 1987a. Joyce-A programming language for distributed systems. Software-Practice and Experience 17, 1 (January), 29–50. Article 17.
• P. Brinch Hansen 1987b. A Joyce implementation. Software-Practice and Experience 17, 4 (April 1987), 267–276.
° P. Brinch Hansen and A. Rangachari 1988. Joyce performance on a multiprocessor. School of Computer and Information Science. Syracuse University, NY, (September).
• P. Brinch Hansen 1989a. The Joyce language report. Software-Practice and Experience 19, 6 (June), 553–578.
• P. Brinch Hansen 1989b. A multiprocessor implementation of Joyce. Software-Practice and Experience 19, 6 (June), 579–592.
• P. Brinch Hansen 1990. The nature of parallel programming. In M. A. Arbib and J. A. Robinson Eds., Natural and Artificial Parallel Computation, MIT Press, Cambridge, MA, 31–46.
• P. Brinch Hansen 1993a. Monitors and Concurrent Pascal: a personal history. SIGPLAN Notices 28, 3 (March), 1–35.
Also in T. J. Bergin and R. G. Gibson Eds. 1996, History of Programming Languages II, Addison-Wesley Publishing, Reading, MA, 121–172.
• P. Brinch Hansen 1993b. Model programs for computational science: a programming methodology for multicomputers. Concurrency-Practice and Experience 5, 5 (August), 407–423.
• P. Brinch Hansen 1993c. Parallel cellular automata: a model program for computational science. Concurrency-Practice and Experience 5, 5(August), 425–448.
° P. Brinch Hansen 1993d. Letter to D. L. Parnas, (December 17).
• P. Brinch Hansen 1994a. Do hypercubes sort faster than tree machines? Concurrency-Practice and Experience 6, 2 (April), 143–151.
• P. Brinch Hansen 1994b. The programming language SuperPascal. Software-Practice and Experience 24, 5 (May), 467–483.
* P. Brinch Hansen 1994c. SuperPascal-A publication language for parallel scientific computing. Concurrency-Practice and Experience 6, 5 (August), 461–483. Article 18.
• P. Brinch Hansen 1994d. Interference control in SuperPascal-a block-structured parallel language. The Computer Journal 37, 5, 399–406.
• P. Brinch Hansen 1995a. Studies in Computational Science: Parallel Programming Paradigms. Prentice Hall, Englewood Cliffs, NJ, (March).
* P. Brinch Hansen 1995b. Efficient parallel recursion, SIGPLAN Notices 30, 12 (December), 9–16. Article 19.
• P. Brinch Hansen 1996. The Search for Simplicity: Essays in Parallel Programming. IEEE Computer Society Press, Los Alamitos, CA, (April).
• P. Brinch Hansen 1999. Java’s insecure parallelism. SIGPLAN Notices 34, 4 (April), 38–45.
• P. Brinch Hansen 2000. The evolution of operating systems. In P. Brinch Hansen Ed. 2001, Classic Operating Systems: From Batch Processing to Distributed Systems, Springer-Verlag, New York, (January), 1–34.
• P. Brinch Hansen Ed. 2001. Classic Operating Systems: From Batch Processing to Distributed Systems. Springer-Verlag, New York, (January).
• C. Bron 1972. Allocation of virtual store in the THE multiprogramming system. In C. A. R. Hoare and R. H. Perrott Eds., Operating Systems Techniques, Academic Press, New York, 168–184.
• R. H. Campbell and A. N. Habermann 1974. The specification of process synchronization by path expressions. Lecture Notes in Computer Science 16, SpringerVerlag, New York, 89–102.
• N. Carriero and D. Gelernter 1989. Linda in context. Communications of the ACM 32, 4 (April), 444–458.
• R. S. Cok 1991. Parallel Programs for the Transputer. Prentice Hall, Englewood Cliffs, NJ.
• M. I. Cole 1989. Algorithmic Skeletons: Structured Management of Parallel Computation. MIT Press, Cambridge, MA.
• D. Coleman 1980. Concurrent Pascal-an appraisal. In R. M. McKeag and A. M. Macnaghten Eds., On the Construction of Programs, Cambridge University Press, New York, 213–227.
° Cosine Report 1971, An Undergraduate Course on Operating Systems Principles, P. J. Denning, J. B. Dennis, B. Lampson, A. N. Haberman, R. R. Muntz and D. Tsichritzis Eds., Commission on Education, National Academy of Engineering, Washington, DC, (June).
• P. J. Courtois, F. Heymans and D. L. Parnas 1971. Concurrent control with “readers” and “writers.” Communications of the ACM 14, 10 (October), 667–668.
° O.-J. Dahl and K. Nygaard 1963. Preliminary presentation of the Simula language (as of May 18, 1963) and some examples of network descriptions. Norwegian Computing Center, Oslo, Norway.
• O.-J. Dahl and C. A. R. Hoare 1972. Hierarchical program structures. In O.-J. Dahl, E. W. Dijkstra and C. A. R. Hoare, Eds., Structured Programming, Academic Press, New York, 175–220.
° O.-J. Dahl 1993. Reviewers’ comments. In P. Brinch Hansen, Monitors and Concurrent Pascal: a personal history. SIGPLAN Notices 28, 3 (March), 1–35.
° E. W. Dijkstra 1960. Recursive programming. Numerische Mathematik 2, 312–318.
* E. W. Dijkstra 1965. Cooperating sequential processes. Technological University, Eindhoven, The Netherlands, (September).
Also in F. Genuys Ed. 1968. Programming Languages, Academic Press, New York, 43–112. Article 1.
* E. W. Dijkstra 1968. The structure of the THE multiprogramming system. Communications of the ACM 11, 5 (May), 341–346. Article 2.
* E. W. Dijkstra 1971. Hierarchical ordering of sequential processes. Acta Informatica 1, 2 (October), 115–138. Article 4.
• E. W. Dijkstra 1972a. Notes on structured programming, In O.-J. Dahl, E. W. Dijkstra and C. A. R. Hoare, Eds., Structured Programming, Academic Press, New York, 1–82.
• E. W. Dijkstra 1972b. Information streams sharing a finite buffer. Information Processing Letters 1, 5 (October), 179–180.
* E. W. Dijkstra 1975a. A synthesis emerging?, (July). In E. W. Dijkstra 1982, Selected Writings on Computing: A Personal Perspective, Springer-Verlag, New York, 147–160. Article 14.
• E. W. Dijkstra 1975b. Guarded commands, nondeterminacy and formal derivation of programs. Commmunication of the ACM 18, 8 (August), 453–457.
• E. W. Dijkstra and C. S. Scholten 1982. A class of simple communication patterns. In E. W. Dijkstra, Selected Writings on Computing: A Personal Perspective, Springer-Verlag, New York, 334–337.
° Discussions 1971. Discussions of conditional critical regions and monitors. In C. A. R. Hoare and R. H. Perrott Eds. 1972, Operating Systems Techniques, Proceedings of a Seminar at Queen’s University, Belfast, Northern Ireland, August-September 1971. Academic Press, New York, 100–113.
° J. A. Fellows 1993. Reviewers’ comments. In P. Brinch Hansen, Monitors and Concurrent Pascal: a personal history. SIGPLAN Notices 28, 3 (March), 1–35.
° J. Gosling, B. Joy and G. Steele 1996. The Java Language Specification. AddisonWesley, Reading, MA.
• J. S. Greenfield 1991. Distributed programming with cryptography applications. Lecture Notes in Computer Science 870, Springer-Verlag, New York.
° A. N. Habermann 1967. On the harmonious cooperation of abstract machines. Ph.D. thesis. Technological University, Eindhoven, The Netherlands.
• A. N. Habermann 1972. Synchronization of communicating processes. Communications of the ACM 15, 3 (March), 171–176.
• A. C. Hartmann 1975. A Concurrent Pascal compiler for minicomputers. Ph.D. thesis, Information Science, California Institute of Technology, Pasadena, CA, (September). Also published as Lecture Notes in Computer Science 50, (1977), SpringerVerlag, New York.
° J. M. Havender 1968. Avoiding deadlock in multitasking systems. IBM Systems Journal 7, 2, 74–88.
• C. C. Hayden 1979. Distributed processes: experience and architectures. Ph.D. thesis, Computer Science Department, University of Southern California, Los Angeles, CA.
° C. C. Hayden 1993. Reviewers’ comments. In P. Brinch Hansen, Monitors and Concurrent Pascal: a personal history. SIGPLAN Notices 28, 3 (March), 1–35.
* C. A. R. Hoare 1971. Towards a theory of parallel programming. In C. A. R. Hoare and R. H. Perrott Eds. 1972, Operating Systems Techniques, Proceedings of a Seminar at Queen’s University, Belfast, Northern Ireland, August-September 1971. Academic Press, New York, 61–71. Article 5.
• C. A. R. Hoare 1972. Proof of correctness of data representations. Acta Informatica 1, 271–281.
° C. A. R. Hoare 1973a. A pair of synchronising primitives. On January 11, 1973, Hoare gave Jim Horning a copy of this undated, unpublished draft (J. J. Horning, personal communication, May 1991).
• C. A. R. Hoare 1973b. A structured paging system. Computer Journal 16, (August), 209–214.
° C. A. R. Hoare 1973c. Letter to R. M. McKeag, (October 10).
• C. A. R. Hoare 1974a. Hints on programming language design. In C. Bunyan Ed., Computer Systems Reliability, Infotech International, Berkshire, England, 505–534.
* C. A. R. Hoare 1974b. Monitors: an operating system structuring concept. Communications of the ACM 17, 10 (October), 549–557. Article 9.
° C. A. R. Hoare 1976a. The structure of an operating system. In Language Hierarchies and Interfaces, Springer-Verlag, 1976, 242–265.
• C. A. R. Hoare 1976b. Hints on the design of a programming language for realtime command and control. In J. P. Spencer Ed., Real-time Software: International State of the Art Report, Infotech International, Berkshire, England, 685–699.
* C. A. R. Hoare 1978. Communicating sequential processes. Communications of the ACM 21, 8 (August) 1978, 666–677. Article 15.
° C. A. R. Hoare 1981. A calculus of total correctness for communicating sequential processes. The Science of Computer Programming 1, 1–2 (October), 49–72.
• C. A. R. Hoare 1985. Communicating Sequential Processes. Prentice-Hall, Englewood Cliffs, NJ.
° J. J. Horning 1972. Preliminary report to Karl Karlstrom, computer science editor, Prentice-Hall, on the manuscript of “Operating System Principles” by P. Brinch Hansen, (May 1).
• J. H. Howard 1976. Proving monitors. Communications of the ACM 19, 5 (May), 273–274.
• M. E. C. Hull 1987. occam-a programming language for multiprocessor systems. Computer Languages 12, 1, 27–37.
° IBM 1965. IBM operating system/360 concepts and facilities. In S. Rosen, Ed., Programming Systems and Languages, McGraw-Hill, New York, 598–646.
° Inmos 1988a. Transputer Reference Manual. Prentice Hall, Englewood Cliffs, NJ.
• Inmos 1988b. occam 2 Reference Manual, Prentice Hall, Englewood Cliffs, NJ.
• G. Kahn and D. B. McQueen 1977. Coroutines and networks of parallel processes. In B. Gilchrist Ed., Information Processing 77, North-Holland Publishing, Ansterdam, The Netherlands, 993–998.
• W. H. Kaubisch, R. H. Perrott and C. A. R. Hoare 1976. Quasiparallel programming. Software-Practice and Experience 6, (July-September), 341–356.
• J. M. Kerridge 1982. A Fortran implementation of Concurrent Pascal. Software-Practice and Experience 12, 1 (January), 45–55.
• J. L. W. Kessels 1977. An alternative to event queues for synchronization in monitors. Communications of the ACM 20, 7 (July), 500–503.
° T. Kilburn, R. B. Payne and D. J. Howarth 1961. The Atlas supervisor. AFIPS Computer Conference 20, 279–294.
° D. Knuth and J. L. McNeley 1964. SOL-A symbolic language for general-purpose systems simulation. IEEE Transactions on Electronic Computers 13, 8 (August), 401–408.
• H. S. M. Kruijer 1982. A multi-user operating system for transaction processing written in Concurrent Pascal. Software-Practice and Experience 12, 5 (May), 445–454.
• B. W. Lampson and D. D. Redell 1980. Experience with processes and monitors in Mesa. Communications of the ACM 23, 2 (February), 105–117.
° S. K. Langer 1967. An Introduction to Symbolic Logic. Dover Publications, New York.
• S. Lauesen 1975. A large semaphore based operating system. Communications of the ACM 18, 7 (July), 377–389.
° D. Lea 1997. Concurrent Programming in Java: Design Principles and Patterns. Addison-Wesley, Reading, MA.
° P. J. Leach, P. H. Levine, B. P. Douros, J. A. Hamilton, D. L. Nelson and B. L. Stumpf 1983. The architecture of an integrated local network. IEEE Journal on Selected Areas in Communications 1, 5, 842–856.
• B. H. Liskov 1972. The design of the Venus operating system. Communications of the ACM 15, 3 (March), 144–149.
° R. A. Maddux and H. D. Mills 1979. Review of “The Architecture of Concurrent Programs.” IEEE Computer 12, (May), 102–103.
° R. M. McKeag 1972. A survey of system structure and synchronization techniques. Department of Computer Science, Queen’s University of Belfast, Northern Ireland, (October). (Supplemented January 1973.)
• R. M. McKeag 1976. THE multiprogramming system. In R. M. McKeag and R. Wilson Eds., Studies in Operating Systems, Academic Press, New York, 145–184.
• R. M. McKeag 1980. A structured operating system. In J. Welsh and R. M. McKeag, Structured System Programming, Prentice Hall, Englewood Cliffs, NY, 229–315.
° S. E. Madnick and J. J. Donovan 1974. Operating Systems. McGraw-Hill, New York.
• D. May 1989. The influence of VLSI technology on computer architecture. In R. Elliott and C. A. R. Hoare Eds., Scientific Applications of Multiprocessors, PrenticeHall, Englewood Cliffs, NJ, 21–36.
° P. Naur Ed. 1960. Report on the algorithmic language Algol 60. Communications of the ACM 3, 5 (May), 299–314.
• P. Naur Ed. 1963a. Revised report on the algorithmic language Algol 60. Communications of the ACM 6, 1 (January), 1–17.
• P. Naur 1963b. The design of the Gier Algol compiler. BIT 3, 2–3, 123–140 and 145–166.
° P. Naur and B. Randell Eds. 1969. Software Engineering. NATO Scientific Affairs Division. Brussels, Belgium (October).
• P. Naur 1974. Concise Survey of Computer Methods. Studentlitteratur, Lund, Sweden.
° P. Naur 1975. Review of “Operating System Principles.” BIT 15, 455–457.
• D. Neal and V. Wallentine 1978. Experiences with the portability of Concurrent Pascal. Software-Practice and Experience 8, 3 (May-June), 341–354.
° E. I. Organick 1972. The Multics System: An Examination of Its Structure. MIT Press, Cambridge, MA.
° E. I. Organick 1973. Computer System Organization: The B5700/B6700 Series. Academic Press, New York.
° D. L. Parnas 1993. Letter to P. Brinch Hansen, November 23.
• R. H. Perrott 1987. Parallel Programming. Addison-Wesley, Reading, MA.
° G. Pólya 1957. How to Solve It. Doubleday, Garden City, NY.
• M. S. Powell 1979. Experience of transporting and using the Solo operating system. Software-Practice and Experience 9, 7 (July), 561–570.
• C. W. Reynolds 1988. The historical evolution of monitors and their languages. Department of Mathematics and Computer Science, James Madison University, Harrisonburg, VA, (August).
• C. W. Reynolds 1990. Signalling regions: multiprocessing in a shared memory reconsidered. Software-Practice and Experience 20, 4 (April), 325–356.
° C. W. Reynolds 1993. Reviewers’ comments. In P. Brinch Hansen, Monitors and Concurrent Pascal: a personal history. SIGPLAN Notices 28, 3 (March 1993), 1–35.
° D. T. Ross 1974. In search of harmony: After-dinner talk. In W. L. van der Poel and L. A. Maarssen Eds., Machine Oriented Higher Level Languages. North-Holland Publishing Company, Amsterdam, The Netherlands, 445–447.
• O. Roubine and J.-C. Heliard 1980. Parallel processing in Ada. In R. M. McKeag and A. M. Macnaghten Eds., On the Construction of Programs, Cambridge University Press, New York, 193–212.
° A. C. Shaw 1974. The Logical Design of Operating Systems. Prentice-Hall, Englewood Cliffs, NJ.
° S. K. Shrivastava and F. Panzieri 1982. The design of a reliable remote procedure call mechanism. IEEE Transactions on Computers 31, 7 (July), 692–697.
• A. Silberschatz, J. Peterson and P. Galvin 1992. Operating System Concepts (third edition). Addison-Wesley Publishing, Reading, MA, 1992.
• C. R. Snow 1992. Concurrent Programming. Cambridge University Press, New York.
• F. Stepczyk and D. Heimbigner 1979. Application of a concurrent programming language. In P. Wegner Ed., Research Directions in Software Technology, MIT Press, Cambridge, MA, 666–671.
• A. S. Tanenbaum and R. van Renesse 1988. A critique of the remote procedure call mechanism. In R. Speth Ed., Research into Networks and Distributed Applications, Elsevier Science Publishers, Amsterdam, The Netherlands, 775–782.
° B. H. Tay and A. L. Ananda 1990. A survey of remote procedure calls. Operating Systems Review 24, 3 (July), 68–79.
° A. Trew and G. Wilson Eds. 1991. Past, Present, Parallel: A Survey of Available Parallel Computing Systems. Springer-Verlag, New York.
• J. Welsh and D. W. Bustard 1979. Pascal-Plus-another language for modular multiprogramming. Software-Practice and Experience 9, 11 (November), 947–957.
• R. L. Wexelblat Ed. 1981. History of Programming Languages. Academic Press, New York.
° J. E. White 1976. A high-level framework for network-based resource sharing. National Computer Conference, (June), 561–570.
° N. Wirth 1969. Letter to P. Brinch Hansen, (July 14).
• N. Wirth 1971. The programming language Pascal. Acta Informatica 1, 35–63.
• N. Wirth 1977a. Modula: a programming language for modular multiprogramming. Software-Practice and Experience 7, 1 (January-February), 3–35.
• N. Wirth 1977b. The use of Modula. Software-Practice and Experience 7, 1 (January-February), 37–65.
• N. Wirth 1977c. Design and implementation of Modula. Software-Practice and Experience 7, 1 (January-February), 67–84.
° W. A. Wulf, E. S. Cohen, W. M. Corwin, A. K. Jones, R. Levin, C. Pierson, and F. J. Pollack 1974. Hydra: the kernel of a multiprocessor operating system. Communications of the ACM 17, 6 (June), 337–345.
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer Science+Business Media New York
About this chapter
Cite this chapter
Hansen, P.B. (2001). The Invention of Concurrent Programming. In: Hansen, P.B. (eds) The Origin of Concurrent Programming. Springer, New York, NY. https://doi.org/10.1007/978-1-4757-3472-0_1
Download citation
DOI: https://doi.org/10.1007/978-1-4757-3472-0_1
Publisher Name: Springer, New York, NY
Print ISBN: 978-1-4419-2986-0
Online ISBN: 978-1-4757-3472-0
eBook Packages: Springer Book Archive