I want toast
I’ll get back to Bean Machine and Beanstalk in the next episode; today, a brief diversion to discuss a general principle of language design and congratulate some of my former colleagues. Back when we...
View ArticleBean Machine Retrospective, part 5
Let’s take another look at the “hello world” example and think more carefully about what is actually going on: @random_variable def fairness(): return Beta(2,2) @random_variable def flip(n): return...
View ArticleBean Machine Retrospective, part 6
Happy New Year all! Last time I briefly described the basic strategy of the Beanstalk compiler: transform the source code of each queried or observed function (and transitively their callees) into an...
View ArticleThe names of birds, part 1
For the next part in my Bean Machine retrospective to make sense I’ll need to make a short digression. In looking back on the almost 20 years I’ve been blogging, it is surprising to me that I’ve only...
View ArticleThe names of birds, part 2
Reader “Joel” had an insightful comment on the first part of this series which I thought deserved a short episode of its own. Recall that we proved the theorem “if a compositional forest contains a...
View ArticleThe names of birds, part 3
In the autumn of last year my friend Joan and I went on a little trip up to the Skagit valley north of Seattle to photograph birds of prey; I managed to get a blurry but recognizable shot of this...
View ArticleThe names of birds, part 4
The European starling is a lovely looking bird, though territorial, noisy and aggressive up close. Unfortunately, they are very invasive in North America. Most of the hundreds of millions of European...
View ArticleBean Machine Retrospective, part 7
How do we write a compiler in a typical general-purpose line-of-business OO programming language such as Python, C#, Java, and so on? Compilers are programs, so we could make the question more...
View ArticleBean Machine Retrospective, part 8
Before getting into the details of how my combinator-inspired source code transformation system works, I should say first, what is a general overview of the system? and second, why did I build it at...
View ArticleBean Machine Retrospective, part 9
I wanted to implement concise “pattern matching” in Python, a language which unlike C#, F#, Scala, and so on, does not have any pattern matching built in. Logically a pattern is just a predicate: a...
View Article
More Pages to Explore .....