From 8d17a31bd701d7b9c90c546b29f3bf9ffa4cc41f Mon Sep 17 00:00:00 2001 From: Collin Williams <96917990+bluedragon1221@users.noreply.github.com> Date: Thu, 11 Jun 2026 12:40:51 -0500 Subject: changes to article structure, wrote about ai --- soplt.html | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'soplt.html') diff --git a/soplt.html b/soplt.html index c26608c..0835c4b 100644 --- a/soplt.html +++ b/soplt.html @@ -1,13 +1,9 @@ - + - - Summer of PLT - - - +
@@ -18,15 +14,16 @@

Looking for a summer coding project? Try making a programming language!

I think that every programmer, new or experienced, could benefit from understanding a little bit about how the languages they use daily actually work.

As such, this is my collection of resources that I used to teach myself a little bit of Programming Language Theory last summer, which concluded in my creation of CI lisp.

-

I'm planning on doing something similar this summer, so I figured I'd invite other people to try a 'Summer of PLT' too.

+

I'm planning on doing something similar this summer, so I figured I'd invite other people to try a 'Summer of PLT' too.

Disclaimer: I'm just a guy with no formal education in PLT. Like Daniel Fedorin said, I just love the field of programming languages.

Read a Book

- If you're new to the field of programming languages, my first piece of advice is READ CRAFTING INTERPRETERS! + If you're new to the field of programming languages, my first piece of advice is to read Crafting Interpreters! (or at least the first section, "A Treewalking Interpreter") In my opinion, there is no better way to break into the field of PLT than by reading Bob Nystrom's book on the subject: Crafting Interpreters. - There's also a free HTML version on his site if you don't feel like paying money.

+ There's also a free HTML version on his site if you don't feel like paying money. +

After that, I would suggest looking into Lisp.

@@ -38,9 +35,10 @@

Alternatively, you could consider going down the Emacs rabbit hole to teach yourself lisp. In the Emacs environment, you'll quickly gain proficiency with the parentheses, but you'll probably lose at least a few weeks in the process.

Theory-wise, I would recommend reading the original John McCarthy Lisp paper (be prepared for dense academic writing though): Recursive Functions of Symbolic Expressions and Their Computation by Machine.

+

Additionally, many suggest the book Structure and Interpretation of Computer Programs, which also includes some

+

The C2 lisp rant is also a fun read (but by no means required): Lost Ina Seaof Parentheses.

-

If you want more of a guided, handhold-y tutorial for making a lisp clone, I can only recommend mal - Make a Lisp. I personally have not gone through it, but I've heard good things.

Alternatively, ask an LLM to help you learn how programming languages work. Just make sure that you're actually learning, not just copying whatever it says to do. Try something like "Don't give me any code, just explain to me..."

@@ -58,6 +56,7 @@

Monadic IO

Also on the theory-heavy side, you could learn about Haskell's system for safe IO operations which use monads.

This paper on the subject (discovered on the Haskell wiki) is a pretty dense, but has all of the foundational ideas for Monadic IO in Haskell: Monadic I/O in Haskell 1.3.

+

The foundational ideas of Monads are well explained in Monads for functional programming by Phillip Wadler. I found this paper easier to understand than the prior one, and it gives you a great intuition for why Monads are cool. Definitely read this one!

Syntactic Sugar

-- cgit v1.3.1