An impressive number of transformations in both compilers and in ordinary programming are special cases of a transformation called “defunctionalization.” This post explains what it is and the many places it’s useful.
Program synthesis promises a new way to build software. In this post we build a simple synthesizer from scratch in just a few lines of code.
We accept that data structure determines program structure. But we should not forget that it is not just the input data that may be structured: output data may be structured too, and both may determine program structure.