Es ist also offensichtlich, dass eine Folge von Dingen eine Folge von Dingen ist, und so eine Folge von Zeichen / Bytes / etc. könnte auch eine Zeichenfolge genannt werden. Aber wer nannte sie zuerst Saiten? Und wann? Und in welchem Zusammenhang so, dass es hängen blieb? Ich habe mich immer darüber gewundert.
58
Antworten:
Können wir vor Hugos Referenz von 1963 ein echtes Zitat bekommen? Ja. John McCarthy verwendete das Wort "Zeichenkette" in rekursiven Funktionen symbolischer Ausdrücke und ihrer maschinellen Berechnung, Teil I , ab April 1960.
Sinnvoller für diese Frage ist jedoch ein Verweis auf einen String als Datentyp:
Das ist kein gutes Beispiel. McCarthy sagt "eine Zeichenkette" und verwendet "Zeichenkette" nicht in dem Sinne, wie es Programmierer heute meinen. Sie können einem Java-Programmierer leicht "eine Zeichenfolge" sagen, und er wird wissen, dass der Teil "von Zeichen" implizit ist: McCarthys Verwendung demonstriert diese Funktion nicht. Versuchen wir, in die 1950er Jahre zurückzukehren, um herauszufinden, ob McCarthy auf Nummer sicher ging oder ob der Begriff damals wirklich nicht existierte. LISP wird hier wahrscheinlich nicht viel helfen, da es auf einem mathematischen Kalkül basiert, sodass McCarthys String-Funktionen möglicherweise die erste Anwendung der Idee für die String-Verarbeitung waren.
Ein wichtiges Saitenverarbeitungssystem der 1960er Jahre war SNOBOL (A String Manipulation Language) aus dem Jahr 1964 . Dies zitiert McCarthys Artikel oben, erörtert aber auch COMIT und SCL. Die Arbeit, die sie zu SCL zitieren, ist unveröffentlicht: eine unglückliche Sackgasse.
COMIT ist leichter zu finden. Die Kunst der Computerprogrammierung (Band 1, dritte Ausgabe, S. 461) besagt, dass VH Yngve einen CACM-Artikel von 1963 darüber geschrieben hat. Aber ich suche nach der frühesten Verwendung von "string", also mache ich eine Autorensuche nach früheren Veröffentlichungen.
Das erste, was ich finden kann, ist eine Programmiersprache für mechanische Übersetzung vom Juli 1958. Diese enthält nur eine Verwendung des Wortes "string":
Wieder ist diese Verwendung wie die von McCarthy: Dies ist kein Beweis dafür, dass "Zeichenfolge" in seinem heutigen Sinne verwendet wird. Wenn wir uns das Papier im Detail ansehen, sehen wir, dass die Datenstruktur eine "Zeile" auf einer Karte ist (was Fortsetzungen für längere "Zeilen" ermöglicht).
OK, wir werden in der Geschichte von COMIT vorankommen und sehen, was wir bekommen können. Die erste nützliche Referenz ist das COMIT-System für maschinelle Übersetzung aus dem Bericht einer Konferenz vom Juni 1959.
Dies scheint mehr der Art zu entsprechen, wie wir es heute verwenden: "string" steht für sich und hat als Bonus ein erkennbares spezielles Symbol: Das Dollarzeichen wird in einigen BASIC-Varianten immer noch verwendet, um eine Stringvariable zu kennzeichnen.
Ab dieser Zeit taucht das Wort "string" auch in der Kommandosprache A zur Behandlung von Zeichenketten von Perlis und Smith aus dem ACM '58-Verfahren und einmal in " The Share 709 System: Machine Implementation of Symbolic Programming" von Boehm und Stahl.
Das Durchsuchen der digitalen Bibliothek von ACM nach 'string' in den frühen 1960er-Jahren ergab 62 Ergebnisse, darunter Titel wie "String-Handling in ALGOL", "String-Manipulation in der neuen Sprache" und "Eine Listenspeichertechnik für alphanumerische Informationen". Es scheint, dass sich die Idee bis dahin festgesetzt hat.
Ich würde argumentieren, dass "Zeichenfolge" im Sinne der Informatik im Laufe der Jahre um 1960 als geordnete Liste von Zeichen verbreitet wurde. Vorher konnten Autoren wie Yngwe und McCarthy "Zeichenfolge" sagen und sicher sein, dass dies der Fall ist verstanden, konnte aber "string" nicht als bloßes Wort in dem Sinne verwenden, wie es heute verwendet wird.
Die Abkürzung wurde wahrscheinlich von Perlis und Smith in den Computing-Mainstream eingeführt. Es wurde nicht häufig zitiert, aber ein wichtiges Zitat ist die syntaktische und semantische Erweiterung von ALGOL durch Joseph W. Smith im April 1960 (in derselben Ausgabe von CACM wie McCarthys Beschreibung von LISP). Aus diesem Papier:
Für mich ist dies ein Beweis dafür, dass "string" ein Datentyp für symbolische Berechnungen ist, der im akademischen Lexikon bestätigt und in die für kommerzielle Berechnungen verwendeten Tools eingeführt wird.
Übrigens, Programmiersprachen: Geschichte und Zukunft von Jean Sammet (1972) legen nahe, dass COMIT und SNOBOL die Vorläufer der String-Manipulation waren, daher bin ich ziemlich zuversichtlich, dass es keine früheren Beispiele geben wird.
quelle
Keine vollständige Antwort, aber die Verwendung von Zeichenketten als "mehrere in einer Linie angeordnete Objekte" gab es bereits Ende des 14. Jahrhunderts. Quelle
Dies ist im Wesentlichen die gleiche Verwendung.
quelle
Die früheste Referenz, die ich im Computer finden konnte, ist METEOR ( März 1963 ) : Ein LISP-Interpreter für String-Transformationen von Daniel G. Bobrow an den AI Labs des MIT.
Das Oxford English Dictionary enthält ein früheres Rechenbeispiel aus einer Ausgabe des Journal of the Association for Computing Machinery von 1956 :
quelle