Table of Contents

Calendar

September 6

No lecture.

September 11

Herb Sutter and James Larus. Software and the Concurrency Revolution. Queue, 3(7):54-62, September 2005.

Celeste Biever. Chip revolution poses problems for programmers. New Scientist, 2594:26-27, March 2007.

September 13

No lecture.

September 18

Nicholas Carriero and David Gelernter. Linda in Context. Communications of the ACM, 32(4):444-458, April 1989.

Linda is not a programming language but a framework. Implementations of this framework include C-Linda and Linda-Fortran. Recent work on Java within the Linda context include JavaSpaces, TSpaces and JParadise.

September 20

The lecture will take place in the Steacie Building, room 021. Ask at the library reference desk for room 021 if you cannot find it.

Leah Graham and Panagiotis Takis Metaxas. Of course it's true; I saw it on the Internet! Communications of the ACM, 46(5):70-75, May 2003.

Neil L. Waters. Why you can't cite Wikipedia in my class. Communications of the ACM, 50(9):15-17, September 2007.

Some information about literature search can be found here.

September 25

An implementation of a bounded buffer in C-Linda can be found here.

September 27

John H. Reppy. CML: A Higher-order Concurrent Language. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, Toronto, Canada, June 1991. SIGPLAN Notices, 26(6):293-305, June 1991.

October 2

Mary Campione, Kathy Walrath and Alison Huml. The Java Tutorial. Lesson: Threads: Doing Two or More Tasks At Once.

An implementation of a bounded buffer in Java can be found here.

October 4

P.J. Courtois, F. Heymans and D.L. Parnas. Concurrent control with "readers" and "writers". Communications of the ACM, 14(10): 667-668, October 1971.

A solution to the readers-writers problem in Java can be found here.

October 9

Presentations

October 11

Presentations

October 16

Presentations

October 18

Presentations

October 23

Presentations

The sleeping barber problem can be found in Section 4.2 of
E.W. Dijkstra. Cooperating Sequential Processes. EWD 123. 1968.

A solution to the sleeping barber problem in Java can be found here

October 25

To implement non-blocking algorithms in Java, the java.util.concurrent.atomic package may be useful. Several implementations of a Stack can be found here.

October 30

John A. Trono. A new exercise in concurrency. SIGCSE Bulletin, 26(3):8-10, September 1994.

John A. Trono. Corrigendum to "A new exercise in concurrency". SIGCSE Bulletin, 26(4):63, December 1994.

Mordechai Ben-Ari. How to Solve the Santa Claus Problem. Concurrency: Practice & Experience, 10(6):485-496, May 1998.

November 1

Edmund M. Clarke and Jeannette M. Wing. Formal methods: state of the art and future directions. ACM Computing Surveys, 28(4):626-643, December 1996.

Mats P.E. Heimdahl and Constance L. Heitmeyer. Formal methods for developing high assurance computer systems: working group report. In Proceedings of the 2nd IEEE Workshop Industrial Strength Formal Specification Techniques, pages 60-64, Boca Raton, FL , USA, October 1998. IEEE.

An answer to the question Why do we need software verification tools? can be found here.

November 6

Presentations

November 8

Willem Visser, Klaus Havelund, Guillaume Brat, SeungJoon Park and Flavio Lerda. Model Checking Programs. Automated Software Engineering, 10(2): 203-232, April 2003.

More information about Java PathFinder can be found here.

November 13

Presentations

November 15

Presentations

November 20

Presentations

November 22

More information about JPF can be found here. Students are encouraged to add information.

November 27

Presentations

November 29

Presentations

December 4

Presentations

December 6

Presentations