История, стоящая за определением «струны»

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

Вне программирования, я не думаю, что слышал слово string, используемое для описания слов или букв. Краткий Google «Define: string» дает набор определений, которые не имеют ничего общего с концепцией букв, слов или чего-либо такого, что связано с программированием.

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

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

64 голоса | спросил Rob P. 19 Mayam09 2009, 02:54:56

10 ответов


0

Из этой ссылки :

  

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

ответил Paul Sonier 19 Mayam09 2009, 03:02:14
0

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

  

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

     

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

Поскольку строка в программировании - это просто упорядоченная последовательность символов, упоминание ее как «строки символов» (или просто «строки») представляется наиболее вероятным источником.

ответил CloudyMusic 19 Mayam09 2009, 02:59:21
0

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

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

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

ответил starblue 19 Mayam09 2009, 11:31:21
0

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

Самой ранней ссылкой, которую я смог найти, был фрагмент в книгах 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" мы называем нормальную работу. Эта конкретная нормальная операция применимо только к строкам, начинающимся с b1b, а производная строка затем получается из заданной строки, сначала удаляя начальный b1b, а затем добавив 1bb1 в конце. Таким образом, b1bb становится b1bb1. "

ответил Paul Callahan 22 J0000006Europe/Moscow 2011, 04:12:14
0

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

ответил Jon Skeet 19 Mayam09 2009, 03:00:05
0

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

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

  

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

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

  

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

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

  

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

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

  

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

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

ответил Hugo 31 Mayam11 2011, 00:07:23
0

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

ответил Fabio Ceconello 19 Mayam09 2009, 03:18:31
0

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

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

http://web.eecs.umich.edu/~ bchandra /курсы /документы /Naure_Algol60.pdf

ответил Lior 7 42013vEurope/Moscow11bEurope/MoscowThu, 07 Nov 2013 15:56:11 +0400 2013, 15:56:11
0

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

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

ответил bobobobo 26 J000000Saturday14 2014, 06:10:52
0

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

При этом они «связывают вместе» (или связывают) через этот массив, который превращает их в «строку».

ответил KdgDev 19 Mayam09 2009, 02:58:37

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132