Jest więc oczywiste, że ciąg rzeczy jest sekwencją rzeczy, a więc sekwencją znaków / bajtów / itp. równie dobrze można nazwać ciągiem. Ale kto pierwszy nazwał je łańcuchami? I kiedy? I w takim kontekście, że utknął w pobliżu? Zawsze się nad tym zastanawiałem.
58
Odpowiedzi:
Czy możemy dostać prawdziwy cytat przed referencją Hugo z 1963 roku? Tak. John McCarthy użył słowa „ciąg znaków” w rekurencyjnych funkcjach wyrażeń symbolicznych i ich obliczeniu maszynowym, część I , od kwietnia 1960 r.
ale bardziej przydatne w przypadku tego pytania jest odwołanie do ciągu jako typu danych:
To nie jest świetny przykład. Mówiąc „ciąg znaków”, McCarthy nie używa słowa „ciąg” w wyspecjalizowanym znaczeniu, że programiści mają to na myśli dzisiaj. Możesz łatwo powiedzieć „ciąg” programistom Java, a oni wiedzą, że część „znaków” jest niejawna: użycie McCarthy'ego nie wykazuje tej funkcji. Spróbujmy cofnąć się do lat 50., aby przekonać się, czy McCarthy grał bezpiecznie, czy też naprawdę nie istniał ten termin. LISP prawdopodobnie tutaj niewiele pomoże, ponieważ opiera się na rachunku matematycznym, więc funkcje łańcuchowe McCarthy'ego mogły być pierwszą aplikacją pomysłu na przetwarzanie łańcucha.
Ważnym systemem przetwarzania ciągów w latach 60. był SNOBOL, język ciągów manipulacyjnych z 1964 r . To cytuje artykuł McCarthy'ego powyżej, ale także omawia COMIT i SCL. Praca, którą cytują w SCL, nie została opublikowana: niefortunny ślepy zaułek.
COMIT jest łatwiejszy do wyśledzenia. The Art of Computer Programming (Tom 1, trzecie wydanie, str. 461) mówi nam, że VH Yngve napisał na ten temat artykuł CACM z 1963 roku. Ale szukam najwcześniejszego użycia „łańcucha”, więc przeprowadzę wyszukiwanie autorów wcześniejszych publikacji.
Pierwszy, jaki mogę znaleźć, to język programowania dla tłumaczenia mechanicznego , z lipca 1958 r. Zawiera on tylko jedno użycie słowa „ciąg”:
Ponownie, to użycie jest podobne do zastosowania McCarthy'ego: nie jest to dowód na to, że „sznurek” jest używany w obecnym sensie. Przyglądając się szczegółowo artykułowi, widzimy, że struktura danych to „linia” na karcie (pozwalająca na kontynuację dłuższych „linii”).
OK, przejdziemy do historii COMIT i zobaczymy, co możemy uzyskać. Pierwszym przydatnym odniesieniem jest system COMIT do tłumaczenia mechanicznego z materiałów z konferencji z czerwca 1959 r.
Wydaje się to bardziej podobne do sposobu, w jaki go dzisiaj używamy: „ciąg” jest samodzielny, a jako bonus ma rozpoznawalny specjalny symbol: znak dolara jest nadal używany w niektórych odmianach BASIC do oznaczania zmiennej łańcuchowej.
Mniej więcej w tym czasie słowo „ciąg znaków” pojawia się również wielokrotnie w języku poleceń A do obsługi ciągów symboli Perlisa i Smitha z postępowania ACM '58, a raz w Systemie Share 709: Implementacja maszynowa programowania symbolicznego przez Boehm i Stal.
Przeszukanie cyfrowej biblioteki ACM pod kątem „łańcucha” na początku lat 60. daje 62 wyniki, w tym tytuły takie jak „Obsługa łańcucha w ALGOL”, „Manipulacja ciągiem w nowym języku” i „Technika przechowywania typu listy dla informacji alfanumerycznych”. Wygląda na to, że do tego czasu pomysł się zakorzenił.
Twierdziłbym, że „ciąg” w sensie żargonu informatycznego jako uporządkowana lista postaci stał się powszechny przez kilka lat około 1960 roku. Wcześniej autorzy tacy jak Yngwe i McCarthy mogli powiedzieć „ciąg znaków” i mieć pewność, że byli zrozumiałe, ale nie może używać „łańcucha” jako nagiego słowa w takim znaczeniu, w jakim jest używane dzisiaj.
Stenografia prawdopodobnie została wprowadzona do głównego nurtu informatyki w pracy Perlis i Smith. Nie był szeroko cytowany, ale jednym ważnym cytatem jest syntaktyczne i semantyczne rozszerzenia do ALGOL autorstwa Josepha W. Smitha w kwietniu 1960 r. (W tym samym wydaniu CACM, co opis LISP przez McCarthy'ego). Z tego artykułu:
Dla mnie stanowi to dowód na „ciąg” oznaczający typ danych dla obliczeń symbolicznych potwierdzony w leksykonie akademickim i co ważne wprowadzony do narzędzi wykorzystywanych do obliczeń komercyjnych.
Nawiasem mówiąc, Programming Languages: History and Future autorstwa Jeana Sammeta (1972) sugeruje, że COMIT i SNOBOL były prekursorami manipulacji ciągami, więc jestem całkiem pewien, że nie będzie wcześniejszych przykładów.
źródło
Nie jest to kompletna odpowiedź, ale użycie ciągu znaków w celu oznaczenia „pewnej liczby obiektów ułożonych w linii” było już pod koniec 1400 roku. Źródło
Jest to zasadniczo takie samo użycie.
źródło
Najwcześniejsze wzmianki udało mi się znaleźć w informatyce jest od marca 1963 roku „s Meteor: interpretera LISP dla Smyczkowych Przekształceń Daniel G. Bobrow na MIT AI Labs.
Oxford English Dictionary zawiera wcześniejszą obliczeniowej przykład z 1956 numerze Journal of Association for Computing Machinery :
źródło