On this page:
Jay Mc  Carthy
1 About Me
2 Research Interests
3 Publications
4 Students
4.1 Current
4.2 Past
5 Teaching
5.1 Archived Courses from BYU
6 Service
7 Projects
7.1 Current
7.2 Past
8 Personal
9 Links
10 Contact
11 PGP Public Key

Jay McCarthy

1 About Me

I am a visiting assistant professor at Vassar College in the Computer Science Department. Previously, I have been at Brigham Young University.

I am a member of the PLT research group. I work on the Racket programming language.

I completed a Ph.D. at Brown University in the Computer Science Department. I worked with Shriram Krishnamurthi. I was an NSF Graduate Research Fellow.

I graduated from the University of Massachusetts at Lowell where I studied Computer Science, Mathematics, and Economics.

My work has been supported by the National Science Foundation’s Software and Hardware Foundations (CISE/CCF) program and Computing Education for the 21st Century (CISE/CNS) program.

2 Research Interests

I am interested in applying programming languages research techniques to cryptographic protocols and the Web, as well as other areas of security and systems. I am also very interested in theorem provers and program verification.

3 Publications

  1. Neil Toronto, Jay McCarthy, and David Van Horn. “Running Probabilistic Programs Backwards". ESOP 2015. (PDF)

  2. Neil Toronto and Jay McCarthy. “Practically Accurate Floating-Point Math". Computing in Science and Engineering, July 2014. (Publisher)

  3. Yu Huang, Eric Mercer, and Jay McCarthy. “Proving MCAPI Executions are Correct using SMT". ASE 2013. (PDF)

  4. Gregory H. Cooper, Arjun Guha, Shriram Krishnamurthi, Jay McCarthy, and Robert Bruce Findler. “Teaching Garbage Collection without Learning Compilers or Interpreters". SIGCSE 2013. (PDF)

  5. Neil Toronto and Jay McCarthy. “Computing in Cantor’s Paradise with LambdaZFC". FLOPS 2012. (PDF) (Code) (Slides)

  6. Everett Morse, Nick Vrvilo, Eric Mercer, and Jay McCarthy. “Modeling Asynchronous Message Passing for C Programs". VMCAI 2012. (PDF) (Code)

  7. Casey Klein, John Clements, Christos Dimoulas, Carl Eastlund, Matthias Felleisen, Matthew Flatt, Jay McCarthy, Jon Rafkind, Sam Tobin-Hochstadt, Robert Bruce Findler. “Run Your Research: On the Effectiveness of Lightweight Mechanization". Symposium on Principles of Programming Languages, 2012. (PDF) (Code)

  8. Casey Klein, Jay McCarthy, Steven Jaconette and Robert Bruce Findler. “A Semantics for Context-Sensitive Reduction Semantics". Asian Symposium on Programming Languages and Systems, 2011. (PDF) (Code)

  9. Tim Disney, Cormac Flanagan, and Jay McCarthy. “Temporal Higher-Order Contracts". International Conference on Functional Programming, 2011. (PDF) (Code) (Slides)

  10. Neil Toronto and Jay McCarthy. “From Bayesian Notation to Pure Racket via Discrete Measure-Theoretic Probability in LambdaZFC". Symposium on Implementation and Application of Functional Languages, 2011. (PDF) (Slides)

  11. Jay McCarthy. “The Two-State Solution: Native and Serializable Continuations Accord". International Conference on Object Oriented Programming, Systems, Languages and Applications, 2010. (PDF) (Code)

  12. Jay McCarthy and Shriram Krishnamurthi. “Trusted Multiplexing of Cryptographic Protocols". International Workshop on Formal Aspects in Security and Trust, 2009. (PDF) (Code)

  13. Jay McCarthy. “Automatically RESTful Web Applications Or, Marking Modular Serializable Continuations". International Conference on Functional Programming, 2009. (PDF) (Code)

  14. Jay McCarthy. “Static Analyses of Cryptographic Protocols". PhD Dissertation, Brown University, 2009. (PDF) (Code)

  15. Jay McCarthy and Shriram Krishnamurthi. “Cryptographic Protocol Explication and End-Point Projection". European Symposium on Research in Computer Security, 2008. (PDF) (Code)

  16. Jay McCarthy and Shriram Krishnamurthi. “Minimal Backups of Cryptographic Protocol Runs". Formal Methods in Security Engineering, 2008. (PDF) (Code)

  17. Jay McCarthy, Joshua Guttman, John Ramsdell, and Shriram Krishnamurthi. “Compiling Cryptographic Protocols for Deployment on the Web". International World Wide Web Conference, 2007. (PDF) (Code)

  18. Shriram Krishnamurthi, Peter Walton Hopkins, Jay McCarthy, Paul T. Graunke, Greg Pettyjohn, and Matthias Felleisen. “Implementation and Use of the PLT Scheme Web Server". Higher-Order and Symbolic Computation, 2007. (PDF) (Code)

  19. Jay McCarthy and Shriram Krishnamurthi. “Interaction-Safe State for the Web". In Scheme and Functional Programming, September 2006. (PDF) (Code)

