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