Possiamo ottenere una citazione reale prima del riferimento di Hugo del 1963? Sì. John McCarthy ha usato la parola "stringa" in Funzioni ricorsive di espressioni simboliche e il loro calcolo per macchina, Parte I , dall'aprile 1960.
For atomic symbols, we shall use strings of capital Latin letters and digits…
ma più utile per questa domanda, un riferimento a una stringa come un tipo di dati:
Any string of admitted characters [is] an L-expression.
Questo non è un grande esempio. Dicendo "una serie di personaggi", McCarthy non sta usando "stringa" nei programmatori di senso specializzati, significa oggi. Puoi facilmente dire "una stringa" a un programmatore Java e sapranno che la parte "dei personaggi" è implicita: l'uso di McCarthy non dimostra questa caratteristica. Proviamo a respingere gli anni '50, per vedere se McCarthy stesse giocando sul sicuro o se il termine non esistesse realmente. Probabilmente LISP non aiuterà molto qui, poiché si basa su un calcolo matematico, quindi le funzioni di stringa di McCarthy potrebbero essere state la prima applicazione dell'idea all'elaborazione delle stringhe.
Un importante sistema di elaborazione delle stringhe degli anni '60 era SNOBOL, A String Manipulation Language . Questo cita il documento di McCarthy sopra, ma parla anche di COMIT e SCL. Il lavoro che citano su SCL è inedito: uno sfortunato punto morto.
COMIT è più facile da rintracciare. The Art of Computer Programming (Volume 1, terza edizione, p.461) ci dice che V. H. Yngve scrisse un articolo CACM del 1963 su di esso. Ma sto cercando l'uso meno recente di "string", quindi cercherò un autore di cercare pubblicazioni precedenti.
Il primo che riesco a trovare è Un linguaggio di programmazione per la traduzione meccanica , a partire dal luglio 1958. Questo contiene solo un uso della parola "stringa":
Each continuous string of letters between punctuation marks or spaces is looked up in the dictionary.
Ancora una volta, questo uso è simile a quello di McCarthy: questa non è una prova del fatto che "stringa" venga utilizzata nel suo senso attuale. Osservando la carta in dettaglio, vediamo che la struttura dei dati è una "linea" su una carta (che consente continuazioni per "linee" più lunghe).
OK, passeremo alla storia di COMIT e vedremo cosa possiamo ottenere. Il primo riferimento utile è Il sistema COMIT per la traduzione meccanica , dagli atti di una conferenza del giugno 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.
Questo sembra più simile al modo in cui lo usiamo oggi: "string" sta da solo e come bonus ha un simbolo speciale riconoscibile: il simbolo del dollaro è ancora usato in alcuni sapori BASIC per indicare una variabile stringa.
Da questo momento, la parola "stringa" appare anche molte volte in Un linguaggio di comando per la gestione delle stringhe di simboli di Perlis e Smith da ACM '58 Proceedings e una volta in Il sistema Condividi 709: Implementazione macchina della programmazione simbolica di Boehm and Steel.
La ricerca della libreria digitale ACM per 'string' nei primi anni '60 produce 62 risultati, inclusi titoli come "Gestione stringhe in ALGOL", "Manipolazione stringhe nella nuova lingua" e "Una tecnica di memorizzazione di tipo elenco per informazioni alfanumeriche" . Sembra che l'idea si sia ormai radicata.
Direi che "string" nel suo gergo informatico come una lista ordinata di personaggi divenne comune nell'arco di un paio d'anni intorno al 1960. Prima di allora, autori come Yngwe e McCarthy potevano dire "stringa di caratteri" ed essere sicuri che erano capiti, ma non potevano usare "stringa" come una parola nuda nel senso in cui è usata oggi.
La stenografia probabilmente è stata introdotta nel mainstream dell'informatica dal documento Perlis e Smith. Non è stato ampiamente citato, ma una citazione importante è aumenti sintattici e semantici in ALGOL di Joseph W Smith nell'aprile 1960 (nello stesso numero di CACM come descrizione di McCarthy di LISP). Da quel foglio:
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.
Per me, ciò costituisce una prova di "stringa" che indica un tipo di dati per il calcolo simbolico affermati nel lessico accademico, e importanti strumenti introdotti per il calcolo commerciale.
Per inciso, Linguaggi di programmazione: storia e futuro di Jean Sammet (1972) suggerisce che COMIT e SNOBOL fossero i progenitori della manipolazione delle stringhe, quindi sono abbastanza fiducioso che non ci saranno esempi precedenti.