Com S 541 Lecture -*- Outline -*- * Message-Passing Concurrency (Ch 5) Based on Peter van Roy and Seif Haridi's book, "Concepts, Techniques, and Models of Computer Programming" (MIT Press, 2004), where all references that are not otherwise attributed are found. ** quiz ------------------------------------------ QUIZ FOR CHAPTER 5 [message passing] What is message passing? What about it is asynchronous? How is it used? [ports] What is a port? How does it overcome the limitations of the declarative concurrent model? [semantics] Why is a mutable store needed to describe the semantics of NewPort and Send? [port objects] What is a port object? How is it different from a port? Can port objects have state? [agents] What is an agent? [RMI] How do you simulate RMI using Send? How to simulate asynchronous RMI? [callbacks] How to implement callbacks? [Exeptions] What happens if the server encounters an exception? [Design] How do you design a multiagent system? [Design] In what way do list operations correspond to concurrency patterns? [Architecture] What if you don't want a lot of threads? [Data] How would you program a concurrent queue using ports? [Termination] How can you detect termination or other resource use in a modular way? [Erlang] What are the features of Erlang that make it interesting? [Erlang design] What is useful about Erlang's combination of features? [Erlang's model] How does the Erlang model differ from that of Oz? How are mailboxes modeled? [Erlang semantics] What does receive do? How would it be simulated in Oz? [Nondeterministic model] What is the nondeterministic concurrent model? How does it differ from the declarative concurrent model? From the message passing model? What are its problems? ------------------------------------------