84

I have never thought about until recently, but I'm not sure why we call strings strings. I am a .NET programmer, but I believe the concept of strings exist in virtually every programming language.

Outside of programming, I don't believe I've heard the word string used to describe words or letters. A quick Google of, 'Define: string' yields a bunch of definitions that have nothing to do with the concept of letters, words, or anything of the nature associated to programming.

My guess of it, is that, back in the day, strings were really just arrays of characters of a particular length, often with a delimiting character at the end. But, I don't see a natural transition from 'character array' to string.

Can someone offer up some insight to why we call strings strings?

Robert MacLean
  • 38,975
  • 25
  • 98
  • 152
Rob P.
  • 14,921
  • 14
  • 73
  • 109
  • 22
    In addition I've wondered about why they chose to use $ to define strings in older versions of BASIC. Maybe just because it looks like the letter S. Once while chatting in an FPS game I said, "What's up G string?" to a player with the name "G$" and he got kinda mad about it. He said the correct way to say it was "G Money." Luckily there were a couple other programmers in the house who did get it. – Bratch May 19 '09 at 00:14
  • 3
    For that matter, most of our programmer lingo has been shamelessly stolen from things which had some passing abstract resemblance to whatever we gave the name to. – Camilo Martin Dec 29 '13 at 22:04
  • 1
    Similar question on Programmers.SE: http://softwareengineering.stackexchange.com/questions/43329/etymology-of-string – Kevin Nov 23 '16 at 19:49

9 Answers9

40

My assumption has always been that the programming term originated from the following definition of the word "string" (from Merriam-Webster):

(1): a series of things arranged in or as if in a line <a string of cars> <a string of names>

(2): a sequence of like items (as bits, characters, or words)

Since a string in programming is simply an ordered sequence of characters, referring to this as a "string of characters" (or simply "string") seems like the most probable origin.

Stephan202
  • 59,965
  • 13
  • 127
  • 133
Cloudy
  • 2,401
  • 25
  • 28
35

From this reference:

The 1971 OED (p. 3097) quotes an 1891 Century Dictionary on a source in the Milwaukee Sentinel of 11 Jan. 1898 (section 3, p. 1) to the effect that this is a compositor's term. Printers would paste up the text that they had generated in a long strip of characters. (Presumably, they were paid by the foot, not by the word!) The quote says that it was not unusual for compositors to create more than 1500 (characters?) per hour.

Light93
  • 952
  • 1
  • 8
  • 18
Paul Sonier
  • 38,903
  • 3
  • 77
  • 117
  • 9
    If this is accurate, then it sounds likely to be the answer. We take many such terms from the world of printing, e.g., "font" being the bowl from which individual pieces of lead type were pulled to fill in the "string". "Font" referred to its similarity to a baptismal font (fountain). – John Saunders May 18 '09 at 23:55
  • 2
    I don't think there was much influence from printing in early computing. Fonts and such came later with graphical displays and dot matrix printers. – starblue Feb 06 '10 at 13:26
14

From searching through the ACM bibliography it seems the word string acquired its meaning in computer science during the 1960s. At the beginning a string is a general kind of sequence or list, e.g. A command language for handling strings of symbols from 1958.

This article explicitly mentions "character strings" in 1964.

Unfortunately I can't access the full texts, which are behind a toll booth.

starblue
  • 55,348
  • 14
  • 97
  • 151
12

I had guessed that "string" was in use by mathematicians long before its adoption in programming languages. Turing machines effectively operate on strings. Turing may not have used the term, but it is used everywhere in automata textbooks, going back decades.

The earliest reference I could find was a fragment in Google books of a 1944 article "Recursively enumerable sets of positive integers and their decision problems" by logician Emil Post in Bulletin of the AMS. Fortunately, AMS provides online archives of complete articles free for download. Here is a link: http://www.ams.org/journals/bull/1944-50-05/S0002-9904-1944-08111-1/S0002-9904-1944-08111-1.pdf

I think there is little doubt that he is using "string" in the conventional sense used in computer science. P. 286 "For working purposes, we in- troduce the letter b, and consider "strings" of 1's and b's such as 11b1bb1. An operation on such strings such as "b1bP produces P1bb1" we term a normal operation. This particular normal operation is ap- plicable only to strings starting with b1b, and the derived string is then obtained from the given string by first removing the initial b1b, and then tacking on 1bb1 at the end. Thus b1bb becomes b1bb1."

Community
  • 1
  • 1
Paul Callahan
  • 121
  • 1
  • 2
7

The earliest reference I could find in computing is from March 1963's METEOR: A LISP Interpreter for String Transformations by Daniel G. Bobrow at MIT's AI Labs.

However, definition 15d. in the Oxford English Dictionary is:

Computing A linear sequence of records or data.

... and with a first quotation from a 1956 Journal of the Association for Computing Machinery:

Areas are set aside for shuttling strings of control fields back and forth until a completely sorted sequence is obtained.

This use naturally follows on from definition 15c.:

Math., etc. A sequence of symbols or linguistic elements in a definite order.

... and first used in Clarence Irving Lewis and Cooper Harold Langford's Symbolic Logic (1932):

Propositions are not strings of marks, or series of sounds, except incidentally.

This in turn follows on from many other, much earlier definitions for things in a line.

Hugo
  • 27,885
  • 8
  • 82
  • 98
7

I suspect it's because string originally meant just a sequence of data values: "I'll just string these together" etc. These values didn't have to be characters. One very common use for this general concept happened to be a sequence of characters, and this took over as the general meaning of the word.

Jon Skeet
  • 1,421,763
  • 867
  • 9,128
  • 9,194
  • So people called arrays, "strings"? Makes me think about how some languages still use strings for binary data: PHP still does and Javascript once may have done (due to lack of typed arrays). – Camilo Martin Dec 29 '13 at 22:07
3

The word was originally used to differentiate between a set of values to which the particular order of elements doesn't matter (for instance, a set of random samples of measurements) and another that could only have its meaning preserved when the order is also preserved. Originally a string could be a set of any kind of values, but since in the post-mainframe era a string of characters is by far the most common kind, the fact that the values are characters became a "default".

Fabio Ceconello
  • 15,819
  • 5
  • 38
  • 51
  • I think this, and @jonskeet's reference to sequence definitely mean ordered, like arrays and vectors. But definitely the presence of ordering (and thus a "final" terminator confirming the difference between beginning and end). – Dean Radcliffe Nov 05 '19 at 21:44
1

A string is a sequence of discrete objects (usually char).

Given that, I would probably venture a guess that it may have to do with a metaphor related to "string of pearls". Each bead on the string is a single character.

bobobobo
  • 64,917
  • 62
  • 258
  • 363
-2

It's called a strings, because it's actually an array of char type elements.

That being said, they are "stringing together" (or is it strung together) via this array, which turns them into a "string".

Soviut
  • 88,194
  • 49
  • 192
  • 260
KdgDev
  • 14,299
  • 46
  • 120
  • 156