Jonathan Aldrich
@jonathanaldrich.bsky.social
2.1K followers 770 following 710 posts
Professor at Carnegie Mellon University, working on programming languages and software engineering. Coauthor, Programming Language Pragmatics (videos: https://tinyurl.com/PLP5vids). CTO of noteful.net ACM Publications Board member. He/him.
Posts Media Videos Starter Packs
jonathanaldrich.bsky.social
Next, at 16:50, Hazel Torek will talk about how to extend our theory of gradual verification with unfolding expressions. Unfolding is important for modular specification; it allows making assertions about state that is owned by a separate predicate.
jonathanaldrich.bsky.social
First, at 16:25 I'll give an overview of gradual verification, with a specific focus on gradual support for ownership (following the theme of IWACO). Learn how gradual verification makes specification more practical, and how we can check ownership dynamically!
jonathanaldrich.bsky.social
#GradualVerification helps developers specify code one component at a time, checking statically where possible and dynamically where necessary.

Come see doubleheader talks on #GradualVerification in #IWACO at #SPLASH 2025 / @icfp-conference.bsky.social! 16:25-17:15 in Peony room 4412.
jonathanaldrich.bsky.social
#LiquidTypes are a lightweight way to specify and check code properties. What stands in the way of more widespread adoption?

Today at #SPLASH 2025 / @icfp-conference.bsky.social: @catarinavgamboa.bsky.social will re-present our #PLDI2025 paper on Usability Barriers for Liquid Types.
jonathanaldrich.bsky.social
PLP 5.5: Compiling for Modern Processors - youtu.be/C6N-4GUJ9bY

Also check out the whole Programming Language Pragmatics playlist: tinyurl.com/PLP5vids

Chapter 5 in our book is freely available at the companion site: mlscott14627.github.io/PLP5e_online...
PLP 5.5: Compiling for Modern Processors
YouTube video by Jonathan Aldrich
youtu.be
jonathanaldrich.bsky.social
How does one write efficient code for modern processors?

My new Programming Language Pragmatics video covers a big part of the answer: using instruction scheduling and register allocation to reduce pipeline stalls that compromise performance!
jonathanaldrich.bsky.social
Given the diversity of thought in programming languages, I may one day be that too, for someone!
jonathanaldrich.bsky.social
Achievement unlocked: was recognized as "the guy who does the programming languages videos" 😀
jonathanaldrich.bsky.social
PLP 5.3-5.4: Instruction set architecture & how architecture affects implementation - youtu.be/KWMwVgQ87jU

Also check out the whole Programming Language Pragmatics playlist: tinyurl.com/PLP5vids

Chapter 5 in our book is freely available at the companion site: mlscott14627.github.io/PLP5e_online...
PLP 5.3-5.4: Instruction set architecture and how architecture affects implementation
YouTube video by Jonathan Aldrich
youtu.be
jonathanaldrich.bsky.social
What instructions do modern processors support? What can you express with them? And how are processors implemented to execute them efficiently? Get a high-level overview in my latest Programming Language Pragmatics video!
jonathanaldrich.bsky.social
PLP 5.2: Data Representation in Computer Architecture - youtu.be/UeNtlzpLfaM

Also check out the whole Programming Language Pragmatics playlist: tinyurl.com/PLP5vids

Chapter 5 of our book is freely available at the companion site: mlscott14627.github.io/PLP5e_online...
youtu.be
jonathanaldrich.bsky.social
How is data represented in computer architectures?

My latest Programming Language Pragmatics video gives compiler writers information about twos-complement integers, floating point numbers, and little-endian vs. big-endian byte order, useful for manipulating data in target code.
jonathanaldrich.bsky.social
Fortunately I tried the link early in the day, discovered the problem, communicated with the student, and all is well. But WTF is the institution thinking?

Yeah, looking at you, Stanford.
jonathanaldrich.bsky.social
Went to fill out a recommendation letter request and THE LINK HAD EXPIRED!

OMG, this is TERRIBLE policy. The link had to be regenerated by the student, and what if it's the day it's due and there's no time for a round-trip? Actually punishes the most responsible students, who send links early.
jonathanaldrich.bsky.social
LOL I missed an opportunity there!
jonathanaldrich.bsky.social
Now ICE is shooting praying priests with pepper balls. And MAGA is supposed to be pro-Christianity?
mskellymhayes.bsky.social
CW: protester being struck in the head by a pepper ball

Footage I took earlier of the moment Reverend David Black, a regular protester outside of the Broadview Detention Center, was shot in the head with a pepper ball by ICE agents on the roof of the facility.
jonathanaldrich.bsky.social
Language implementers need a solid grounding in processor architecture in order to understand how to generate good code. In my latest Programming Language Pragmatics video, I put on my "architecture hat" to cover the memory hierarchy and explain the implications for code generation.
jonathanaldrich.bsky.social
Nice, thanks for the explanation! Now I need to sit down with a couple of linear functions and see how this (matmul = function composition) works. 😀
jonathanaldrich.bsky.social
LOL I never got anything BUT the formulaic matmul (at least, nothing that stuck). Is there a nice explanation of this outside the precalc book?
jonathanaldrich.bsky.social
Some real Nazi thought policing there: "people should not be coming to the Super Bowl unless they're law-abiding Americans who love this country."
Reposted by Jonathan Aldrich
strandjunker.com
“Terrible things are happening outside. Poor helpless people are being dragged out of their homes. Families are torn apart. Men, women, and children are separated. Children come home from school to find that their parents have disappeared.”

Diary of Anne Frank
January 13, 1943