Amusing! I played archeologist and found the 0b
notation appearing in Caml Light version 0.5, released in September 1992: http://caml.inria.fr/pub/distrib/Oldies/cl5unix.tar.Z, file src/compiler/lexer.mll.
I’m probably the one who introduced this notation in Caml. I can’t remember it took much thinking. I do remember rejecting the 0
NNNN notation for octal numbers in C as incomprehensible and a thing from the past. But once you’re committed on 0x
for hexadecimal numbers, 0o
for octal and 0b
for binary follow quite naturally.
As mentioned on the Twitter feed, I may have been influenced by assembly languages that provide a syntax for binary integer literals, even though this syntax is not 0b
NNNNN. Indeed, I see that Microsoft’s MASM uses NNNNB
, and the x86 assembler I wrote back in 1985 used %
NNNNN.