J
Jay McCarthy
jeapostrophe.github.io · Personal blog · on HN since 2013
Jay McCarthy, a Racket developer and professor, writes about Racket, compilers, macros, and programming language teaching.
What HN saysHN commenters link his course pages and Essentials of Compilation as good incremental compiler teaching, and point to his Racket macro work.
16HN people shared it
7linked it in comments
21stories submitted
256story points
7 months agolast shared
2013people per year2026
Most-shared posts
- 1The Underbelly of Racket Macro Basics3 people · 39 points · first shared 2013 · 6 comments on HN
- 2Essentials of Compilation – compiling Racket [pdf]3 people · 3 points · first shared 2017 · discussion on HN
- 3Addition on Turing Machines (2013)2 people · 33 points · first shared 2015 · 3 comments on HN
- 4Writing a Vi-like Graphics Editor in Racket1 people · 88 points · first shared 2013 · 22 comments on HN
- 5The Anti-Human Consequences of Static Typing1 people · 43 points · first shared 2013 · 63 comments on HN
- 6Don't Wait for Claude1 people · 23 points · first shared 2026 · 35 comments on HN
- 7The Skyline Problem in Racket1 people · 5 points · first shared 2024 · 4 comments on HN
- 8Practically Accurate Floating-Point Math [pdf]1 people · 3 points · first shared 2019 · discussion on HN
- 9Efficient Forth in 85 Lines of Racket1 people · 3 points · first shared 2013 · discussion on HN
- 10Duff’s Device in Racket1 people · 3 points · first shared 2013 · discussion on HN
- 11Defer, Panic, and Recover in Racket1 people · 2 points · first shared 2013 · discussion on HN
- 12A* Search in Racket1 people · 2 points · first shared 2013 · discussion on HN
- 13Binding Forms in Racket and How to Implement Them1 people · 2 points · first shared 2013 · discussion on HN
- 14Stupid Interview Questions: Reversing a Doubly Linked List1 people · 1 points · first shared 2013 · discussion on HN
- 15Implementing a Short Hand for Rackunit Tests1 people · 1 points · first shared 2013 · discussion on HN
What HN people wrote when they linked it
gilmi · 2020-10-04
I love 'the incremental approach to compiler construction'. Here are a few other courses that use this approach to teach compiler construction:
* http://www.ccs.neu.edu/course/cs4410/
* https://ucsd-cse131-f19.github.io/
* https://jeapostrophe.github.io/courses/2017/spring/406/notes/book.pdf
baldfat · 2017-09-21
> you will end up needing something that is only available for the most popular 5-6 languages
The thing that is the Special Sauce for Racket is it's macro system. You can build your own language for specific things easily or you can extend Racket with a library also much easier then the other 5-6 languages.
Racket really has a chance of being the Python of functional(ish) languages. The ability of the community to produce a great ecosystem is all right there baked in. http://jeapostrophe.github.io/2013-07-22-123list-post.html
I also think the documentation is all in one place. The library Scribble makes it simple for everyone to document your macro/library simply and uniformly. I really have high hopes for Racket over the next 5 years.
jpolitz · 2015-09-17
Off the top of my head, I'm not sure (other than follow-up work to this paper, like http://jeapostrophe.github.io/home/static/icfp065-mccarthy.pdf [ICFP '09]). But, the ideas in that paper aren‘t any less true just because they are from 2005, and they are still what the Racket web server runs on as far as I know :-)
goda90 · 2024-06-24
Maybe it was just how tough on grading my professor was but I had a hard time with a class called "Concepts of Programming Languages". It covered stuff like syntax, typing, garbage collection, etc. My professor was on the Racket dev team, and the whole class was done in Racket. He was actually pretty thorough about recording lectures and notes so it can be found here: https://jeapostrophe.github.io/courses/2013/fall/330/course/
gsg · 2017-09-02
There's a decent textbook written in the incremental style argued for by the author: Essentials of Compilation. It features compilers for seven languages, written in Racket, each with successively more advanced features.
https://jeapostrophe.github.io/courses/2017/spring/406/notes/book.pdf
brudgers · 2017-02-12
Source repository: https://github.com/jsiek/Essentials-of-Compilation
Book in PDF: https://jeapostrophe.github.io/courses/2017/spring/406/notes/book.pdf
takikawa · 2013-08-08
> and a better abstract model for macros than even Racket's stellar syntax-parse.
To clarify a little bit, `syntax-parse` is actually not its own model for macros but is a sophisticated front-end for Racket's underlying macro system (described in this paper: http://www.cs.utah.edu/plt/publications/jfp12-draft-fcdf.pdf). Also see Jay McCarthy's blog article that tries to clarify this: http://jeapostrophe.github.io/2013-07-22-123list-post.html
Racket's macro system and Kernel's fexprs are pretty fundamentally different, so I don't think the comparison is very apt. In particular, Racket's macros can be entirely compiled away.