Это редакционная статья бюллетеня PHP SitePoint от 25 июля.
Почему строка называется строкой? Вы когда-нибудь задумывались об этом? Мы никогда не используем такое слово в других контекстах, кроме программирования, для набора слипающихся букв, и все же — в программировании оно столь же распространено, как и слово «переменная». Почему это и откуда оно?
Чтобы выяснить это, мы должны сначала решить некоторые связанные термины. Время урока истории!
Слово шрифт происходит от французского шрифта — что-то, что было расплавлено; кастинг. Учитывая, что буквы для печатных машин были буквально сделаны из металла и выплавлялись на литейных заводах , это имеет смысл.
Термины, прописные и строчные, относятся к буквальной части регистра, в котором был перенесен шрифт. Таким образом, у принтера (человека) был тяжелый футляр, который он тащил или установил на печатном станке, и в этом случае были два «уровня» — верхний регистр и нижний регистр. Верхний регистр содержит только — как вы уже догадались — верхние буквы, в то время как нижний регистр содержит только строчные.
Вы заметите, что строчных букв было больше, чем заглавных. Этого и следовало ожидать — буква может использоваться только один раз на одной странице, и в конце концов, текст в письменном виде будет иметь гораздо больше строчных букв, чем прописных, поскольку еще не было такого понятия, как комментарии Youtube и CAPS LOCK.
Так как все это относится к строкам?
Что ж, поскольку печать стала более распространенной и печатные машины стали предлагать свои услуги отдельным лицам, а не только газетам и издателям, говорят, что они решили взимать плату в зависимости от длины печатного материала — длины в футах. Конечно, многое из этого является спекулятивным, но если бы они связали воедино произведенный печатный материал, они могли бы легко оценить затраты и выставить счет покупателям. Таким образом, мы можем с достаточной степенью уверенности заключить, что они использовали слово string в этом контексте как последовательность символов.
Редактирование, 26 июля 2017: Как указано в комментариях ниже, кажется, что использовалась фактическая строка, чтобы связать блоки символов во время их транспортировки в прессу после сборки! Последователь Твиттера даже прислал мне следующее видео, демонстрирующее процесс!
Тем не менее, как это относится к области программирования? Я имею в виду, что вы можете сказать что- нибудь о чем-либо, и это будет иметь определенный смысл в мире непрограммирования. Это просто слово, которое можно довольно легко применить к вещам, хотя обычно это не так.
Что если мы посмотрим на научные круги для первых ссылок?
В рекурсивно перечисляемых наборах целых положительных чисел 1944 года и их проблемах решения у нас есть упоминание, которое может неопределенно напоминать современное определение:
Для рабочих целей введем букву 6 и рассмотрим «строки» из 1 и b, например 11b1bb1.
В этой статье термин относится к последовательности идентичных символов, поэтому строка из 1 или строка из b. Не совсем наше определение, но это начало.
Затем, спустя 14 лет, в 1958 году в «Языке программирования для механического перевода» , слово используется так и только один раз:
Каждая непрерывная строка букв между знаками препинания или пробелами ищется в словаре.
Хорошо, kiiiind похоже на наше представление о строках, но кажется, что он просто описывает, ну, слова . Очевидно, что это не может применяться — это слишком общий характер. По какой-то причине, кажется, застрял.
В 1958 году в «Командном языке для обработки строк символов» слово string использовалось точно так же, как мы используем его сегодня, хотя и не определено как таковое.
Мы находим еще одну ссылку в 1959 году, система COMIT для механического перевода :
Если мы хотим заменить D SIN (F) на COS (F) D (F), где F неограниченно и может быть любой произвольной последовательностью составляющих, мы используем обозначение $ для обозначения этой строки.
Интересный! Вот знак доллара, который мы все знаем по PHP, и который на самом деле был (есть?) Символом строки в Бейсике.
Опять же, в 1959 году мы получили более прямое определение в системе Share 709: машинная реализация символьного программирования.
:
Текст представляет собой линейно упорядоченную строку битов, представляющую остальную информацию, требуемую в процессах загрузки и вывода списка.
Фактически, именно через Алгол в апреле 1960 года строка, кажется, приняла свою современную сокращенную форму «строка» (до тех пор люди говорили « строка чего-то» ). Смотрите реферат этой статьи .
Наконец, в мае 1960 г. в отчете об алгоритмическом языке Алгол 60 упоминается об этом в форме, поразившей дом.
Оттуда он просто взлетает, как современный дневной мем.
В 1963 году METEOR: интерпретатор LISP для строковых преобразований идет с довольно неопределенным «[…], но некоторые простые преобразования линейных списков (строк) неудобно определять в этой записи».
В 1964 г. при объявлении произвольно закодированных алфавитов упоминаются «строки символов».
Поиск ACM обнаруживает кучу других ресурсов в 60-х годах и позже, которые все теперь используют термин регулярно, поэтому кажется, что 60-е годы были катализатором в эволюции термина и сделали его таким, какой он есть сегодня, медленно, благодаря потребностям систем, которые он использует. Я обнаружил, что оказался в некотором роде. Довольно забавно, что в конечном итоге он представлял собой концепцию, аналогичную той, что была в дни печатной прессы, — набор символов, который имеет значение и влечет за собой некоторые расходы (только на этот раз, в памяти).
В качестве дополнительного примечания — рассмотрим все эти документы более 60 лет назад. 60 лет назад у них были проблемы информатики, которые они решали на перфокартах и писали в академических работах. И вот мы в 2017 году с фреймворками JavaScript 2017 года, сражаясь за то, кто может заниматься с кем сексом в сообществе Drupal, и пытаясь переопределить слово Facade снова и снова. В то время как мы спорим о ракетной науке «вещи идут в коробку, вещи выходят из коробки», которая является современной веб-разработкой, эти люди сформировали весь мир, переведя аналоговую среду, в которой оказались, в цифровую форму, по сути обмануть немного песка в запоминание чисел.
Вывод
Итак, теперь мы знаем — или, по крайней мере, думаем, что знаем — откуда взялась строка . Информатика всегда была темным пространством загадок и медленной эволюции, и точно так же, как мы теперь знаем, что человеческий глаз имел полушагы и полуглазы в своем прошлом, так же как и термины в информатике развивались в прошлом и вокруг их первоначального смысл, пока они не дали нам то, что мы имеем сегодня. В 1960-х годах в разных местах одновременно родилась одна и та же концепция с одним и тем же именем, пока она не превратилась в единый термин, который мы все понимаем и используем сегодня, и, самое главное, можем договориться.
Когда вы думаете об этом, было ли лучшее слово, которое мы могли бы использовать? Хотя строка вряд ли выглядит естественной из-за полного отрыва от аналогичного термина в «реальном мире» (мы не называем слова на странице книги «строками»), я не могу придумать ни одного термина, который бы подходил этому популярному типу данных лучше. Ты можешь? Дай мне знать.