Journal Publications

Peter A. Buhr and Ashif S. Harji. "Implicit-signal monitors". ACM Transactions on Programming Languages and Systems, 27(6):1270-1343, 2005.

Peter A. Buhr and Ashif S. Harji. "Concurrent Urban Legends". Concurrency and Computation: Practice and Experience, 17(9):1133-1172, August 2005.

Peter A. Buhr and W. Y. Russell Mok. "Advanced Exception Handling Mechanisms". IEEE Transactions on Software Engineering, 26(9):820-836, September 2000.

Peter A. Buhr, Michel Fortier, and Michael H. Coffin. "Monitor Classification". ACM Computing Surveys, 27(1):63-107, March 1995.

Peter A. Buhr. "Are Safe Concurrency Libraries Possible?". Communications of the ACM, 38(2):117-120, February 1995.

P. A. Buhr, David Till, and C. R. Zarnke. "Assignment as the Sole Means of Updating Objects". Software-Practice and Experience, 24(9):835-870, September 1994.

Peter A. Buhr, Hamish I. Macdonald, and C. Robert Zarnke. "Synchronous and Asynchronous Handling of Abnormal Events in the μSystem". Software-Practice and Experience, 22(9):735-776, September 1992.

P. A. Buhr, Glen Ditchfield, R. A. Stroobosscher, B. M. Younger, and C. R. Zarnke. "μC++: Concurrency in the Object-Oriented Language C++". Software-Practice and Experience, 22(2):137-172, February 1992.

Peter A. Buhr and Richard A. Stroobosscher. "The μSystem: Providing Light-Weight Concurrency on Shared-Memory Multiprocessor Computers Running UNIX". Software-Practice and Experience, 20(9):929-963, September 1990.

P. A. Buhr and R. C. Holte. "Some Considerations in the Design of Communication Aids for the Severely Physically Disabled". Medical & Biological Engineering & Computing, no. 19, pages 725-733, November 1981.

H. C. Williams and P. A. Buhr. "Calculations of the Regulator of Q(√D) by Use of the Nearest Integer Continued Fraction Algorithm". Mathematics of Computation, 33(145):369-381, January 1979.

Refereed Conference and Workshop Publications

Jiongxiong Chen, Ashif Harji, and Peter Buhr. "Solution Space for Fixed-Priority with Preemption Threshold". In Proceedings of the 11th Real Time and Embedded Technology and Applications Symposium (RTAS'05), pages 385-394, San Francisco, CA, U.S.A, March 2005. IEEE.

Peter A. Buhr and Roy Krischer. "Bound Exceptions in Object Programming". In Proceedings of the ECOOP 2003 Workshop on Exception Handling in Object Oriented Systems: Towards Emerging Application Areas and New Programming Paradigms, pages 20-26, Darmstadt, Germany, July 2003. ECOOP.

Peter A. Buhr, Ashif S. Harji, Philipp E. Lim, and Jiongxiong Chen. "Object-Oriented Real-Time Concurrency". SIGPLAN Notices, 35(10):29-46, October 2000. Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), Oct. 15-19, 2000, Minneapolis, Minnesota, U.S.A.

