Подтвердить что ты не робот

История за названием "String"

Я никогда не думал об этом до недавнего времени, но я не уверен, почему мы вызываем строки strings. Я программист .NET, но я считаю, что концепция строк существует практически на всех языках программирования.

Вне программирования я не верю, что слышал слово string, используемое для описания слов или букв. Быстрый Google из "Определить: строка" дает множество определений, которые не имеют никакого отношения к понятию букв, слов или чего-либо, связанного с программированием.

Я предполагаю, что в этот день строки были действительно просто массивами персонажей определенной длины, часто с разделительным символом в конце. Но я не вижу естественного перехода от "массива символов" к string.

Может ли кто-нибудь дать понять, почему мы вызываем строки strings?

4b9b3361

Ответ 1

От эта ссылка:

1971 OED (стр. 3097) цитирует 1891 Слова века по источнику в Страж Милуоки от 11 января 1898 года (раздел 3, стр. 1) о том, что это термин композитора. Принтеры будет вставлять текст, который у них был генерируется в длинной полосе персонажи. (Предположительно, они были заплачено ногами, а не словом!) В цитате сказано, что это было необычно для композиторов создавать больше, чем 1500 (символов?) В час.

Ответ 2

Мое предположение всегда заключалось в том, что термин программирования возник из следующего определения слова "строка" (из Merriam-Webster):

(1): ряд вещей, расположенных в или как если бы в строке < строка автомобилей > < строка имен >

(2): последовательность похожих элементов (в виде битов, символов или слов)

Поскольку строка в программировании представляет собой просто упорядоченную последовательность символов, ссылаясь на нее как на "строку символов" (или просто на "строку" ), похоже на наиболее вероятное происхождение.

Ответ 3

Из поиска в библиографии ACM кажется, что словосочетание приобрело значение в информатике в 1960-х годах. В начале строка представляет собой общий вид последовательности или списка, например. Командный язык для обработки строк символов от 1958 года.

В этой статье явно упоминаются "символьные строки" в 1964 году.

К сожалению, я не могу получить доступ к полным текстам, которые находятся за платной кабиной.

Ответ 4

Я подозреваю это, потому что string изначально означал просто последовательность значений данных: "Я просто объединю их вместе" и т.д. Эти значения не обязательно должны быть символами. Одним из самых распространенных применений для этой общей концепции была последовательность символов, и это взяло верх в качестве общего значения слова.

Ответ 5

Я догадался, что "строка" использовалась математиками задолго до ее принятия на языках программирования. Машины Тьюринга эффективно работают на струнах. Тьюринг, возможно, не использовал этот термин, но он используется повсеместно в учебниках автоматов, начиная десятилетиями.

Самая ранняя ссылка, которую я смог найти, - это фрагмент в книгах Google статьи 1944 года "Рекурсивно перечислимые множества положительных целых чисел и проблемы их решения" логика Эмиля Поста в Бюллетене AMS. К счастью, AMS предоставляет онлайн-архивы полных статей бесплатно для скачивания. Вот ссылка: http://www.ams.org/journals/bull/1944-50-05/S0002-9904-1944-08111-1/S0002-9904-1944-08111-1.pdf

Я думаю, что нет никаких сомнений в том, что он использует "строку" в обычном смысле, используемом в информатике. P. 286 "Для рабочих целей, ввести букву b и рассмотреть "строки" 1 и b, такие как 11b1bb1. Операция на таких строках, как "b1bP, производит P1bb1" мы называем нормальную операцию. Эта конкретная нормальная операция является ap- только для строк, начинающихся с b1b, а производная строка - затем получается из данной строки, сначала удаляя исходный b1b, а затем наложения на 1bb1 в конце. Таким образом, b1bb становится b1bb1. "

Ответ 6

Самая ранняя ссылка, которую я мог найти в вычислениях, - с марта 1963 года METEOR: A LISP Интерпретатор для строковых преобразований Даниэля Г. Боброва MIT AI Labs.

Однако определение 15d. в Оксфордском английском словаре:

Вычисление Линейная последовательность записей или данных.

... и с первой цитатой из Журнала Ассоциации вычислительной техники 1956 года:

Районы зарезервированы для перемещения строк полей управления вперед и назад, пока не будет получена полностью отсортированная последовательность.

Это использование, естественно, следует из определения 15c.:

Math. и т.д. Последовательность символов или лингвистических элементов в определенном порядке.

... и впервые используется в Кларенсе Ирвинге Льюисе и Символной логике Купера Гарольда Лангфорда (1932):

Предложения не являются строками меток или серией звуков, кроме случайного.

Это, в свою очередь, следует из многих других, гораздо более ранних определений для вещей в строке.

Ответ 7

Слово первоначально использовалось для различения набора значений, к которым не имеет значения конкретный порядок элементов (например, набор случайных выборок измерений), а другой, который мог бы иметь только свой смысл, когда порядок также сохраняется. Первоначально строка могла быть набором любых значений, но поскольку в эпоху пост-мэйнфрейма строка символов является наиболее распространенным видом, тот факт, что значения являются символами, стал "стандартным".

Ответ 8

В разговоре о истории Javascript Дуглас Крокфорд говорит "Никто не знает" и дает несколько альтернатив: http://www.youtube.com/watch?v=RO1Wnu-xKoY#t=2989

Я нашел отчет, в котором, как утверждается, есть первая ссылка в истории компьютеров на ряд символов как "строка". Я думаю, что это в верхнем правом столбце страницы 4 pdf, который пронумерован 47:

http://web.eecs.umich.edu/~bchandra/courses/papers/Naure_Algol60.pdf

Ответ 9

Строка представляет собой последовательность дискретных объектов (обычно char).

Учитывая это, я, вероятно, рискну предположить, что это может быть связано с метафорой, связанной с "цепочкой жемчуга". Каждый бит в строке является единственным символом.

Ответ 10

Он называется строками, потому что на самом деле это массив элементов типа char.

Сказав это, они "стягиваются вместе" (или спрятаны вместе) через этот массив, что превращает их в "строку".