Lindsey Kuper, a programming languages researcher, writes about compilers, parallelism, concurrency, distributed systems, and verification.
HN commenters recommend 'My First Fifteen Compilers' and link her posts on verifying neural-network collision avoidance, though one finds the compiler book it describes parsing-heavy.
Dan Luu has a list of programming blogs you might like: https://danluu.com/programming-blogs/. The rest of his blog is good too!
a few of my favorite blogs:
- http://blog.acolyer.org for fantastic daily summaries of CS papers.
- http://stephaniehurlburt.com/blog/ -- she has a business creating a new compression algorithm and I love reading about it
- https://rachelbythebay.com/w/ is pure gold for weird debugging stories
- https://accidentallyquadratic.tumblr.com/ is always a fun read
- http://wingolog.org/ on building compilers
- http://composition.al/blog -- Lindsey Kuper on her programming languages research
- aphyr's blog on distributed systems, of course
- https://charity.wtf/
- http://www.pgbovine.net/writings.htm -- Philip Guo is a CS professor whose blog on his experiences in academia I really like
- http://whilefalse.blogspot.com by Camille Fournier, mostly on engineering management
- http://larahogan.me/blog/ by Lara Hogan, on engineering management
Also I think this comment from Dan's blog (https://danluu.com/about/) is very true and important:
> I view that as a sign there’s a desperate shortage of understandable explanation of technical topics. There’s nothing here that most of my co-workers don’t know (with the exception of maybe three or four posts where I propose novel ideas). It’s just that they don’t blog and I do. I’m not going to try to convince you to start writing a blog, since that has to be something you want to do, but I will point out…
sigh
Yet another book which spends more than 1/3 of its pages on parsing.
Syntax doesn't matter (much), semantics matters. You need to know how to implement efficiently various PL stuff within your compiler: exceptions and algebraic effects, modules and parametric modules, parametric polymorphism and optimizations for it in presence of modularity, fibers, method dispatching in Object Oriented langs, type inference etc etc.
These books are about parsing, not about compilers. They spend a lot of time explaining how to parse a simple featureless language, instead of just use a parser generator and focus on actual programming languages design and features.
Appel's Modern compiler in ML/Java/C is way better. Also there is a great course from the creator of Chez Scheme (I bet I've seen the whole course available in the internet, but I couldn't find it anymore)
https://www.cs.princeton.edu/~appel/modern/
http://composition.al/blog/2017/07/31/my-first-fifteen-compilers/
These are other good resources:
- rise4fun https://rise4fun.com/z3/tutorialcontent/guide
- https://ericpony.github.io/z3py-tutorial/guide-examples.htm
- Programming Z3 -https://theory.stanford.edu/~nikolaj/programmingz3.html
- Nikolaj Bjorner's tutorial https://youtu.be/nGwyNmsxX6I
- Hakank's examples http://www.hakank.org/z3/
- Yurichev's book "SMT by Example" https://yurichev.com/writings/SAT_SMT_by_example.pdf
- http://hackage.haskell.org/package/sbv
- https://www.youtube.com/watch?v=ruNFcH-KibY Tikhon Jelvis - Analyzing Programs with Z3
- https://www.youtube.com/watch?v=rvPWDgJc0O4&ab_channel=ACMSIGPLAN - Nadia Polykarpova on Z3
- SAT SMT school https://sat-smt.in/
- Emina Torlak's course https://courses.cs.washington.edu/courses/cse507/19au/calendar.html
- Lindsey Kuper - SMT Solving and Solver-Aided Systems http://composition.al/CSE290Q-2019-09/
- http://www.sc-square.org/CSA/school/lectures.html
> The trend started by minifiers like UglifyJS and continued by transpilers like Babel will only accelerate.
Not to be pedantic, but are UglifyJS and Babel "frameworks"? Not a Ember user, so maybe Ember has some sort of built-in source code transformer and that's what the author is referring to?
I think the basic idea that JavaScript developers, especially those working in a browser environment, will increasingly write source code that compiles to JavaScript "bytecode" is not a recent idea. A much more nuanced reflection on that idea can be found here: http://composition.al/blog/2017/07/30/what-do-people-mean-when-they-say-transpiler/.
With all the hand-wringing about "JavaScript fatigue", it's a little bit sad that prominent JavaScript developers use titles like "Compilers are the New Frameworks". The tone of this title is the tone of a bell ringing for the next round of JavaScript fad musical chairs.
Also has a great list of other blogs, most of which are my favorites now too.
https://jvns.ca/blog/2016/04/09/some-of-my-favorite-blogs/
here's a copy+pastable list:
https://rachelbythebay.com/w/
http://danluu.com/
https://aphyr.com/
http://www.elidedbranches.com/
http://composition.al/blog/2015/03/31/what-isnt-a-key-value-store/
https://www.harihareswara.net/sumana/2016/03/29/0
http://blog.plover.com/aliens/dd/intro.html
http://blog.jessitron.com/2015/06/ultratestable-coding-style.html
http://akaptur.com/blog/2014/08/03/getting-started-with-python-internals/
http://accidentallyquadratic.tumblr.com/post/142387131042/nodejs-left-pad
http://embedded.fm/blog/takingaparttoys
http://gigasquidsoftware.com/blog/2012/09/20/7-john-mccarthy-papers-in-7-weeks-1/
https://mathbabe.org/2016/03/30/apple-vs-fbi-nobody-won/
The definition this article puts up is, without references, is: " A transpiler on the other hand is a tool that converts between two languages while keeping the same level of abstraction. A theoretical perfect transpilation is therefore a two-way process where you could go back and forth between languages."
Is the level same-level-of-abstraction really part of the usual meaning of the term?
Here's a blog post by Lindsey Kuper that finds around 5 meanings, with only one of them (and being an unsourced Wikipedia article to boot) converging to the same idea about abstraction leve: http://composition.al/blog/2017/07/30/what-do-people-mean-when-they-say-transpiler/