Department of Computer Science
Swarthmore College
270 Science Center
500 College Avenue
Swarthmore, PA 19081
zachary.palmer --at-- swarthmore.edu
zepalmer
I am an Assistant Professor of Computer Science at Swarthmore College. My research interests include software engineering, compile-time metaprogramming, subtype constraint theory, and related program analyses. I completed my Ph.D. in the Spring of 2015 at Johns Hopkins University, where I had the pleasure of being advised by Dr. Scott F. Smith.
Teaching
I am teaching CS75: Compilers in the Spring 2026 semester. Please see the course website for more information on CS75.
Previous Courses
-
CS21: Introduction to Computer Science in the Fall 2015 semester
-
CS35: Data Structures and Algorithms in the Spring 2016, Fall 2016, Fall 2018, Fall 2019, Fall 2020, Fall 2022, and Fall 2024 semesters
-
CS71: Software Engineering in the Fall 2017 semester
-
CS73: Programming Languages in the Spring 2018, Spring 2020, Fall 2021, and Fall 2025 semesters
-
CS75: Compilers in the Spring 2017, Spring 2019, Spring 2021, Spring 2022, Spring 2023, and Spring 2025 semesters
Research
My interests are in type theory, program analysis, and their application to software engineering. I am primarily working on demand-driven approaches to higher-order program analysis.
Publications
-
Intensional Functions, October 2024. (extended paper) Nathaniel Wesley Filardo, Zachary Palmer, Ke Wu. OOPSLA.
-
A Set-Based Context Model for Program Analysis, November 2020. Leandro Fachinetti, Zachary Palmer, Scott F. Smith, Ke Wu, Ayaka Yorihiro. Asian Symposium on Programming Languages and Systems (APLAS).
-
Higher-Order Demand-Driven Symbolic Evaluation, August 2020. Zachary Palmer, Theodore Park, Scott F. Smith, Shiwei Weng. International Conference on Functional Programming (ICFP).
-
Higher-Order Demand-Driven Program Analysis, July 2019. Leandro Facchinetti, Zachary Palmer, Scott F. Smith. ACM Transactions on Programming Languages and Systems (TOPLAS).
-
A Schematic Pushdown Reachability Language, November 2018. Zachary Palmer, Charlotte Raty. Domain-Specific Language Design and Implementation (DSLDI); Boston, MA, USA.
-
Relative Store Fragments for Singleton Abstraction, September 2017. (slides) Leandro Facchinetti, Zachary Palmer, Scott F. Smith. Static Analysis Symposium (SAS); New York, New York, USA.
-
Higher-Order Demand-Driven Program Analysis, July 2016. (slides) (supplement) (talk) Zachary Palmer, Scott F. Smith. European Conference on Object-Oriented Programming (ECOOP); Rome, Italy.
-
Control-Based Program Analysis (talk), November 2015. (slides) Zachary Palmer, Scott F. Smith. IBM PL Day; Yorktown Heights, New York, USA.
-
Building a Typed Scripting Language, May 2015. (slides) Zachary Palmer. Dissertation; Johns Hopkins University.
-
Types for Flexible Objects, November 2014. (slides) Pottayil Harisanker Menon, Zachary Palmer, Alexander Rozenshteyn, Scott F. Smith. Asian Symposium on Programming Languages and Systems (APLAS); Singapore. Previous drafts: (May 2013) (Jan 2014) (Mar 2014)
-
PatBang: Flexible type-safe pattern matching, September 2013. Pottayil Harisanker Menon, Zachary Palmer, Alexander Rozenshteyn, Scott F. Smith. Technical report.
-
A Practical, Typed Variant Object Model, October 2012. (slides) Pottayil Harisanker Menon, Zachary Palmer, Alexander Rozenshteyn, Scott F. Smith. Foundations of Object-Oriented Languages (FOOL); Tucson, Arizona, USA.
-
K3: Language Design for Building Multi-Platform, Domain-Specific Runtimes, September 2012. Yanif Ahmad, Zachary Palmer, Panchapakesan Shyamshankar. Workshop on Cross-model Language Design and Implementation (XLDI); Copenhagen, Denmark.
-
BigBang: Designing a Statically-Typed Scripting Language, June 2012. (slides) Pottayil Harisanker Menon, Zachary Palmer, Alexander Rozenshteyn, Scott F. Smith. International Workshop on Scripts to Programs (STOP); Beijing, China.
-
Backstage Java: Making a Difference in Metaprogramming, October 2011. (slides) Zachary Palmer, Scott F. Smith. Object Oriented Programming: Systems, Languages, and Applications (OOPSLA); Portland, Oregon, USA.