Peter A. Buhr and Robert Denda. "μProfiler: Profiling User-Level Threads in a Shared-Memory Programming Environment". In Dennis Caromel, Rodney R. Oldehoeft, and Marydell Tholburn, editors, Proceedings of the Second International Symposium (ISCOPE'98) on Computing in Object-Oriented Parallel Environments, volume 1505, pages 159-166, Santa Fe, New Mexico, U.S.A., December 1998. Springer-Verlag. Lecture Notes in Computer Science.

Peter A. Buhr, Martin Karsten and Jun Shih. "A Multi-threaded Debugger for Multi-threaded Applications". In Proceedings of SPDT'96: SIGMETRICS Symposium on Parallel and Distributed Tools, pages 80-87, Philadelphia, Pennsylvania, U.S.A., May 1996. ACM Press.

Peter A. Buhr, Anil K. Goel, Naomi Nishimura, and Prabhakar Ragde. "Parallel Pointer-Based Join Algorithms in Memory-Mapped Environments". In Proceedings of the 12th IEEE International Conference on Data Engineering, pages 266-275, New Orleans, USA, February 1996. IEEE Computer Society Press.

Peter A. Buhr, Michael H. Coffin, Rory A. Jacobs, Johan Larson, and R. Scotte Zinn. "Concurrent Monitoring, Visualization and Debugging". In Proceedings of ACM/ONR Workshop on Parallel and Distributed Debugging, pages 178-180, San Diego, California, May 1993. [Extended abstract].

Peter A. Buhr, Anil K. Goel, and Anderson Wai. "μDatabase : A Toolkit for Constructing Memory Mapped Databases". In Antonio Albano and Ron Morrison, editors, Persistent Object Systems, pages 166-185, San Miniato, Italy, September 1992. Springer-Verlag. Workshops in Computing, Ed. by Professor C. J. van Rijsbergen, QA76.9.D3I59.

Peter A. Buhr and Glen Ditchfield. "Adding Concurrency to a Programming Language". In USENIX C++ Technical Conference Proceedings, pages 207-224, Portland, Oregon, U.S.A., August 1992. USENIX Association.

P. A. Buhr, Glen Ditchfield, and C. R. Zarnke. "Basic Abstractions for a Database Programming Language". In Richard Hull, Ron Morrison, and David Stemple, editors, Database Programming Languages, 2nd International Workshop, pages 422-437. Morgan Kaufmann, June 1989.

P. A. Buhr, Glen Ditchfield, and C. R. Zarnke. "Adding Concurrency to a Statically Type-Safe Object-Oriented Programming Language". SIGPLAN Notices, 24(4):18-21, April 1989. Proceedings of the ACM SIGPLAN Workshop on Object-Based Concurrent Programming, Sept. 26-27, 1988, San Diego, California, U.S.A.

P. A. Buhr and C. R. Zarnke. "Addressing in a Persistent Environment". In John Rosenburg and David Koch, editors, Persistent Object Systems, pages 200-217, University of Newcastle, New South Wales, Australia, January 1989. Springer-Verlag. Workshops in Computing, Ed. by Professor C. J. van Rijsbergen, QA76.64.I57.

P. A. Buhr and C. R. Zarnke. "Nesting in an Object Oriented Language is NOT for the Birds". In S. Gjessing and K. Nygaard, editors, Proceedings of the European Conference on Object Oriented Programming, volume 322, pages 128-145, Oslo, Norway, August 1988. ECOOP'88, Springer-Verlag. Lecture Notes in Computer Science, Ed. by G. Goos and J. Hartmanis.

P. A. Buhr and C. R. Zarnke. "Persistence in an Environment for a Statically-Typed Programming Language". In Workshop on Persistent Object Systems: their design, implementation and use, volume PPRR 42, pages 317-336, Appin, Scotland, August 1987. Universities of Glasgow and St. Andrews, Scotland.

P. A. Buhr and C. R. Zarnke. "A Design for Integration of Files into a Strongly Typed Programming Language". In Proceedings IEEE Computer Society 1986 International Conference on Computer Languages, pages 190-200, Miami, Florida, U.S.A, October 1986.

R. C. Holte, P. A. Buhr, A. O. Quanbury and F. J. Burkowski. "A Microcomputer Communication Aid". Proceedings of the 7th Canadian Medical and Biological Engineering Conference, pages 119-120, August 1978.

Book Chapters

Peter A. Buhr, Ashif Harji, and W. Y. Russell Mok. "Exception Handling". In Marvin V. Zelkowitz, editor, Advances in COMPUTERS, volume 56, pages 245-303. Academic Press, 2002.

Peter A. Buhr, Michel Fortier, and Michael H. Coffin. Encyclopedia of Computer Science and Technology, volume 40, supplement 25, chapter "Monitor Taxonomy", pages 191-212. Marcel Dekker, Inc, 1999. This chapter is an abridged version of "Monitor Classification".

Non-Refereed Publications

Peter A. Buhr and Richard C. Bilson. "Examining μC++ : High-level Object-Oriented Concurrency in C++". Dr. Dobb's Journal : Software Tools for the Professional Programmer, 31(2):36-40, February 2006.

Peter~A. Buhr. "μC++ Annotated Reference Manual, Version 5.3.0". Technical report, School of Computer Science, University of Waterloo, Waterloo, Ontario, Canada, N2L 3G1, January 2006.

Peter A. Buhr, Martin Karsten, Jun Shih, and Oliver Schuster. "KDB Reference Manual, Version 1.1". Technical report, Department of Computer Science, University of Waterloo, Waterloo, Ontario, Canada, N2L 3G1, July 2000.

Peter A. Buhr. "μC++ Monitoring and Visualization Reference Manual, Version 1.1". Technical report, Department of Computer Science, University of Waterloo, Waterloo, Ontario, Canada, N2L 3G1, February 1999.

Peter A. Buhr and Anil K. Goel. "μDatabase Annotated Reference Manual, Version 1.0". Technical report, Department of Computer Science, University of Waterloo, Waterloo, Ontario, Canada, N2L 3G1, September 1998.

David Taylor and Peter A. Buhr. "POET with μC++ Reference Manual". Technical report, Department of Computer Science, University of Waterloo, Waterloo, Ontario, Canada, N2L 3G1, September 1997.

Peter A. Buhr, Hamish I. Macdonald, and Richard A. Stroobosscher. "μSystem Annotated Reference Manual, Version 4.4.3". Technical report, Department of Computer Science, University of Waterloo, Waterloo, Ontario, Canada, N2L 3G1, September 1994.

P. A. Buhr. "A Case for Teaching Multi-exit Loops to Beginning Programmers". SIGPLAN Notices, 20(11):14-22, November 1985.

Published Letters

ACM Forum, Communications of the ACM, 26(7):463-464, July 1983.

Published Software

IBM TSO command for selectively listing members names of a partitioned dataset. (1978) Distributed on Share Tape.

Microcomputer-Communication Aid for a severely physically handicapped person. (1980) Used successfully at the Shriner's Hospital for Sick Children, Winnipeg, Manitoba.

A concurrency library for the C programming language, called the μSystem. (1988-1994)

Concurrency extensions to the C++ programming language, called μC++. (1990-present)

Graduate Theses

Josh Lessard, M.Math., Jan. 2002-May 2005, "Profiling Concurrent Programs Using Hardware Counters"

Jiongxiong Chen, Ph.D., Jan. 1999-Jan. 2005, "Extensions to Fixed Priority with Preemption Threshold and Reservation-Based Scheduling"

Rodolfo Gabriel Esteves, M.Math, Sept. 2000-May 2004, "Cforall, a Study in Evolutionary Design in Programming Languages"

Richard Bilson, M.Math, Sept. 2000-May 2003, "Implementing Overloading and Polymorphism in Cforall"

Roy Krischer, Diplomarbeit (Universit\"at Mannheim), Sept. 2001-Oct. 2002, "Bound Exceptions in Object-Oriented Programming Languages"

Caroline Kierstead, M.Math (eassy), Sept. 1997-May 2001, "The Application of Patterns to Concurrent Control Flow"

Dorota Zak, M.Math, Sept. 1998-Sept. 2000, "Analyzing Multi-Threaded Program Performance with μProfile"

Ashif Harji, M.Math, May 1997-Dec. 1999, "High-Level Real-Time Concurrency"

Ming Zhou, M.Math, Jan. 1997-May 1999, "Generalizing Database Access Methods"

Oliver Schuster, Diplomarbeit (Universität Mannheim), Jan. 1998-Apr. 1999, "Replay of Concurrent Shared-Memory Programs"

Robert Denda, Diplomarbeit (Universität Mannheim), May 1996-Sept. 1997, "Profiling Concurrent Programs"

Russell Mok, M.Math, Jan. 1996-Sept. 1997, "Concurrent Abnormal Event Handling Mechanisms"

Jun Shih, M.Math, Jan. 1995-Dec. 1996, "Debugging Concurrent Programs"

Philipp E. Lim, M.Math, May 1994-Aug. 1996, "Real-Time in a Concurrent, Object-Oriented Programming Environment"

Anil K. Goel, Ph.D., Sept. 1989-May 1996, "Exact Positioning of Data Approach to Memory Mapped Persistent Stores: Design, Analysis and Modelling"

Martin Karsten, Diplomarbeit (Universität Mannheim), Sept. 1994-Aug. 1995, "A Multi-Threaded Debugger for Multi-Threaded Applications".

Hamish MacDonald, M.Math, Sept. 1989-May 1993, "Exception Handling for the μSystem"

Glen Ditchfield, Ph.D., Jan. 1987-Dec. 1992, "Contextual Polymorphism"

Anderson Wai, M.Math (essay), Sept. 1987-May 1992, "Storage Management Support for Memory Mapping"

Brian Younger, M.Math, Sept. 1988-Aug. 1991, "Adding Concurrency to C++"

Michel Fortier, M.Math, Jan. 1988-Dec. 1989, "A Study of Monitors"

David W. Till, M.Math, Sept. 1987-Aug. 1989, "Tuples In Imperative Programming Languages"

Richard A. Stroobosscher, M.Math (essay), Sept. 1987-May 1989, "Light Weight Processes in a Shared Memory Multiple Processor Environment"