Topics /

Programming Languages

The most popular blog posts about programming languages on Hacker News. 283 posts.

2025
242

The Language Construction Kit (1996, 2012)

Caja de herramientas para construir idiomas (en español; traducido por Renato Montes) O Kit de Construção de Línguas (em português; traduzido por Gustavo Pereira) Il Kit di Costruzione di Linguaggi (in italiano; tradotto per Daniele "MadMage" Calisi) Der Sprachbaukasten (auf Deutsch; übersetzt von Carsten Becker)

247

The Arduino Uno Q is a weird hybrid SBC

The Arduino Uno Q is... a weird board. It's the first product born out of Qualcomm's buyout of Arduino. It's like if you married an Intel CPU, and a Raspberry Pi RP2040 microcontroller—oh wait, Radxa's X4 did that. Arduino even tried it before with their old Yún board, which had Linux running on a MIPS CPU, married to…

251

Generic Containers in C: Safe Division Using Maybe

Martin Uecker, 2025-08-10 I discuss the implementation of type and bounds safe generic containers in C. Previously, I discussed a span type , bounds checking using arrays . and a a vector type . This time, I will discuss maybe inspired by Haskell. This type can used to return a value that may not exist, e.g. because…

258

I Wrote a Compiler

I have a Computer Science degree. I attended a whole course of lectures on compilers (and have a certain fondness for “the red dragon book” as a result). However, I had never actually written a compiler from start to finish until a rainy day last weekend.

259

Clojure Zippers (2021)

In this article, we will discuss zippers in the Clojure language. These are an unusual way to work with collections. Using a zipper, you can traverse a data structure arbitrarily and modify its content as well as search in it. A zipper is a powerful abstraction that pays off over time. However, it is not as…

261

Ways to generate SSA

Static Single Assignment is a program representation where each “variable” (though this term can be misleading) is assigned exactly once. Mostly the variables aren’t variables at all, but instead names for values—for expressions. SSA is used a lot in compilers. See this lesson from Cornell for converting Bril to SSA…

263

`std::flip`

std::flip is a little-known utility from the C++ standard library header <functional>: it is a higher-order function that accepts a Callable and returns an equivalent Callable with the order of its parameters reversed (or “flipped”).

264

Contracts for C

C++ seems to finally converge with their contracts proposal, I decided to give it a try and come up with ideas how such a thing would look for C. This is in early stages, not a full proposal yet, a…

266

Lambda Calculus and Lisp, part 1

The first of a series of envisioned blog posts on lambda calculus, and Lisp. It&rsquo;s unclear exactly where to start: there is a whole heap of interesting issues, both theoretical and in terms of concrete implementations, which tangle and interconnect. A particular application of lambda calculus is a very salient…

267

The Expression Problem and its solutions (2016)

The craft of programming is almost universally concerned with different types of data and operations/algorithms that act on this data [1] . Therefore, it's hardly surprising that designing abstractions for data types and operations has been on the mind of software engineers and programming-language designers since…