I am a member of the PLT research group. I work on the Racket programming language.
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.
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi, Jay McCarthy, and Sam Tobin-Hochstadt.. “The Reality of Racket". SNAPL 2015.
Neil Toronto, Jay McCarthy, and David Van Horn. “Running Probabilistic Programs Backwards". ESOP 2015. (PDF)
Yu Huang, Eric Mercer, and Jay McCarthy. “Proving MCAPI Executions are Correct using SMT". ASE 2013. (PDF)
Gregory H. Cooper, Arjun Guha, Shriram Krishnamurthi, Jay McCarthy, and Robert Bruce Findler. “Teaching Garbage Collection without Learning Compilers or Interpreters". SIGCSE 2013. (PDF)
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)
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)
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)
Blake Johnson (MS, Winter 2010–Fall 2014)
Project: Racket Demodularizer
Nick Shelley (Ugrad, Fall 2010) (MS, Winter 2011–Summer 2014) (now: iOS Developer at The Church of Jesus Christ of Latter-day Saints)
MS Thesis: Autocompletion Without Static Typing
Neil Toronto (PhD, Summer 2008–Summer 2014) (now: Post-doc at University of Maryland, College Park)
PhD Thesis: Trustworthy, Useful Languages for Probablistic Modeling and Inference (Defense)
Christine Unsicker (nee Kendall) (Ugrad, Fall 2013-Winter 2014) (now: Software Engineer at Lucid Software, Inc.)
Andrew Kent (PhD, Spring 2013–Winter 2014) (now: CS PhD student at Indiana University)
Trevor Oakes (Ugrad, Spring 2012–Fall 2013)
Alicia Wood (nee Crowder) (Ugrad, Spring 2013–Summer 2013) (now: CS MS student at BYU)
Logan Kearsley (Ugrad, Winter 2013) (now: Computational Linguistics grad student at BYU)
Sean Reque (MS, Winter 2010–Winter 2013) (now: Software Engineer at Amazon)
Dan Burton (Ugrad, Winter 2012–Fall 2013) (now: Haskell Developer at FP Complete)
Project: Type Class-style Generics for Racket
Chase White (Ugrad, Spring 2012–Fall 2013) (now: Software Engineer at Restaurant365)
Project: Verified Linear Logic Theorem Prover
Kimball Germane (MS, Winter 2012–Fall 2012) (now: 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: UX Engineer at Qualtrics)
Daniel Davis (Ugrad, Winter 2009–Winter 2010) (now: Associate Software Engineer at L-3 Communications)
Jensen Warnock (Ugrad, Winter 2009–Winter 2010) (now: Managing Director at Diversification Partners)
I taught Advanced Topics in Programming Languages (CS630) 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.
Mathematics of Program Construction (MPC) 2015
Trends in Functional Programming 2014 (co-editor of proceedings + PC member)
Trends in Functional Programming (2012–)
Utah CSTA, Treasurer (2011–2014)
Utah NCWIT Aspirations Award committee (2012, 2013)
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 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 am married to Elizabeth Day McCarthy.
We are both members of The Church of Jesus Christ of Latter-day Saints.
We have three kids.
I direct Mormon history tours for the Mormon Heritage Associaton.
I used to attend the Intercontinental Foreign Language Program at Harvard Square.
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 Olsen 221, but if you are mailing me something send it to:
Jay A. McCarthy
University of Massachusetts Lowell
Department of Computer Science
One University Avenue
Lowell, MA 01854
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.11 (GNU/Linux)
-----END PGP PUBLIC KEY BLOCK-----