In computer software development, I have always read ‘#’ as ‘hash’, but I had a faint recollection that some early books didn’t call it that. I have a fairly extensive (and very eclectic) shelf of computer books behind me in the office, so I decided to do some digging.
The earliest reference I could find is in ‘Software Tools’ by Brian W Kernighan and P J Plauger (Addison-Wesley, 1976). The book defines the Ratfor programming language (a Fortran derivative), which uses # as a comment delimiter. The book call it the ‘sharp sign’: “In Ratfor, a sharp sign # anywhere on a line signals the beginning of a comment...”
(Incidentally Ratfor uses the ¬ symbol to represent a boolean NOT operator. I vaguely recall that PL/1 does the same, but it’s not a language I’ve ever needed to use.)
The next most obvious language to look at was C, which uses # as the initial character in preprocessor directives (an important part of the language’s design). The book that introduced C was “The C Programming Language” by Brian W Kernighan and Dennis M Ritchie (Prentice-Hall, 1978). Ingeniously, the book doesn’t call # anything at all. When it has to be mentioned, it just appears as a literal character: “Lines beginning with # communicate with the preprocessor.” The first occurrence in the books is even less explicit: “With the #define construction, at the beginning of a program you can define a symbolic name or symbolic constant...” All C users that I know pronounce #define as ‘hash-define’, but the original authoritative book offers no such guidance!
The next most obvious source to look at was “C: A Reference Manual” by Samuel P Harbison and Guy L Steele Jr (Prentice-Hall, 1984), which is probably the second most seminal book on C. # is named in a section defining the character set needed for C programs, where it is names as ‘number sign’. Everywhere else, it appears literally in text in the same manner as in Kernighan and Ritchie, but is never named.
An interesting rummage through computer history, but not as informative as I hoped it might be!
