Wanaka Landscapes

Lake Wanaka

Programming languages provide abstractions which allow the expression of logic. This gives us, the Alchemist programmer, the ability to recite a few incantations on our keyboards and imbue the programs we are writing with the apparent ability to make decisions. Without logic computer programs would be constructed to do a single thing, and recursion and loops would act as black holes.
In this blog we add a boolean data type and some common logical control operators.
| Input … |
|---|
In A Simple Computation Engine with F# we created a programming language which computes basic math expressions such as (+ (+ 3 5) (- 10 6 0)). One limitation was that the only computations it could run were predefined by the programming language, specifically + and -. Here we evolve the language adding symbols and functions, supporting the use cases listed below.
| Input | Output |
|---|---|
(define x 100) |
Symbol x |
(+ … |
I’m in one of those reflective periods where I’m catching up on books I should have read earlier; Thomas Pynchon, Neal Stephenson, and the like. In Software Engineering one of those books is Structure and Interpretation of Computer Programs (SICP). SICP is known for teaching computing from basic principles using the programming language Scheme, (a (type of (lisp))). I began programming using Javascript, PHP, and Java. The first Lisp I encountered was Clojure, and I found the language …
Deployment Frequency is a software delivery metric popularised in the book Accelerate (2018). It measures the number of times a software component is deployed to production. I work on an Engineering Insights system at a BigTech company. Deployment Frequency is one of the metrics we measure and provide for teams to use and drive improvement. Through my experience in developing and operating the Engineering Insights system I’ve learned a lot about Deployment Frequency. Here I share my …