Writing
Why a compiler for banking logic looks the way it does, and what the problems underneath it actually are.
-
A banking language that compiles to COBOL
BankLang 0.10.0 compiles a small banking language to readable IBM Enterprise COBOL, refuses unsafe financial programs at compile time, and publishes what it has not validated.
-
Why banks still run COBOL, and why rewriting it keeps failing
A bank's core systems are still COBOL for reasons of risk rather than nostalgia, and those reasons explain why the big rewrites keep stalling.
-
Rounding money is harder than it looks
Half of one penny has to go somewhere, and the choice you make is worth real money. Here is why floating point is the wrong tool and what banks actually do instead.
-
A compiler that refuses to build
Some bugs are omissions rather than mistakes — things the code failed to say. A compiler can notice that, and refusing to build is a reasonable response.
-
Reading code you did not write, and did not want
Generated code arrives on somebody else's desk to be reviewed and supported. What makes it acceptable has almost nothing to do with whether it works.
-
Testing a compiler whose target you cannot run
You can compare bytes against a fixture, but a fixture only proves the output has not changed. Here is how to find out whether it is right.
These went out together, and what follows them will not: a post here is written when something has been finished and is worth the argument, which is a few times a year rather than weekly. The feed is how to hear about the next one.