This Article 
 Bibliographic References 
 Add to: 
Orca: A Language for Parallel Programming of Distributed Systems
March 1992 (vol. 18 no. 3)
pp. 190-205

A detailed description is given of the Orca language design and the design choices are discussed. Orca is intended for applications programmers rather than systems programmers. This is reflected in its design goals to provide a simple, easy-to-use language that is type-secure and provides clean semantics. Three example parallel applications in Orca, one of which is described in detail, are discussed. One of the existing implementations, which is based on reliable broadcasting, is described. Performance measurements of this system are given for three parallel applications. The measurements show that significant speedups can be obtained for all three applications. The authors compare Orca with several related languages and systems.

[1] A.S. Tanenbaum et al., "Experiences with the Amoeba Distributed Operating System,"Comm. ACM, Vol. 33, No. 12, Dec. 1990, pp. 46-63.
[2] H. E. Bal, R. van Renesse, and A. S. Tanenbaum, "Implementing distributed algorithms using remote procedure calls," inProc. AFIPS Nat. Computer Conf.(Chicago, IL), June 1987, pp. 499-506.
[3] H. E. Bal,Programming Distributed Systems. Summit, NJ: Silicon, 1990.
[4] H. E. Bal and A. S. Tanenbaum, "Distributed programming with shared data," inProc. IEEE CS 1988 Int. Conf. on Computer Languages(Miami, FL), Oct. 1988, pp. 82-91.
[5] H. E. Bal, M. F. Kaashoek, and A. S. Tanenbaum, "Experience with distributed programming in Orca," inProc. IEEE CS 1990 Int. Conf. on Computer Languages(New Orleans, LA), Mar. 1990, pp. 79-89.
[6] K. Li and P. Hudak, "Memory coherence in Shared Virtual Memory systems," inProc. 5th Ann. ACM Symp. on Princ. of Distr. Computing(Calgary, AB, Can.), Aug. 1986, pp. 229-239.
[7] C. Ghezzi and M. Jazayeri,Programming Language Concepts. New York: Wiley, 1987.
[8] A. D. Birrell and B. J. Nelson, "Implementing remote procedure calls,"ACM Trans. Comp. Syst., vol. 2, no. 1, pp. 39-59, Feb. 1984.
[9] H. E. Bal, J. G. Steiner, and A. S. Tanenbaum, "Programming languages for distributed computing systems,"ACM Comput. Surveys, vol. 21, no. 3, pp. 261-322, Sep. 1989.
[10] R. Bisiani and A. Forin, "Architectural support for multilanguage parallel programming on heterogenous systems," inProc. 2nd Int. Conf. on Architectural Support for Program. Languages and Operating Syst.(Palo Alto, CA), Oct. 1987, pp. 21-30.
[11] K. Li, "IVY: a Shared Virtual Memory system for parallel computing," inProc. 1988 Inc. Conf. Parallel Process. (St. Charles, IL), Aug. 1988, pp. 94-101.
[12] E. W. Felten and S. W. Otto, "A highly parallel chess program," inProc. Int. Conf. on 5th Generation Computer Syst. 1988(Tokyo), Nov. 1988, pp. 1001-1009.
[13] D. R. Cheriton, "Preliminary thoughts on problem-oriented shared memory: a decentralized approach to distributed systems,"ACM Oper. Syst. Rev., vol. 19, no. 4, pp. 26-33, Oct. 1985.
[14] S. Ahuja, N. Carriero, and D. Gelernter, "Linda and friends,"IEEE Computer, vol. 19, no. 8, pp. 26-34, Aug. 1986.
[15] E. Jul et al., "Fine-Grained Mobility in the Emerald System,"ACM Trans. Computer Systems, Feb. 1988, pp. 109-133.
[16] B. Liskov, "Distributed programming in Argus,"Commun. ACM, vol. 31, no. 3, pp. 300-312, Mar. 1988.
[17] G. R. Andrews and R. A. Olsson, "An overview of the SR language and implementation,"ACM Trans. Program. Lang. Syst., vol. 10, no. 1, pp. 51-86, Jan. 1988.
[18] H. E. Bal, "An evaluation of the SR language design," Vrije Univ., Amsterdam, Rep. IR-219, Aug. 1990.
[19] C. A. R. Hoare, "Monitors: an operating system structuring concept,"Commun. ACM, vol. 17, no. 10, pp. 549-557, Oct. 1974.
[20] G. R. Andrews and F. B. Schneider, "Concepts and notations for concurrent programming,"ACM Comput. Surveys, vol. 15, no. 1, pp. 3-43, Mar. 1983.
[21] K. P. Eswaran, J. N. Gray, R. A. Lorie, and I. L. Traiger, "The notions of consistency and predicate locks in a database system,"Commun. ACM, vol. 19, no. 11, pp. 624-633, Nov. 1976.
[22] S. E. Lucco, "Parallel programming in a virtual object space,"SIGPLAN Notices(Proc. Object-Oriented Program. Syst., Languages and Appl. 1987, Orlando, FL), vol. 22, no. 12, pp. 26-34, Dec. 1987.
[23] R. C. B. Cooper and K. G. Hamilton, "Preserving abstraction in concurrent programming,"IEEE Trans. Software Eng., vol. 14, pp. 258-263, Feb. 1988.
[24] N. Wirth, "The programming language Pascal,"Acta Inform., vol. 1, no. 1, pp. 35-63, 1971.
[25] T. Joseph and K. Birman, "Low cost management of replicated data in fault tolerant distributed systems,"ACM Trans. Comput. Syst., vol. 4, pp. 54-70, 1986.
[26] H. E. Bal, M. F. Kaashoek, A. S. Tanenbaum, and J. Jansen, "Replication techniques for speeding-up parallel applications on distributed systems," Vrije Univ., Amsterdam, Rep. IR-202, Oct. 1989.
[27] J. Chang and N. F. Maxemchuk, "Reliable broadcast protocols,"ACM Trans. Comput. Syst., vol. 2, no. 3, pp. 251-273, Aug. 1984.
[28] K.P. Birman and T.A. Joseph, "Reliable Communication in the Presence of Failures,"ACM Trans. Computer Systems, Vol. 5, No. 1, Feb. 1987, pp. 47-76.
[29] H. Garcia-Molina and A. Spauster, "Message ordering in a multicast environment," inProc. 9th Int. Conf. on Distr. Comput. Syst.(Newport Beach, CA), June 1989, pp. 354-361.
[30] M. F. Kaashoek and A. S. Tanenbaum, "Group communication in the Amoeba distributed operating system," inProc. 11th Int. Conf. on Distrib. Comput. Syst.(Arlington, TX), May 1991, pp. 222-230.
[31] R. M. Metcalfe and D. R. Boggs, "Ethernet: Distributed packet switching for local computer networks,"Commun. ACM, vol. 19, no. 7, pp. 395-404, 1976.
[32] M. F. Kaashoek, A. S. Tanenbaum, S. Flynn Hummel, and H. E. Bal, "An efficient reliable broadcast protocol,"ACM Oper. Syst. Rev., vol. 23, no. 4, pp. 5-20, Oct. 1989.
[33] J.-F. Jenq and S. Sahni, "All pairs shortest paths on a hypercube multiprocessor," inProc. 1987 Int. Conf. on Parallel Process. (St. Charles, IL), Aug. 1987, pp. 713-716.
[34] J. S. Chase, F. G. Amador, E. D. Lazowska, H. M. Levy, and R. J. Littlefield, "The Amber system: parallel programming on a network of multiprocessors," inProc. 12th ACM Symp. on Oper. Syst. Principles, (Litchfield Park, AZ), Dec. 1989, pp. 147-158.
[35] P. Vishnubhotia, "Synchronization and scheduling in ALPS objects," inProc. 8th Int. Conf. on Distrib. Comput. Syst.(San Jose, CA), June 1988, pp. 256-264.
[36] M. F. Kaashoek, H. E. Bal, and A. S. Tanenbaum, "Experience with the distributed data structure paradigm in Linda," inProc. Workshop on Experiences with Building Distributed and Multiprocessor Syst.(Ft. Lauderdale, FL), Oct. 1989, pp. 175-191.
[37] R. G. Minnich and D. J. Farber, "Reducing host load, network load, and latency in a distributed shared memory," inProc. 10th Int. Conf. on Distrib. Comput. Syst.(Paris), May 1990, pp. 468-475.
[38] P. W. Hutto and M. Ahamad, "Slow memory: weakening consistency to enhance concurrency in distributed shared memories," inProc. 10th Int. Conf. on Distrib. Comput. Syst.(Paris), May 1990, pp. 302-309.
[39] J. Bennett, J. Carter, and W. Zwaenepoel, "Munin: Distributed Shared Memory Based on Type-Specific Memory Coherence,"Proc. 1990 Conf. Principles and Practice of Parallel Programming, ACM Press, New York, N.Y., 1990, pp. 168-176.
[40] W. G. Levelt, M. F. Kaashoek, H. E. Bal, and A. S. Tanenbaum, "A comparison of two paradigms for distributed shared memory," Vrije Univ., Amsterdam, Rep. IR-221, Aug. 1990.

Index Terms:
parallel programming; distributed systems; Orca language design; design choices; applications programmers; easy-to-use language; type-secure; clean semantics; parallel applications; Orca; reliable broadcasting; parallel languages; parallel programming
H.E. Bal, M.F. Kaashoek, A.S. Tanenbaum, "Orca: A Language for Parallel Programming of Distributed Systems," IEEE Transactions on Software Engineering, vol. 18, no. 3, pp. 190-205, March 1992, doi:10.1109/32.126768
Usage of this product signifies your acceptance of the Terms of Use.