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 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
Neil Toronto and Jay McCarthy. “Computing in Cantor’s Paradise with LambdaZFC". FLOPS 2012. (PDF) (Code)
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)
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) 2008–
Blake Johnson (MS),2010–
Sean Reque (MS), 2010–
Nick Shelley (MS), 2010–
Blake Johnson (PhD),2012–
Kimball Germane (MS), 2012–
4.2 Past
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), and Fall 2011 (feedback).
I taught CS 601R in Winter 2009 (feedback) and Winter 2010 (feedback).
I taught CS 630 in Winter 2011 (feedback) and Winter 2012 (feedback).
Other feedback is available at RateMyProfessors.com.
6 Service
Trends in Functional Programming 2012
COORDINATION 2012
COORDINATION 2011
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.
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.



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----- |