4 Students

4.1 Current

4.2 Past

5 Teaching

I am teaching CS203 in Fall 2014 (mid-course feedback).

I am teaching CS241 in Fall 2014 (mid-course feedback).

5.1 Archived Courses from BYU

I taught CS 142 in Spring 2011 (feedback) and Fall 2011 (feedback).

I taught CS 312 in Fall 2009 (feedback).

I taught CS 330 in Fall 2008 (feedback), Fall 2009 (feedback), Fall 2010 (feedback), Fall 2011 (feedback), Fall 2012 (feedback), and Fall 2013 (feedback).

I taught CS 430 in Winter 2013 (feedback) (as CS 401R).

I taught CS 630 in Winter 2009 (feedback) (as CS 601R), Winter 2010 (feedback) (as CS 601R), Winter 2011 (feedback), Winter 2012 (feedback), and Spring 2013 (feedback).

Other feedback is available at RateMyProfessors.com.

6 Service

Program Committees:

Steering Committees:
  • Trends in Functional Programming (2012–)

External Review Committees:
  • POPL 2015

  • OOPSLA 2011

  • Utah CSTA, Treasurer (2011–2014)

  • Utah NCWIT Aspirations Award committee (2012, 2013)

7 Projects

7.1 Current

I am responsible for many aspects of the Racket programming language. I really like DrDr.

In particular, I am responsible for continued development of the Racket Web Server. It is available with the standard Racket distribution. If you’d like to learn how to use it refer to the tutorial or application reference manual.

I have a Github account with lots of code on it; in particular, most of my PLaneT packages live there. I write about lots of this code on my blog.

7.2 Past

I worked on The Whole-Protocol Programming Language, a global language for designing protocols in the strand space model.

I worked on The Cryptographic Protocol Programming Language, a role-based language for designing protocols in the strand space model.

I used to maintain the Continue Conference Manager, a web application for paper submissions, reviews, and PC meetings. It has been superseded by Continue 2.0, which is written in Flapjax.

I wrote the first version of Resume, the Continue of faculty application applications. It has also been rewritten in Flapjax.

8 Personal

I am married to Elizabeth Day McCarthy.

Libby and Jay in Cambridge, MA

We are both members of The Church of Jesus Christ of Latter-day Saints.

Libby and Jay at Salt Lake City Temple

Libby and Jay near Salt Lake City Temple reflecting pool

We have three kids.

Family picture Summer 2013

9 Links

I direct Mormon history tours for the Mormon Heritage Associaton.

I used to attend the Intercontinental Foreign Language Program at Harvard Square.

10 Contact

My email address is my first name and last name separated by a dot at gmail.com or my first name at racket-lang.org, but I only check my email once a day, so be mindful of that.

I don’t use a phone in my office, so get my cell number. If you need quick turn-around in a communique, I try to be on Google Chat a lot.

My office is SP104.4, but if you are mailing me something send it to:

Jay A. McCarthy

Computer Science Department

Vassar College, Box 732

124 Raymond Ave.

Poughkeepsie, NY 12604

11 PGP Public Key


Version: GnuPG v1.4.11 (GNU/Linux)