Jay McCarthy
1 About Me
I am an assistant professor at Brigham Young University in the Computer Science Department.
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
Gregory H. Cooper, Arjun Guha, Shriram Krishnamurthi, Jay McCarthy, and Robert Bruce Findler. “Teaching Garbage Collection without Learning Compilers or Interpreters". SIGCSE 2013. (PDF)
Neil Toronto and Jay McCarthy. “Computing in Cantor’s Paradise with LambdaZFC". FLOPS 2012. (PDF) (Code) (Slides)
Everett Morse, Nick Vrvilo, Eric Mercer, and Jay McCarthy. “Modeling Asynchronous Message Passing for C Programs". VMCAI 2012. (PDF) (Code)
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)
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)
Tim Disney, Cormac Flanagan, and Jay McCarthy. “Temporal Higher-Order Contracts". International Conference on Functional Programming, 2011. (PDF) (Code) (Slides)
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)
Jay McCarthy. “The Two-State Solution: Native and Serializable Continuations Accord". International Conference on Object Oriented Programming, Systems, Languages and Applications, 2010. (PDF) (Code)
Jay McCarthy and Shriram Krishnamurthi. “Trusted Multiplexing of Cryptographic Protocols". International Workshop on Formal Aspects in Security and Trust, 2009. (PDF) (Code)
Jay McCarthy. “Automatically RESTful Web Applications Or, Marking Modular Serializable Continuations". International Conference on Functional Programming, 2009. (PDF) (Code)
Jay McCarthy. “Static Analyses of Cryptographic Protocols". PhD Dissertation, Brown University, 2009. (PDF) (Code)
Jay McCarthy and Shriram Krishnamurthi. “Cryptographic Protocol Explication and End-Point Projection". European Symposium on Research in Computer Security, 2008. (PDF) (Code)
Jay McCarthy and Shriram Krishnamurthi. “Minimal Backups of Cryptographic Protocol Runs". Formal Methods in Security Engineering, 2008. (PDF) (Code)
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)
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)
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
Neil Toronto (PhD, Summer 2008–)
Blake Johnson (MS, Winter 2010–) (PhD, Winter 2012–)
Andrew Kent (PhD, Spring 2013–)
Nick Shelley (Ugrad, Fall 2010) (MS, Winter 2011–)
Trevor Oakes (Ugrad, Spring 2012–)
Alicia Crowder (Ugrad, Spring 2013–)
4.2 Past
Logan Kearsley (Ugrad, Winter 2013) (now: Computational Linguistics grad student at BYU)
Project: Implementing a Vau-based Language With Multiple Evaluation Strategies
Sean Reque (MS, Winter 2010–Winter 2013) (now: Software Engineer at National Instruments)
MS Thesis: An Optimized R5RS Macro Expander (code)
Dan Burton (Ugrad, Winter 2012–Fall 2013) (now: Software Engineer at Originate)
Project: Type Class-style Generics for Racket
Chase White (Ugrad, Spring 2012–Fall 2013)
Project: Verified Linear Logic Theorem Prover
Kimball Germane (MS, Winter 2012–Fall 2012) (soon: CS PhD student at University of Utah)
Peter Aldous (Ugrad, Winter 2010–Summer 2010) (now: CS PhD student at University of Utah)
Undergrad Honors Thesis: Parallelization of tasks without a priori knowledge of their dependencies
Renae McDougal (nee Ferguson) (Ugrad, Winter 2010) (now: UI Engineer at Qualtrics)
Daniel Davis (Ugrad, Winter 2009–Winter 2010) (now: Software engineer at L-3 Communications)
Jensen Warnock (Ugrad, Winter 2009–Winter 2010) (now: Portfolio Manager at Auxano Funding)
5 Teaching
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), and Fall 2012 (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 (current).
Other feedback is available at RateMyProfessors.com.
6 Service
Trends in Functional Programming 2014 (co-editor of proceedings + PC member)
COORDINATION 2012
COORDINATION 2011
Trends in Functional Programming (2012–)
Utah CSTA, Treasurer (2011–)
Utah NCWIT Aspirations Award committee (2012)
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.

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


We have two kids and one on the way.

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 at either cs.byu.edu or racket-lang.org, but I only check my email once a day, so be mindful of that.
My office phone number is 801-422-6350, but it isn’t connected. If you left a voice mail, I should get it.
My office is 3328 TMCB, but if you are mailing me something send it to:
Jay A. McCarthy |
Computer Science Department |
3361 TMCB, PO Box 26576 |
Provo, UT 84602-6576 |
11 PGP Public Key
-----BEGIN PGP PUBLIC KEY BLOCK----- |
Version: GnuPG v1.4.11 (GNU/Linux) |
|
mQENBE7/JqEBCACo0YXRAwX4pzFqsaspcCejqPNh6MwUpuIIxnm9d3c4ztbh3sIu |
vIZBoxCPerXmuMvRIe8VB5/dAJGIrnMBvbfd89UuE3YiYmGO62jL2xezFXE4KmRl |
AJWfZJep+2T3WDxMQg6jXozHhY4Wmuy4bNribSNcjgchRaxJ9cJLvFgcse+UlzB0 |
TYqQeq7/OEbvPYb+OSoUsUfBLqfqiS+ucIbJaHo857LkT5752+sVdS38jDvqB/Cd |
DKue1VSMb/E3LlyjPbei8GvDPiso6LWmLEgFwaLbMglCslEAKD7DVS73yxy6oG6X |
EHplGtx3W4Hd6vilkLEUoFqd/KIYVr/SvQfVABEBAAG0JUpheSBNY0NhcnRoeSA8 |
amF5Lm1jY2FydGh5QGdtYWlsLmNvbT6JATgEEwECACIFAk7/JqECGwMGCwkIBwMC |
BhUIAgkKCwQWAgMBAh4BAheAAAoJEBjA2Sen9kH+A2EH+wXDu1TNVvMqxWPaL+5c |
NeJAPKjxKeES1UTboETwbfv8mIMH+YRHh3KoAJi121zMbZRuU7+WhYiavEWVvj0p |
PZEUhIF4pd94nchi6IxFcL4Gk40B1ePjx/s7/gtKwqU9JfJamLrF438+Cys7p0aO |
6NgwUAnM5kSCzhGVKlXN0T/51uwekoi+wZzgpkZdqyeb631b8HOpkDNndnrMl5xJ |
JpZar4rHxi/Wxj6d3BDarba3AJ2WVay1oZmFw1bGyTqk/Qp3fmwRN9h/fcow4OjQ |
kDFDTVWmVOHbWOmYVTbWxYhDca8KpNYHhaJDXZKRawrF8neuHpHfZqnslfGTb7SH |
bOu5AQ0ETv8moQEIAMqNOFvGvs35kLuAeExF4ndbogjeVcOUREpoPOZ9eH53EcPm |
w2D4UwUyJIRjJPZb3os8vKm9ZcC9tIYXyigVT2RsseJeX7J/W+wl/ukeOUbHQOCm |
Fc9e8F+fYFvyrsRiQs8ZS9dvEe+cp1kYPA05Wm0JCzifWxREyhYVb0DzbKbcE67i |
YkkR1aWH5OBYEBx8+ycxu15RVScy4U9v5NqTx58BnRDPYNTtATIgpw1rJcdnNNB5 |
/UQ2PPcSqwbZ87uJeKBlDJ9W45u5JQCDgrlxV6rwwYLTLPdk44fSb2Dg3HvNVkna |
nKqUvgjEohDpdsOlgKRsDl0tCMLUxr/2samslXUAEQEAAYkBHwQYAQIACQUCTv8m |
oQIbDAAKCRAYwNknp/ZB/nJTB/9msB0B51sqyK8YvChEBE33rZ1BOvvgCLuQL/hq |
3WA7EBg7vYEY9Xo7U68wymusmlvtzxv3XrDHiZROJOQiObCLSmKdLa480F73pwnb |
sGN1ZQH4jRoyLH+SAuCthQBIU59gX9acwm2APUH7ScDYDuJkfE1CsPvS+lxRcFdl |
G51Ewg2nFJNMiFuVg5Uq19pnf3eWB+6iICXo9u2GFw1Xd0X7lQS0oUc+bf1pzGGH |
XEvcz/z62rr4lAOvOPVLanw97zE8EaX8JS9ZB2JPmimYybELcW5fglXxXKOdjbwS |
Rct8IYBxhhlPRLEeXwX2lIRBMTILvpp7kM3bdGE198Hmi/W4 |
=XZmA |
-----END PGP PUBLIC KEY BLOCK----- |