All of the things labelled as Posts, so that crawlers have a place to find them.
1/2 Should Not Equal Zero
There’s something wrong when a language allows 1/2 to equal 0. It’s easy to understand why this happens, and perhaps it’s even easy to forgive
Why do we need pointers/references?
Below I’ve tried to catalog some of the typical uses of references in programming. My aim is to clarify the role references play in a
Parsing an exact decimal value using GMP
For Leaf, I need to parse decimal numbers to retain the exact value of the input without rounding. I assumed such a library would exist
Leaf: Simple type conversions
One of the problems with C++ is the way it handles type conversion. It inherits a lot of implicit conversion from C and then adds
Leaf: Preserving “lvalue” status
I’ve been reworking how I handle basic type conversion in Leaf. This is a mechanism which allows implicit conversion of simple types. As part of
What is a System Language?
Not all languages are made with the same purpose in mind. When it comes to designing a new language like Leaf, it’s important to choose
Immutable Values and Invariant Names
Programmers don’t usually spend a lot of time thinking carefully about names and values. As long as we follow a few basic rules, our code

Divorcing a value from its name
Understanding “values” is perhaps the most critical part of understanding programming. We are inundated with a variety of terms like “by value”, “by reference”, “member
How to handle an error
Error handling should be simple. It can become mired in complexity, but I don’t believe it has to be that way. If we stay focused
Of Faults and Errors: Who’s to blame?
Is there a difference between a “fault” and an “error” within a computer program? A number of people commented on my previous article suggesting this
Antiquated Error Handling: abort/exit
The abort function is a remnant of old programming practices, and it pains me to see it in modern software. While it’s great that a
What is a closure?
Closures have been around a long time yet have experienced a resurgence in the last decade. They were first implemented in the functional language Scheme
A trail through custom languages
How often does one need to write a custom language? Many projects often shun them, but I think domain specific languages are important. They offer
The syntax of a conditional
Conditionals are a key construct in programming: from the simple if statement, to loops and switches, and even to dynamic mapping. The essence of program
Why I have my own Android game framework
All I wanted to do was to make a game for my Android tablet, so how come I ended up writing a new C++ framework?
Android NDK Cross-Compile Setup (libpng and freetype)
Building native libraries for Android can be a bit confusing. My goal, which is likely shared by many, was to get libpng and freetyp2 working
Complexity of simple data types
Sometimes the simplest of things have complex answers. In programming we like to think of simple data types, but in reality there aren’t any. While
Why I don’t use a Parser Generator
Parser generators, like ANTLR or Bison, seem like great tools. Yet when I have to write a parser I now tend to steer clear of
Can the Ideal language allow custom operators?
While working on Cloverleaf I came upon a problem of parsing custom operators. I would like to say that a language would allow custom infix
Pitfalls of Performance Testing
Beware the casual performance test, it will lie to you. It is simple to write something that gives you timings, but it is difficult to
Cloverleaf: Start with an expression parser
I thought a good way to start Cloverleaf would be to write a simple expression parser. In a language expressions are those collection of symbols
Can a language be safe?
Some languages hand us sharp knives and encourage us to play with them. Other languages put us in padded rooms and discourage us from doing