Christopher A. Stone
Associate Professor of Computer Science
Harvey Mudd College
| Computer Science Department |
| Harvey Mudd College |
| 301 Platt Boulevard |
| Claremont, CA 91711, USA |
| Email: | stone@cs.hmc.edu |
| Phone: | (909) 607-8975 |
| Secretary: | (909) 621-8225 |
| Fax: | (909) 621-8465 |
| Office: | 1251 Olin |
My weekly schedule is on-line and also posted outside my office.
For Fall 2012, I'm teaching CS 81: Computability and Logic, and I'm co-teaching Writing 1 with Prof. Katherine Candler. I am also faculty advisor for two clinic projects.
My advising information for Joint CS/Math Majors and the companion advising information for CS majors should be useful to students and their advisors. I try to keep it up-to-date, so please let me know if there's anything I should change or add.
My CV and most of my publications are available on-line.
My research usually involves the theory or implementation of programming languages. I am particularly interested in type systems for functional and object-based languages.
Recently I've started the Observationally Cooperative Multithreading (OCM) project with Prof. Melissa O'Neill and a sizable number of undergraduate students. In traditional Cooperative Multithreading (CM), one thread runs at a time, and each thread runs until it explicitly yields the processor to the next thread. This permits a very simple and efficient programming model, because the lack of unexpected preemption means that that locks and the problems that go with them (not enough locks = race conditions, too many locks or locks acquired in the wrong order = deadlock) can be avoided.
The goal of OCM is to port the CM model to a multiprocessor. When threads are non-interacting, we run them simultanously without any change in behavior except for improved speed. Preliminary experiments with modified Lua interpreters (an optimistic-concurrency implementation using Software Transactional Memory and a pessimistic implementation internally using locks) are very encouraging. We have an unpublished manuscript describing Observationally Cooperative Multithreading in more detail.
Previously I worked on a translator that turns constructive-mathematics specifications into interface code for programmers. The system answers questions like, "What would a programmer need to implement in order to get a complete and correct implementation of the mathematical real numbers [or a compact metric space, or a space of smooth functions, ...]?" From an educational perspective, it also provides explanations (in terms a programmer can understand) of the non-classical distinctions that arise in constructive mathematics. For example, one can explain the difference between a finite set and a set that is not infinite, and why there is a "size" function only for the former.
I have also worked on types for object-based languages (languages that permit adding new fields or methods to individual objects at run-time) and on type checking algorithms for recursively-defined types.
My wife Sneža is a private French tutor, often teaching students remotely via Skype. She recently put together a book Exercise Your French, a 390-page book of French grammar exercises (with full solutions), for students of French at all levels. It is available as a PDF or as a Kindle E-Book.