Junrui Liu's Avatar

Junrui Liu

@junrui-liu.bsky.social

CS PhD student @ UC Santa Barbara, doing program synthesis and verification https://junrui-liu.github.io/

168 Followers  |  317 Following  |  16 Posts  |  Joined: 12.11.2024  |  2.0818

Latest posts by junrui-liu.bsky.social on Bluesky

Preview
Interactive Theorem Provers for Proof Education | Proceedings of the 2025 ACM SIGPLAN International Symposium on SPLASH-E

Interactive theorem provers for proof education. ~ Romina Mahinpei, Manoel Horta Ribeiro, Mae Milano. dl.acm.org/doi/abs/10.1... #ITP #CoqProver #Teaching

13.10.2025 10:38 โ€” ๐Ÿ‘ 2    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Write your own tiny programming system(s)! - YouTube The goal of this course is to teach how fundamental programming language techniques, algorithms and systems work by writing their miniature versions. The cou...

I'm teaching ๐—ช๐—ฟ๐—ถ๐˜๐—ฒ ๐˜†๐—ผ๐˜‚๐—ฟ ๐—ผ๐˜„๐—ป ๐˜๐—ถ๐—ป๐˜† ๐—ฝ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ด ๐˜€๐˜†๐˜€๐˜๐—ฒ๐—บ(๐˜€)! again. I'll be posting the videos & tasks on YouTube too.

In the first lecture, I explain what's a tiny system, why write one and show plenty of demos!

๐ŸŽž๏ธ Playlist: www.youtube.com/playlist?lis...
๐Ÿ‘‰ More info: d3s.mff.cuni.cz/teaching/npr...

07.10.2025 21:18 โ€” ๐Ÿ‘ 50    ๐Ÿ” 17    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 1

Sorry, I meant alternative instead of selective. Time to go back to OCamlโ€ฆ

27.09.2025 17:40 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I had a random thought (when reading the free generator paper) that the selective applicative interface with a โ€f a * f b -> f (a*b)โ€ API instead of the usual โ€œ<*>โ€ roughly corresponds to typed context-free expressions minus fixpoint. Might explain the expressiveness vs understandability tradeoffโ€ฆ

27.09.2025 17:18 โ€” ๐Ÿ‘ 2    ๐Ÿ” 1    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 1
Preview
A Data-Centric Introduction to Computing This book is an introduction to computer science. It will teach you to program, and do so in ways that are of practical value and importance. However, it will also go beyond programming to computer sc...

Super excited to release the latest version of "A Data-Centric Introduction to Computing" (DCIC). See release notes for 2025-08-27 for what's changed and new (a LOT!): dcic-world.org/2025-08-27/R....
dcic-world.org

28.08.2025 01:21 โ€” ๐Ÿ‘ 49    ๐Ÿ” 10    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 1

The most enlightening explanation on subtyping I read was from Benjamin Pierce's PhD thesis. Paraphrased, subtyping is type-directed program synthesis (intersection types synthesize tuple projections, nat<int synthesizes coercions, function contra & covariance synthesize function composition)

11.08.2025 18:46 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
PLP 1.3-1.4: Compilation, interpretation, and environments
YouTube video by Jonathan Aldrich PLP 1.3-1.4: Compilation, interpretation, and environments

Released today: the second video in my Programming Language Pragmatics series, covering Compilation, Interpretation, and Environments!

www.youtube.com/watch?v=mrmo...

Going forward, I'll post a video 3 times a week. Please share the series with anyone who might benefit!

08.08.2025 17:01 โ€” ๐Ÿ‘ 23    ๐Ÿ” 7    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

wow this sounds super interesting. Looking forward to reading your paper when it comes out!

01.08.2025 20:27 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Minnowbrook Logic Programming Seminar (Supercut w/ Extras)
YouTube video by Kristopher Micinski Minnowbrook Logic Programming Seminar (Supercut w/ Extras)

May 25-27, 2025, I hosted an event, the "Minnowbrook Logic Programming Seminar," in Blue Mountain Lake, NY. I recorded 11 talks on Datalog-related interests, totaling over 9+ hours of video, which I have just now published on YouTube youtu.be/3ec9VfMUVa8

07.07.2025 18:50 โ€” ๐Ÿ‘ 18    ๐Ÿ” 5    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 1

