In 2013, on the "Greenkeys" teletype enthusiasts' list, the subject of how the letter 'O' (pronounced "Oh") and the numeral '0' (pronounced "zero") have been distinguished graphically in computer work arose. {Greenkeys 2013} The univeral convention at present in the computer programming and the telecommunications industries, when it is necessary to make an unambiguous distinction, is to put a slash through the numeral '0' (zero). However, there was a period of time when in certain segments of the computer industry the opposite convention prevailed: slash through the letter 'O' (Oh). Naturally, the presence of two opposite conventions to prevent ambiguity caused greater ambiguity.
When this topic came up, I thought that I might easily present a reference or two pinning down the source of this presumed earlier (slash-Oh) convention. While I protest that I am in fact too young to know this from personal experience, I did spend a career in the company of established mainframe computer folks, and they all simply knew that this had once been done. When I went online to track down a couple of examples, however, I found that this matter, while still widely referenced, had in fact disappeared into the mist.
You can easily search online and find dozens of sites which say something about this, but they are almost all simply quoting the same source. When I tracked this down, it turned out to be an entry in the March 2010 edition (4.2.1) of "The Jargon File" {Finkel 1975ff} which was written decades after the practice itself and which cites no evidence. It may be true, but it is neither a useful reference nor itself a reliable source. The other widely quoted source online is {Einarsson & Shokin 1996} While what they say may in part be true, their account cites neither firm dates, actual evidence, or other sources. It is also in part contradicted by other sources.
The English-language Wikipedia article on "Symbols for zero" http://en.wikipedia.org/wiki/Symbols_for-zero does a better job. In particular, it cites what may be the one study devoted specifically to this topic: Robert W. Bemer's 1967 article "Toward Standards for Handwritten Zero and Oh." {Bemer 1967} Still, it does not actually cite particular examples.
I then went to my own personal library, and was surprised to find nothing on this subject. My own library is not extensive, but I did at one time attempt to keep some material on a wide range of early machines (UNIVAC, IBM 1130, 1401, 1620, 7090, System/360, etc.) I could not find any example at all.
This is of course puzzling. So I have now started to gather together here those few examples known to me which document, explicitly, the use of the slash through the letter 'O' rather than through the numeral '0' in historical computer (and perhaps mathematical) use. If you have further actual examples that you would care to add, I'd be interested in including them as well. (I'd particularly like to see images of contemporary computer printouts, printer hardware (chains, wheels, balls), and authentic early handwritten coding sheets. I would also like to find an example of an actual set of programming guidelines which recommend this practice, as opposed simply to assertions in more general sources that such guidelines exist or once existed.)
I'll also include examples of forms close to this: the underlining of letter 'O', the use of a small "tick" in the upper right-hand corner of the letter 'O' and the use of a dot inside the letter 'O' (and also the use of a dot inside the numeral '0' to mean the same thing).
Note also that four kinds of uses need to be distingished:
It might easily be the case that a programmer could code using slash letter 'O' in handwritten coding sheets for computer systems with printers set up to use either the opposite system or no distinguishing marks at all on either.
Finally, when citing particular printers note that in most cases model numbers are not sufficient. Printers could be equipped with a variety of chains, balls, and wheels.
(And as a kind of a postscript: I'll refer to zero here as a number or numeral, which of course it is. But I am a typefounder by avocation, and to a typefounder it is a "figure." That doesn't matter here, but in the event that any of my typefounding friends should read this I wish to make it clear that I do know the terminology of my own field!)
The common modern response to learning that the letter 'O' rather than the numeral zero was once "slashed" is one of incredulity. It's almost impossible to imagine at present, because since the 1980s, at least, we've all been sitting in front of computers looking at pages of text.
But this is of course not the only way computers have been used. If you're doing primarily scientific or numerical programming, you'll see primarily numbers (obviously) with a few program keywords and identifiers thrown in. It makes sense in such an environment to put the visually disruptive slash on the less frequently used character: the letter, not the digit.
There are two interesting items in {Bemer 1967} which illustrate contemporary views on this which are quite at odds with the modern view. These are both examples of intelligent people in high-level technical positions expressing outrage that anyone would ever be dumb enough to slash the zero.
The first of these is a letter from H. McG. Ross of Ferranti, Ltd. (the English electronics and computer firm) to Bemer himself, dated 1962-03-28. Ross is advocating a distinctive but not-slashed letter 'O' (he favors a square-shaped letter 'O' for machine printing, a letter 'O' with a dot in the middle if handwritten, a an ordinary figure zero with no embellishments for machine printing, and if necessary a figure zero with a tick in the upper right-hand corner for hand lettering). What is interesting is not so much his proposed solution, but his emphatic rejection of the slash on the figure zero: "In reading printed documents, ... we feel that the full-length solidus through every zero looks ghastly." (p. 515).
The second is a letter from H. W. Nelson, Chairman of the SHARE Character Set Committee, to Ben Faden of North American Aviation. This letter was published in the "SHARE Secretary Distribution 154" of June 20, 1966. In it, Nelson takes issue with IBM's published "recommended practice" of slashing the zero, not the letter 'O'. He writes (as quoted by Bemer):
"IBM's procedure of slashing zeros is a 'recommended practice,' and not a standard. Furthermore, as far as I am concerned, it is applicable only internally to IBM. It, as such, should not become a de facto standard outside of that organization!
"I find it especially disconcerting to see slashed zeros in all the written examples in 'IBM System/360 Operating System FORTRAN IV(E) Programmer's Guide,' C28-6603-0. (It would have looked even more ridiculous if they had properly filled in columns 73-80 with sequencing information instead of leaving them blank.) This, I fear, will lead to a lot of unnecessary confusion in setting up job control cards. ... Frankly, using OS/360 will be tough enough without adding all these stumbling blocks besides. When is someone at IBM going to start obeying those 'THINK' signs they have hanging up all over?" (p. 517)
Clearly the idea that the zero should bear the slash is by no means a built-in intuition of the human brain.
To the best of my knowledge there is only one work which attempts a survey of actual sources. This is a 1967 article by Robert W. Bemer, "Toward Standards for Handwritten Zero and Oh" (which has the lovely subtitle "Much Ado About Nothing (and a Ltter), or A Partial Dossier on Distinguishing Between Handwritten Zero and Oh." {Bemer 1967} If you have an interest in this subject, it is necessary reading.
Bemer (in his article, quoting a letter that he wrote himself to H. McG. Ross of Ferranti, Ltd.) claims that "The usual mathematical convention is to place an additional mark or serif on any letter that might be confused with the digits." {Bemer 1967} This doesn't actually claim that mathematicians slashed the letter 'O', but it does suggest that it would be interesting to investigate traditional practices in mathematics in this regard.
I have not yet found any evidence that either convention was used in IBM card equipment in use before the computer era. Indeed, the evidence I have found indicates that they did not slash either character.
For instance, here is an example from the Reference Manual for the IBM Model 24 Card Punch and Model 26 Printing Card Punch {IBM 24/26 A24-0520-2} which shows a business form and the card which you might punch to record its information (as punched and printed on an IBM 26 Printing Card Punch). Neither the letter 'O' nor the numeral zero are slashed. (There is little need for a slash for either: you can just read the punches if you need to verify the character.) This keypunch was introduced in 1949.
(From {IBM 24/26 A24-0520-2}, p. 7. Public Domain.)
From the same source, here is the keyboard layout of the IBM 26 Printing Card Punch:
(From the same source, p. 37.)
An examination of photographs of IBM 26 keypunches confirms that the glyph on the key for the letter 'O' bears no slash.
Note: I have yet to actually see any physical or photographic evidence of the slashed letter 'O'. I would very much like to.
The evidence from {Bemer 1967} suggests strongly that the impetus to use a slashed letter 'O' came from the "SHARE" IBM mainframe users' group in the 1950s.
Bemer cites a letter that he wrote to Brian Pollard, Chairman of the ASA X3.1 committee, on 1960-11-04 in which he outlines the various options for differentiating the two characters and says: "the SHARE organizaiton (a group of users of IBM 704, 709/7090 equipment) uses the convention of a slash through the 'oh' for at least the handwritten symbol (while not a SHARE standard, many installations have their high-speed printers thus equipped.)" (p. 514)
Bemer also cites two slightly later, related sources. The first is 1954-06-14 report of the "SHARE PL/I Project" recommending the use of a slashed letter 'O' but noting that this "is in conflict with the IBM standard".
The second is an impassioned letter by H. W. Nelson {Nelson 1966} (from which I have quoted earlier)). In it he says: "I strongly support the recommendation of the PL/I Project that one should slash the letter 'O' and leave the number zero unchanged when they are handwritten. Numbers are handwritten much more frequently than letters on sheets to be keypunched and therefore letters, rather than numbers, should have extra lines to them to make them distinguishable. In our company we have been applying this rule of adding extra lines to letters with complete success for the past 15 years in preparing sheets for keypunching." He also notes that "if one is not especially careful, a slashed zero may look like a six or a nine to keypunch and verifier operators."
IBM Corporate System Practice, Document 2-8015 (dated December 1964 and quoted in a distribution by the SHARE users group {IBM 2-8015} in turn quoted in {Bemer 1967}, pp. 515-516) defines the IBM recommended practices. There are four groups of practices addressed:
First, OCR and MICR characters are excluded, as they are defined by separate standards.
Second, "It is the existing and preferred practice that, on devices such as printers and typewriters, the character shapes for zero and oh be sufficiently different and distinguishable. ... it is the preferred practice to provide a narrow zero and a wide oh."
Printers and Linotype operators will of course note that this is simply the way type has been all along.
Third, if this method "is not feasible for either handwriting or printing and a slash is used to make zero and oh distinguishable, the practice to be followed is:
Finally, as a fall-back, they say: "If neither of the methods [described above] is feasible and some line or mark is needed (as opposed to character shape stylization) to make the zero and oh distinguishable, the line or mark is added to the zero."
From the point of view of standards writing, this is admirably complete. The timeline was this: "Where any other practice is employed, transition to this practice is to be completed prior to December 1, 1965."
The Teletype model 33 could be equipped with a typewheel with a slashed letter 'O' for use as a computer terminal. {Greenkeys 2013}
There have been several other solutions to this problem. In the context of this discussion of the slashed letter 'O' the interesting question for each is whether they modify the letter or the numeral.
The method of using the FLOW-MATIC programming language on the UNIVAC I and II, and possibly the hardware of the Unityper II, employed a method of distinguishing the letter 'O' through the use of an underscore.
For background on FLOW-MATIC, see the 1957 brochure "introducing a new language for automatic programming," a scan of which is online at the Computer History Museum in Mountain View, CA at http://www.computerhistory.org/collections/catalog/102646140
The UNIVAC I and II had five distinct printing units:
The first four of these were built around modified typewriters (the UNIVAC was, after all, made by the Remington Rand Univac division of Sperry Rand, who had been making typewriters since 1873/4); the High-Speed Printer was not. Of these five, the ones of interest here are the Unityper II (the Verifier could be used as an equivalent, as well) and the High-Speed Printer.
(Aside: Remington Rand Univac division literature employed both the forms "UNIVAC" and "Univac"; I'll tend to use UNIVAC when referring to the entire system and, as they did in their literature, "Univac" when referring to components such as the "Univac Unityper II".)
Below left is a Unityper II; below right is a Univac High-Speed Printer:
(From {Univac FMP 1959}, pp. 5, 10. Scanned by me from my copy. Public Domain.)
The standard Univac I and II configuration did not have a keypunch (although there was a standalone card to tape converter). Rather, data entry was by Unityper direct to magnetic tape, with simultaneous type-written hardcopy.
The documentation that I have does not specify the glyphs used on the typebars of the Unityper II. The FLOW-MATIC Programming manual has examples of typed input (some of which I'll show below), but these examples have been edited for publication. Care should be taken, therefore, when extrapolating from them. (The example in the book of output from the High-Speed Printer, on the other hand, seems un-edited and reliable.)
The first item of interest is the "Data Design Form" used by the Unitypist (a person) to enter data into the machine. FLOW-MATIC may have been a symbolic programming language, but the data formats for it were still quite rigid. Here is an example of a blank, pre-printed FLOW-MATIC Data Design Form. If I understand the system correctly, the Unitypist would place this in the Unityper II and fill it in, simultaneously typing out the form and writing the data to magnetic tape. In this blank form, the underscore which distinguishes the letter 'O' is pre-printed on the form (probably by offset lithography).
(From {Univac FMP 1959}, p. 94. Scanned by me from my copy. Public Domain.)
Here is the same form filled in. If indeed what we are seeing here is a reproduction of an actual input form, then that would indicate that the Unityper II employed the underscored letter 'O'. (I presently believe that this is the case, but I have not yet verified this.)
(From {Univac FMP 1959}, p. 40. Scanned by me from my copy. Public Domain.)
In working through this example, the book says "After the FLOW-MATIC Code for the program has been written (Chapter 3), and the Data Designs have been filled in as described in this chapter and shown in FIgures 26 a through 26 l [these figures take the two-line "packets" of the Data Design Form shown above one at a time], the input tape for FLOW-MATIC compilation may be Unityped. Figure 27 shows a High-Speed Pritner copy of this information just as it appears, ready to compile the program for Sample Problem 1." (p. 45) Here is Figure 27:
(From {Univac FMP 1959}, p. 58. Scanned by me from my copy. Public Domain.)
So the Univac High-Speed Printer did not employ slashes for either the letter 'O' or the number zero.
There is one other example from this book which is both interesting and a bit puzzling. It is a section of sample instruction formats. As presented, it employs the underscored letter 'O'. This is interesting because the example of a FLOW-MATIC program given earlier in the book (p. 34) does not.
(From {Univac FMP 1959}, p. 87. Scanned by me from my copy. Public Domain.)
Note: The term "ticked" here is my own; it is not used in the literature. {Bemer 1967}, p. 514, calls it "a degenerate slash" or a "tail".
The example printouts in the book Programming the IBM 7090 by James A. Saxon show a letter 'O' with a tick in the upper right-hand corner and a numeral zero with no adornments. {Saxon 1963} Saxon does not specify the printer used or how it was equipped. The 716 line printer (a rotary type-wheel machine) was used with the 7090. It was also possible to transfer output to an IBM 1401 system for printing on its 1403 line printer (a print chain machine), but none of the Chain Arrangements shown in the IBM 1403 Printer Component Description have either ticked or slashed letter 'O' characters (which of course is no guarantee that there wasn't a chain out there which had them). {IBM 1403 GA24-3073-8}
Here is an example from p. 200:
(Note: This book is still in copyright. the images above are brief excerpts used here for critical purposes; this use falls, I believe, within the doctrine of "Fair Use"in US copyright law. They are not licensed under the same Creative Commons license as the rest of this Notebook.)
{Bemer 1967}, p. 514, quoting in turn a letter that he wrote to the chairman of ASA committee X3.1 on 1960-11-04, says "The printer for the IBM 7030 uses a dot interior to a fat 'oh'. This was chosen because it seemed impossible to reconcile the argument between slashing the 'oh' or the zero and because it seemed reasonable to make the less frequently printed character have the special marking."
There is a puzzle here. I didn't think that the IBM 7030 (the "Stretch" system) had its own printer. Rather, I thought that it used the IBM 1403 printer. But the 1403 Printer Component Description does not list a chain with a slashed 'O'. {IBM 1403 GA24-3073-8} Further research is in order.
{Bemer 1967}, p. 514, quoting in turn a letter that he wrote to the chairman of ASA committee X3.1 on 1960-11-04, cites a claim by Julius Agin of RCA that "their numeric scanning typeface was derived from a report of the US Army Ordinance Corps, TR-39, 15 January 1954, entitled 'Standardization of the 5 x 7 font'". This reference is not quite complete; it is actually {Rabinow}. For more on Jacob Rabinow (who had a fascinating career spanning many decades at the NBS/NIST, his own company, and Control Data Corporation), see the NIST Virtual Museum section on him at: http://museum.nist.gov/exhibits/rabinow/index.html
In any case, according to Agin, "The zero originally had a short vertical stroke in the center". This reference in Bemer is ambiguous - it isn't entirely clear that Agin is referring to the RCA font or Rabinow's. In either case, this would appear to be a very early use of something in the center of a numeric zero to distinguish it.
{Bemer 1967}, p. 514, quoting in turn a letter that he wrote to the chairman of ASA committee X3.1 on 1960-11-04, cites information from Julius Agin of RCA that their "numeric scanning typeface" (derived from the Rabinow / US Army Ordinance (1954) 5 x 7 font (q.v.)) "was modified to the two dot center to help differentiate it from the numerical 8 and thus further increase the distance between the ten digits for improved reliability in a numeric-only machine."
L. Richard Turner, in a letter to the editor of the Communications of the ACM in 1966 ( {Turner 1966}, as quoted in {Bemer 1967}) describes what can only be admired as an extraordinarily bold solution by the NASA Lewis Research Center: "The technique consists of translating the code for the letter 'O' to the code for the numeral '0' whenever it is encountered in the input character string." With suitable software support, and well-defined methods for handling retranslation back to letter 'O' when sorting is required, this neatly sidesteps the problem. Turner notes, however, that "this technique requires consistency of use".
{Bemer 1967} Bemer, R[obert] W. "Toward Standards for Handwritten Zero and Oh." Communications of the ACM. Vol. 10, No. 8 (August, 1967): 513-518.
This is an annotated bibliography of sources related to the question of distinguishing the numeral zero and the letter O in computer work. It is to the best of my present knowledge the only comprehensive, albeit brief, work on the subject. It is particularly valuable because it contains excerpts from documents not now generally available (such as certain SHARE user group publications) and correspondence which may never, otherwise, be available.
This article is available only by either locating an original printed copy of this number of the CACM or by purchasing a scan of it in PDF format from the ACM.
{Bright 1958} A communication by H. S. Bright "to the members of SHARE". {Bemer 1967}, p. 513, quotes this with a date of Sept. 11, 1958 and indicates that it also appeared in the Communications of the ACM, Vol. 2, [No. 5] (May 1959): 9. A check online of the contents of CACM indicates that this must have been in a letter to the editor.
{Cornog et. al. 1964} Cornog, D. Y., F. C. Rose, and J. L. Walkowicz. Legibility of Alphanumeric Characters and Other Symbols, I: A Permuted Title Index and Bibliography . Washington, DC: National Bureau of Standards, 1964. NBS Miscellaneous Publication 262-1, issued December 15, 1964.
This is online at https://archive.org/details/legibilityofalph00unit
{Einarsson & Shokin 1996} Einarsson, Bo and Yurij Shokin. Version 2.3 (1996). Fortran 90 for the Fortran 77 Programmer. http://www.nsc.liu.se/~boein/f77to90/f77to90.html
Appendix 7 of this tutorial discusses, among other things, the forms of the name for the FORTRAN programming language. They note that "A common hand written spelling in the 1960s was FØRTRAN. IBM recommended to put a slash / on the letter O in Fortran programs in order to distinguish it from the digit 0, but IBM recommended the opposite convention for Algol 60." [The second instance of "FØRTRAN" in the paragraph above should have a slashed letter 'Ø", represented here by Unicode U+00D8, which of course did not exist in the 1950s and 1960s.]
The problem with this is that it is insufficiently detailed. It does not cite any evidence or any source. Further, the IBM Corporate System Practice document 2-8015 ( {IBM 2-8015}, as cited in {Bemer 1967}, p. 515, indicates that by at least 1964 the official practice within that company was slash-zero, not slash-oh.
{Finkel 1975ff} Finkel, Raphael, et. al. The Jargon File. (This was produced in many editions; see the notes below.)
This is a glossary of computer terminology, begun in 1975 by Raphael Finkel and continued thereafter by many people. The English-language Wikipedia article on it gives a good overview of its history. .wikipedia.org/wiki/Jargon_file This document underwent two phases of maintenance: an original version from 1975 to 1983, and a new edition begun in 1990. Note that the earliest reference to the issue of slashed zero vs. oh appears in Version 4.2.1 (March 2000). It cannot be considered a primary source.
A 1981 version, transcribed from tape, is online at ftp://ftp.trailing-edge.com/pub/rsx11/freewarev2/rsx81b/374001/jargon.txt An archive of versions from around the early 1980s is maintained at on the site http://jargon-file.org/ The earliest versions seem to have been lost.
{Greenkeys 2013} The "Greenkeys" teletype enthusiasts' mailing list for November, 2013. http://mailman.qth.net/pipermail/greenkeys/2013-November/date.html
In a discussion under the thread title "The Model 33 ASR," several list members contributed various items of information.
Don Robert House, who began the thread, noted that in his days servicing the Teletype Model 33 ASR he had to change the typewheels in them (to typewheels with a slashed letter 'O') when they were used as computer terminals rather than telecommunications devices. ( 028306.html)
Ghris Elmquist noted that he had in his possession an "Anderson-Jacobson branded '33 ... that has a slashed-O type cylinder in it." ( 028327.html)
{IBM 2-8015} IBM Corp. IBM Corporate System Practice, document number 2-8015. In "SHARE Secretary Distribution 153" (Dec. 1964).
This is cited, with excerpts, in {Bemer 1967}, p. 515,
{IBM 24/26 A24-0520-2} IBM Corp. Reference Manual: IBM 24 Card Punch [and] IBM 26 Printing Card Punch. Document A24-0520-2. Endicott, NY: IBM Corp., 1964.
Available online at: http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/punchedCard/Keypunch/A24-0520-2_24-26_Keypunches.pdf
{IBM 1403 GA24-3073-8} IBM Corp. IBM 1403 Printer Component Description. GA24-3073-8. Endicott, NY: IBM Corp., 1972.
This is 9th edition, which is online together with IBM Technical Newsletter GN24-0672, April 15, 1974 (updating the printer chain section) at bitsavers: http://www.bitsavers.org/pdf/ibm/140x/GA24-3073-8_1403_printer.pdf
{Nelson 1966} [Letter by H. W. Nelson, Chairman of SHARE Character Set Committee, to Ben Faden, North American Aviation.] In "SHARE Secretary Distribution 154" (June 20, 1966).
This is cited, with excerpts, in {Bemer 1967}, p. 517,
{Rabinow 1954} Rabinow, J., Diamond Ordinance Fuze Labs., Washington, D.C. "Standardization of the 5 x 7 Font." DOFL Report No. TR-39, 15 January 1954, 8p.
This is cited incompletely by {Bemer 1967}, p. 514. A complete bibliographic citation appears in {Cornog et. al. 1964}, p. 67.
{Saxon 1963} Saxon, James A. Programming the IBM 7090: A Self-Instructional Programmed Manual. Englewood Cliffs, NJ: Prentice-Hall, Inc., 1963.
{Turner 1966} Turner, L. Richard. "On the Confusion between '0' and 'O'". [letter to the editor] Communications of the ACM, Vol. 9, No. 1 (January, 1966):35. Cited and excerpted in: {Bemer 1967}, p. 516.
{Univac FMP 1959} Remington Rand Univac division of Sperry Rand Corp. FLOW-MATIC Programming for the UNIVAC I and II Data Automation Systems. (Second Edition) Sperry Rand Corp., 1959.
The first edition was 1958, and I am taking that as the date for this convention in FLOW-MATIC.
The following item(s) are still in copyright: Saxon. Programming the IBM 7090 The images from them used here are brief excerpts used for critical purposes which fall, I believe, within the doctrine of "Fair Use"in US copyright law. They are not licensed under the same Creative Commons license as the rest of this Notebook.
The following items are in the public domain due to failure to renew copyright, as then required: FLOW-MATIC Programming (1959) Reference Manual: IBM 24 Card Punch [and] IBM 26 Printing Card Punch (1964). The scans from them as done either by DMM or bitsavers and reprinted here remain in the public domain.
All portions of this document not noted otherwise are Copyright © 2013 by David M. MacMillan and Rollande Krandall.
Circuitous Root is a Registered Trademark of David M. MacMillan and Rollande Krandall.
This work is licensed under the Creative Commons "Attribution - ShareAlike" license. See http://creativecommons.org/licenses/by-sa/3.0/ for its terms.
Presented originally by Circuitous Root®
Select Resolution: 0 [other resolutions temporarily disabled due to lack of disk space]