Multiply-step Instruction

Fourth in a series on colorForth and GreenArrays hardware. This time, how the multiply-step instruction works on the F18. Bit Twiddling is Fun! Here’s a bit-twiddly interview question for you: Design an algorithm to multiply fixnum integers in O(log n) time using only addition. This may come in handy given that the F18 doesn’t have…


The Beautiful Simplicity of colorForth

colorForth As much fun as hand packing instructions was in the last post, that was tedious. Let’s move on to colorForth. Don’t worry too much about what the code above does (prints “colorForth rocks!”). It compiles to this: Isn’t the source beautiful? So colorful! The colors are not merely syntax highlighting. They drive the semantics! They are…


Programming the F18

Programming the F18 As we saw in the last post, the GA144 chip is an array of 144 tiny computers or “nodes”. We tend not to call them “cores” because they are really more independent than that. Programming these interconnected nodes is something like working with agents or CSP. Each is an instance of the…


Chuck Moore’s Creations

This is the beginning of a series: Programming the F18 Beautiful Simplicity of colorForth Multiply-step Instruction Simple Variables When I heard that Chuck Moore was speaking at Strange Loop this year I just had to go. His talk yesterday was excellent! I’m not going to summarize it here. The talk will be online soon enough….


Speech Grammars in F#

People say that Vim keys are a grammar for talking to your editor and that’s exactly what they are. One weekend some time back I had fun making VimSpeak to see how well mapping English words to Vim keys would work. It turned out quite nice and some pieces of how it was built (in particular the…



Don Syme blogged this quite some years ago but it just came up in a design review on my team this afternoon and it bears repeating. let memoize f =     let cache = new Dictionary<_,_>()     (fun x ->         match cache.TryGetValue x with         | true, res -> res        |…



I switched to Colemak a couple of years ago. I love it. Never going back. Not really any faster than QWERTY, but so much more comfortable. One issue though is whenever I jump on someone else’s machine or remote into some server. I want to switch the layout but I don’t really want to install…