Issues » #428

#428 – July 12, 2021


Learn to parse any language using ANTLR

After hundreds of people have taken the first edition, we got a better idea of what our students wanted. They wanted more of our experience working with ANTLR. Most of them are professional developers who need to start working on a parser as soon as possible and in the right way. That's why we launched "Using ANTLR Like a Professional - 2nd edition". 4+ hours of video lessons, a guide for the best practices for ANTLR, a 50+ page manual with cheatsheet for ANTLR and much more. Everything you need to create professional parsers starting from scratch!

this week's favorite

Programming language memory models

Programming language memory models answer the question of what behaviors parallel programs can rely on to share memory between their threads. For example, consider this program in a C-like language, where both x and done start out zeroed.

Faster: A concurrent key-value store with in-place updates

Faster combines a highly cache-optimized concurrent hash index with a hybrid log: a concurrent log-structured record store that spans main memory and storage, while supporting fast in-place updates of the hot set in memory.

The untold story of SQLite

On today’s show, I’m talking to Richard Hipp about surviving becoming core infrastructure for the world. SQLite is everywhere. It’s in your web browser, it’s in your phone, it’s probably in your car, and it’s definitely in commercial planes. It’s where your iMessages and WhatsApp messages are stored, and if you do a find on your computer for *.db, you’ll be amazed at how many SQLite databases you find.

SQL join types explained visually

Merging two data sets using SQL or SQL tools can be accomplished through JOINS. A JOIN is a SQL instruction in the FROM clause of your query that is used to identify the tables you are querying and how they should be combined.

Compiling Rust is NP-hard

Though it's not the flagship borrow checking that's at fault. What I noticed, and would like to share with you today, is that the exhaustiveness checking performed by the Rust compiler on match patterns is a superset of the SAT problem.


Join over 16,500 readers for a free weekly email with fresh news, articles and tutorials.