Podemos obter uma citação real antes da referência de Hugo em 1963? Sim. John McCarthy usou a palavra "string" em Funções recursivas de expressões simbólicas e sua computação por máquina, Parte I , de abril de 1960.
For atomic symbols, we shall use strings of capital Latin letters and digits…
mas mais útil para essa pergunta, uma referência a uma string como um tipo de dados:
Any string of admitted characters [is] an L-expression.
Isso não é um ótimo exemplo. Ao dizer "uma série de caracteres", McCarthy não está usando "string" no sentido especializado dos programadores hoje em dia. Você pode facilmente dizer "uma string" para um programador Java e eles saberão que a parte "of characters" está implícita: o uso de McCarthy não demonstra esse recurso. Vamos tentar voltar aos anos 1950, para ver se McCarthy estava jogando pelo seguro ou se o termo realmente não existia. O LISP provavelmente não ajudará muito aqui, já que é baseado em um cálculo matemático, então as funções de string de McCarthy podem ter sido a primeira aplicação da idéia ao processamento de strings.
Um importante sistema de processamento de seqüências de caracteres da década de 1960 foi o SNOBOL, uma linguagem de manipulação de seqüências de 1964. Isso cita o artigo de McCarthy acima, mas também discute COMIT e SCL. O trabalho que eles citam no SCL é inédito: um infeliz beco sem saída.
O COMIT é mais fácil de rastrear. A Arte da Programação de Computadores (Volume 1, terceira edição, p.461) nos diz que V. H. Yngve escreveu um artigo de 1963 sobre o CACM. Mas eu estou procurando o primeiro uso de "string", então eu farei uma pesquisa de autor para publicações anteriores.
O primeiro que posso encontrar é Uma Linguagem de Programação para Tradução Mecânica , de julho de 1958. Isso contém apenas um uso da palavra "string":
Novamente, esse uso é como o de McCarthy: isso não é evidência de que a "string" seja usada em seu sentido atual. Observando detalhadamente o documento, vemos que a estrutura de dados é uma "linha" em um cartão (permitindo continuações para "linhas" mais longas).Each continuous string of letters between punctuation marks or spaces is looked up in the dictionary.
OK, vamos avançar na história do COMIT e ver o que podemos obter. A primeira referência útil é O sistema COMIT para tradução mecânica , dos procedimentos de uma conferência de junho de 1959.
If we want to replace D SIN(F) by COS(F) D (F), where F is unrestricted and may be any arbitrary sequence of constituents, we use the notation $ to stand for this string.
Isso parece mais com a maneira como o usamos hoje: "string" é o único que, como bônus, tem um símbolo especial reconhecível: o cifrão ainda é usado em alguns tipos de BASIC para significar uma variável de string.
A partir desse momento, a palavra "string" também aparece várias vezes em Uma linguagem de comando para manipular cadeias de símbolos por Perlis e Smith dos Procedimentos do ACM '58 e uma vez em O Sistema Share 709: Implementação de Máquina de Programação Simbólica pela Boehm e Steel.
Pesquisando a biblioteca digital ACM por 'string' no início dos anos 1960 produz 62 resultados, incluindo títulos como "Manipulação de strings em ALGOL", "Manipulação de strings na nova linguagem" e "Uma técnica de armazenamento de tipo lista para informações alfanuméricas" . Parece que a ideia se tornou entrincheirada até então.
Eu diria que "string" em seu senso jargão de ciência da computação como uma lista ordenada de personagens se tornou comum ao longo de um par de anos por volta de 1960. Antes disso, autores como Yngwe e McCarthy poderiam dizer "seqüência de caracteres" e ter certeza que eles foram entendidos, mas não podiam usar "string" como uma palavra simples no sentido em que é usado hoje.A taquigrafia foi provavelmente introduzida no mainstream da computação pelo artigo de Perlis e Smith. Não tem sido amplamente citado, mas uma citação importante é Aumentos sintáticos e semânticos para o ALGOL de Joseph W Smith em abril de 1960 (na mesma edição do CACM como a descrição de LISP de McCarthy). Daquele papel:
The purpose of this paper is to propose a set of syntactic and semantic augments to ALGOL. The proposed extensions are designed to facilitate the description of "string" manipulation in that language; they do not constitute a comprehensive language for symbol manipulation.
Para mim, isso constitui evidência de "string" significando um tipo de dados para computação simbólica sendo afirmado no léxico acadêmico e introduzido de forma importante nas ferramentas usadas para computação comercial.
A propósito, Linguagens de Programação: História e Futuro por Jean Sammet (1972) sugere que o COMIT e o SNOBOL foram os progenitores da manipulação de strings, por isso estou bastante confiante de que não haverá exemplos anteriores.