Ashton Wiersdorf #
I am a PhD student at the University of Utah where I started in August 2022. My advisor is Ben Greenman. I graduated with my bachelor’s degree in computer science from Brigham Young University in April 2022.
I am interested in researching and designing better programming languages. Programming languages are our interface to computation, and different programming languages shape how we think about solving problems with computation. My current work focuses on macro and type systems: how can we extend languages with macros, and how can we get better guarantees about the behavior of our programs with types? I have also worked a little with static analysis of functional programming languages.
Lambda: The Ultimate Blog Post #
This is my home page and my blog. Below you can find a list of my publications. I write technical blog posts with some frequency; topics usually cover aspects of programming language theory, though I also like writing about education, software engineering, and occasional updates about some of my projects. (You’re welcome to subscribe to the RSS feed if you’d like.)
I usually write to help me remember and deepen my understanding of things that I learn: verbal explanations reveal gaps that the mind misses. This is also a place for me to practice writing—writing is a big part of my job, and I want to write well. Sometimes I write to share something that I found useful.
Contact #
- Email: blog@lambdaland.org (PGP key)
- Matrix: @ashton:matrix.lambdaland.org
Email and Matrix are both good ways to reach me. You can also find me on the following platforms, though I might not answer quickly if you message me there:
Work #
I am graduate student and part of the PLT research group at the University of Utah. See our work on GitHub.
Publications #
Type Tailoring (ECOOP 2024) #
Ashton Wiersdorf, Stephen Chang, Matthias Felleisen, and Ben Greenman
Type systems evolve too slowly to keep up with evolving libraries. Type tailoring offers a lightweight solution: let end users modify the elaboration of surface code into the internal language of the type checker. This paper introduces type tailoring as a theme that has emerged across programming languages, it analyzes the core technical dimensions that make tailoring work, and it outlines a vision for tailoring as a first class language feature.
FlowFPX: Nimble tools for debugging floating-point exceptions (JuliaCon 2023) #
Taylor Allred, Xinyi Li, Ashton Wiersdorf, Ben Greenman, and Ganesh Gopalakrishnan
FlowFPX is a set of tools designed to help programmers track down and handle floating-point exceptions. One of these tools—FloatTracker—automatically traces floating-point computations in Julia code, and helps scientists pinpoint where exceptional values arise in their computations.
- Paper (PDF)
- Talk recording
- Poster (PDF)
Invited Talks and Lectures #
Monads (CS 6963: Functional Programming, University of Utah, 2024) #
Lecture on monads, delivered in a course on functional programming. Lecture notes and slides available on Codeberg.
Type Tailoring (CPU Reading Group, University of Utah, 2023) #
Informal presentation on the ideas behind Type Tailoring.
Intro to Elixir Macros (Utah Elixir 2019) #
Presentation on the basics of Elixir’s macro system.
Projects #
- Chorex
- Choreographic programming for Elixir: deadlock-free systems by construction.
- Dyn for Rhombus
- Making Static Rhombus a gradually-typed programming language through type tailoring.
- FloatTracker.jl
- Julia library providing tracking of floating point errors through a program resources.
Personal Projects #
Software #
- Ysue
- You Should be Using Emacs instead of this text editor I wrote in Haskell.
- Type inference with errors
- Type inference for a small lambda calculus with decent error messages.
- μKanren
- Walk through of the μKanren embedded logic language.
- lambda-x86
- My first compiler, which compiles a small Lisp to x86.
Emacs #
- Emacs Bedrock
- A minimalist Emacs starter kit focused on built-in functionality and discoverability aids.
- Nordic Night
- A darker, higher-contrast spin on the lovely Nord theme for Emacs.
Misc. #
- Iosevka Output
- A custom build of the Iosevka font modeled after the lovely Input Mono font.