Possiamo ottenere una vera citazione prima del riferimento di Hugo del 1963? Sì. John McCarthy usò la parola "stringa" nelle funzioni ricorsive delle espressioni simboliche e nel loro calcolo per macchina, Parte I , dall'aprile 1960.
Per i simboli atomici, useremo stringhe di lettere e cifre latine maiuscole ...
ma più utile per questa domanda, un riferimento a una stringa come tipo di dati:
Qualsiasi stringa di caratteri ammessi [è] un'espressione a L.
Questo non è un grande esempio. Dicendo "una stringa di caratteri", McCarthy non sta usando "stringa" nel senso specializzato che i programmatori intendono oggi. Puoi facilmente dire "una stringa" a un programmatore Java e loro sapranno che la parte "dei caratteri" è implicita: l'uso di McCarthy non dimostra questa caratteristica. Proviamo a risalire agli anni '50, per vedere se McCarthy lo stava giocando in modo sicuro o se il termine non esisteva davvero allora. Probabilmente LISP non sarà di grande aiuto 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 di stringhe.
Un importante sistema di elaborazione delle stringhe degli anni '60 fu SNOBOL, A String Manipulation Language del 1964 . Questo cita il documento di McCarthy sopra, ma discute anche di COMIT e SCL. Il lavoro che citano su SCL non è stato pubblicato: uno sfortunato vicolo cieco.
COMIT è più facile da rintracciare. The Art of Computer Programming (Volume 1, terza edizione, p.461) ci dice che VH Yngve scrisse un articolo CACM del 1963 su di esso. Ma sto cercando il primo utilizzo di "stringa", quindi cercherò un autore per cercare pubblicazioni precedenti.
Il primo che posso trovare è Un linguaggio di programmazione per la traduzione meccanica , dal luglio 1958. Questo contiene solo un uso della parola "stringa":
Ogni stringa continua di lettere tra segni di punteggiatura o spazi viene cercata nel dizionario.
Ancora una volta, questo uso è come quello di McCarthy: questa non è la prova che "stringa" sia usata nel suo significato attuale. Osservando il documento in dettaglio, vediamo che la struttura dei dati è una "linea" su una carta (consentendo continuazioni per "linee" più lunghe).
OK, andremo avanti nella 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.
Se vogliamo sostituire D SIN (F) con COS (F) D (F), dove F non ha restrizioni e può essere qualsiasi sequenza arbitraria di componenti, utilizziamo la notazione $ per indicare questa stringa.
Questo sembra più simile al modo in cui lo usiamo oggi: "stringa" è isolata e come bonus ha un simbolo speciale riconoscibile: il simbolo del dollaro è ancora usato in alcuni gusti BASIC per indicare una variabile stringa.
Da questo momento, la parola "stringa" appare anche molte volte in un linguaggio di comando per la gestione di stringhe di simboli di Perlis e Smith dagli Atti ACM '58 e una volta in The Share 709 System: Machine Implementation of Symbolic Programming by Boehm and Acciaio.
La ricerca della 'stringa' nella libreria digitale ACM all'inizio degli anni '60 produce 62 risultati, tra cui titoli come "Gestione delle stringhe in ALGOL", "Manipolazione delle stringhe nella nuova lingua" e "Una tecnica di memorizzazione di tipo elenco per informazioni alfanumeriche". Sembra che l'idea sia ormai radicata.
Direi che "stringa" nel suo senso del gergo informatico come elenco ordinato di personaggi divenne comune nel giro di un paio di anni intorno al 1960. Prima di allora, autori come Yngwe e McCarthy potevano dire "stringa di caratteri" ed essere sicuri che fossero capito, ma non potevo usare "stringa" come una parola nuda, nel senso in cui è usata oggi.
La scorciatoia fu probabilmente introdotta nel mainstream dell'informatica dal giornale Perlis e Smith. Non è stato ampiamente citato, ma un'importante citazione sono gli aumenti sintattici e semantici di ALGOL di Joseph W. Smith nell'aprile 1960 (nello stesso numero di CACM della descrizione di LISP di McCarthy). Da quel foglio:
Lo scopo di questo documento è di proporre una serie di aumenti sintattici e semantici ad ALGOL. Le estensioni proposte sono progettate per facilitare la descrizione della manipolazione "stringa" in quella lingua; non costituiscono un linguaggio completo per la manipolazione dei simboli.
Per me, ciò costituisce la prova di "stringa" che significa che un tipo di dati per il calcolo simbolico è affermato nel lessico accademico e introdotto in modo importante agli strumenti utilizzati per il calcolo commerciale.
Per inciso, Programming Languages: History and Future di Jean Sammet (1972) suggerisce che COMIT e SNOBOL erano i progenitori della manipolazione delle stringhe, quindi sono abbastanza fiducioso che non ci saranno esempi precedenti.