The joy of comp sci is that it applies scientific (mathematical, if you're lucky) thinking to a domain which is constructed entirely artificially. Things are the way we make them. Reality doesn't fling you around: you fling reality around. And you need to learn to do so with skill and consideration.

28.06.2025 21:24 โ€” ๐Ÿ‘ 30    ๐Ÿ” 5    ๐Ÿ’ฌ 4    ๐Ÿ“Œ 0

Specifically, if you're looking for a CS job at a small liberal arts college check this list (later this summer): cs-pui.github.io

And warning: many of these jobs have early fall deadlines!

#FAccT2025

25.06.2025 12:47 โ€” ๐Ÿ‘ 20    ๐Ÿ” 8    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Introducing OxCaml At Jane Street, weโ€™ve been actively making improvements to OCaml for a long time. Over thelast few years, weโ€™ve started to build some fairly ambitious extens...

And here's a blog post, announcing the release!

blog.janestreet.com/introducing-...

13.06.2025 14:22 โ€” ๐Ÿ‘ 57    ๐Ÿ” 18    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 1

was even thinking about designing an automata theory course around this idea: regex is just like a simple imperative language with atomic print(), but with if's and while's conditions being non-deterministic. Then everything becomes "predicting what a program will print by abstracting it into regex"

11.06.2025 18:37 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

This is such an important observation that I've been planning to delve into it in my intro PL class this summer. In this sense, non-determinism is just like type abstraction: if an over-approximation of actual behaviors is proven safe, then so are the actual behaviors.

11.06.2025 18:26 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
U.S. Will โ€˜Aggressivelyโ€™ Revoke Visas of Many Chinese Students, Rubio Says

Breaking News: The U.S. government will work to โ€œaggressively revokeโ€ visas of Chinese students, Secretary of State Marco Rubio said.

29.05.2025 00:46 โ€” ๐Ÿ‘ 182    ๐Ÿ” 78    ๐Ÿ’ฌ 100    ๐Ÿ“Œ 42
Beyond Textbooks and Videos: Creating and Sharing Code Playbacks Join CS professor, Mark Mahoney, to hear about how he uses code playbacks in his computer science courses.

UPDATE: I am going to offer some free online training this summer about how to create code playbacks and use them in a course. I'll show how I use code playbacks instead of textbooks and videos and share what my students think of them.

www.eventbrite.com/e/beyond-tex...

27.05.2025 16:32 โ€” ๐Ÿ‘ 8    ๐Ÿ” 2    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

A few thoughts on AI and education, from someone who uses AI and also teaches many levels of student.

1. Most importantly, it's not possible to know what will happen because no one knows what skills AI will or will not replace in the next few years.

08.05.2025 16:30 โ€” ๐Ÿ‘ 27    ๐Ÿ” 9    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Thanks for your fast response! I'll shoot an email

07.05.2025 17:58 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Hi Prof. Friedler, I'm very interested in applying for this position, and have some questions about the application materials for which I'd really appreciate your input! However, Bluesky doesn't seem to allow me to DM you via its Chat. Would you prefer me to reach out via other channels instead?

07.05.2025 17:45 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Syllabus ๐Ÿ“ - CS162 Programming Languages

Really excited to teach an undergrad course on programming languages this summer! Unfortunately, UCSB only gave me 6 weeks for a summer class, so will have to work under severe time constraints. Slowly working out the course design here (suggestions welcome!): junrui-liu.github.io/cs162/

09.04.2025 00:10 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

haven't implemented a server myself, but some examples on my mind: syntax highlighting (parsing), debugger (small-step operational semantics), autocompletion suggestion (type checking for pruning), typed holes (bidirectional typing a la Hazel/unification-based inference)

03.04.2025 17:42 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Random thought: teaching a PL course where students progressively build components of a language server for a simple language

03.04.2025 17:30 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

This essay about feminism in PL asks some really tough questions!

Itโ€™s making me wonder: what should the purpose of PL research be, anyway?? Are we trying to โ€œsolve problemsโ€, โ€œmake the world a better placeโ€, โ€œexpand knowledgeโ€, orโ€ฆ?

www.felienne.com/wp-content/u...

25.03.2025 14:50 โ€” ๐Ÿ‘ 3    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

On a possibly related note, Dolan's paper also cites Graphs, Dioids and Semirings (Gondran & Minoux), which describes the generalized Dijkstra algorithm on semirings (p.144)

04.03.2025 17:48 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

quick update: the "paper" I was thinking about but whose title I couldn't recall was this one: youtu.be/TQUvXy547AA?...

06.02.2025 01:42 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

yeah no prob! I'm been thinking about something slightly related to this, so if you found anything interesting please lmk

27.01.2025 19:09 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

This paper (yzsun.me/files/TFP22-...) might be tangentially relevant but it just encodes labelled arguments as records. IIRC there was another recent paper at one of the PL conferences (POPL/PLDI/OOPSLA?) that had a core calculus purely based on labels but I can't recall the name of the paper.

27.01.2025 18:21 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I tried sneaking Church encodings into a PL class as extra credit when i was a TA & found Parigot encodings easier to teach: nats = their induction principle, sub1 is free, and it's a straightforward syntax-directed translation from the original recursive definitions of + * ^ to their encodings

15.01.2025 20:00 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

@junrui-liu is following 20 prominent accounts