Etimologi "Tali"

58

Jadi jelas bahwa serangkaian hal adalah urutan hal, dan urutan karakter / byte / dll. mungkin juga disebut string. Tapi siapa yang pertama menyebut mereka string? Dan kapan? Dan dalam konteks apa sehingga terjebak? Saya selalu bertanya-tanya tentang ini.

sclv
sumber
10
sudah bertanya pada stackoverflow
Alb
1
@Mark maaf, tidak menyadari bahwa itu adalah konvensi. Masuk akal.
Alb
1
@ Alb tidak masalah. Untuk referensi Anda dan orang lain (pertanyaan ini ditandai sebagai duplikat), pertanyaan yang ada di Stack Overflow tidak memengaruhi status pertanyaan ini, tetapi sangat membantu untuk mengomentari dan mencatat pertanyaan lain di jaringan itu bisa membantu menjawabnya.
1
Alb, dengan jawaban yang bagus dari user4051, saya sarankan untuk menghapus komentar Anda yang merujuk pada pertanyaan stackoverflow, dan meletakkan kembali tautan ke pertanyaan ini.
Tyler Collier
1
Harap dicatat bahwa sementara saya memilih untuk menutup, saya pikir kita harus menjaga pertanyaan ini sebagai rambu. Jawaban atas pertanyaan ini jauh lebih menyeluruh dan lengkap daripada jawaban atas pertanyaan serupa lainnya pada Programmer.SE atau Stack Overflow. Ini juga merupakan pertanyaan menarik yang dapat dijawab secara objektif.

Jawaban:

47

Bisakah kita mendapatkan kutipan sungguhan sebelum referensi Hugo 1963? Iya. John McCarthy menggunakan kata "string" dalam fungsi Rekursif dari ekspresi simbolik dan perhitungannya dengan mesin, Bagian I , dari April 1960.

Untuk simbol atom, kita akan menggunakan string huruf latin dan digit ...

tetapi lebih bermanfaat untuk pertanyaan ini, referensi ke string sebagai tipe data:

Setiap string karakter yang diterima [adalah] ekspresi-L.

Itu bukan contoh yang bagus. Dengan mengatakan "serangkaian karakter", McCarthy tidak menggunakan "string" dalam arti yang khusus dimiliki oleh pemrogram hari ini. Anda dapat dengan mudah mengatakan "string" ke programmer Java dan mereka akan tahu bahwa bagian "karakter" tersirat: Penggunaan McCarthy tidak menunjukkan fitur ini. Mari kita coba kembali ke tahun 1950-an, untuk melihat apakah McCarthy memainkannya dengan aman atau apakah istilah itu benar-benar tidak ada saat itu. LISP mungkin tidak akan banyak membantu di sini, karena didasarkan pada kalkulus matematika sehingga fungsi string McCarthy mungkin merupakan aplikasi pertama dari ide untuk pemrosesan string.

Sistem pemrosesan string penting pada 1960-an adalah SNOBOL 1964 , A Manipulation Language . Ini mengutip makalah McCarthy di atas, tetapi juga membahas COMIT dan SCL. Pekerjaan yang mereka kutip di SCL tidak dipublikasikan: jalan buntu yang malang.

COMIT lebih mudah dilacak. Seni Pemrograman Komputer (Volume 1, edisi ketiga, hal.461) memberi tahu kita bahwa VH Yngve menulis sebuah artikel 1963 CACM di situ. Tapi saya sedang mencari penggunaan awal "string", jadi saya akan melakukan pencarian penulis untuk publikasi sebelumnya.

Yang pertama saya temukan adalah Bahasa Pemrograman untuk Terjemahan Mekanis , mulai Juli 1958. Ini hanya mengandung satu penggunaan kata "string":

Setiap string huruf yang terus menerus di antara tanda baca atau spasi terlihat dalam kamus.

Sekali lagi, penggunaan ini seperti McCarthy: ini bukan bukti untuk "string" yang digunakan dalam arti saat ini. Melihat kertas secara rinci, kita melihat bahwa struktur data adalah "garis" pada kartu (memungkinkan untuk kelanjutan "garis" yang lebih panjang).

Oke, kita akan bergerak maju dalam sejarah COMIT dan melihat apa yang bisa kita dapatkan. Referensi pertama yang bermanfaat adalah Sistem COMIT untuk terjemahan mekanis , dari proses konferensi bulan Juni 1959.

Jika kita ingin mengganti D SIN (F) dengan COS (F) D (F), di mana F tidak dibatasi dan mungkin urutan sembarang konstituen, kita menggunakan notasi $ untuk mendukung string ini.

Ini tampaknya lebih mirip dengan cara kita menggunakannya hari ini: "string" berdiri sendiri dan sebagai bonus memiliki simbol khusus yang dapat dikenali: tanda dolar masih digunakan dalam beberapa rasa BASIC untuk menandakan variabel string.

Dari sekitar waktu ini, kata "string" juga muncul berkali-kali dalam bahasa perintah untuk menangani string simbol oleh Perlis dan Smith dari ACM '58 Proceeding, dan sekali dalam The Share 709 System: Mesin Implementasi Program Simbolik oleh Boehm dan Baja.

Mencari 'string' di perpustakaan digital ACM pada awal 1960-an menghasilkan 62 hasil, termasuk judul-judul seperti "Penanganan string dalam ALGOL", "Manipulasi String dalam Bahasa Baru" dan "Teknik penyimpanan tipe-daftar untuk informasi alfanumerik". Tampaknya gagasan itu sudah mengakar saat itu.

Saya berpendapat bahwa "string" dalam pengertian jargon ilmu komputer sebagai daftar karakter yang teratur menjadi umum selama beberapa tahun sekitar tahun 1960. Sebelum itu, penulis seperti Yngwe dan McCarthy dapat mengatakan "string karakter" dan memastikan bahwa mereka dipahami, tetapi tidak bisa menggunakan "string" sebagai kata kosong dalam arti yang digunakan hari ini.

Tulisan singkat mungkin diperkenalkan ke arus utama komputasi oleh kertas Perlis dan Smith. Itu belum banyak dikutip, tetapi satu kutipan penting adalah penambahan sintaksis dan semantik untuk ALGOL oleh Joseph W. Smith pada bulan April 1960 (dalam edisi yang sama CACM seperti deskripsi McCarthy tentang LISP). Dari makalah itu:

Tujuan dari makalah ini adalah untuk mengusulkan satu set penambahan sintaksis dan semantik untuk ALGOL. Ekstensi yang diusulkan dirancang untuk memfasilitasi deskripsi manipulasi "string" dalam bahasa itu; mereka bukan merupakan bahasa yang komprehensif untuk manipulasi simbol.

Bagi saya, ini merupakan bukti "string" yang berarti tipe data untuk perhitungan simbolik yang ditegaskan dalam leksikon akademik, dan yang penting diperkenalkan pada alat yang digunakan untuk perhitungan komersial.

Kebetulan, Bahasa Pemrograman: Sejarah dan Masa Depan oleh Jean Sammet (1972) menunjukkan bahwa COMIT dan SNOBOL adalah nenek moyang manipulasi string, jadi saya cukup yakin bahwa tidak akan ada contoh sebelumnya.


sumber
2
Wow. Arkeologi besar di sana.
sclv
4
Ini mengingatkan saya pada proses yang mengubah "kereta mobil" di mana kereta digunakan seperti kereta gaun pengantin, menjadi hanya "kereta" sebagai bentuk transportasi. Transisi dari "string karakter" menjadi "string" adalah kuncinya
Kate Gregory
2
OED sudah melakukan pekerjaan ini. Entri untuk string (paywall, tetapi anggota perpustakaan Inggris mungkin dapat mengakses) memiliki "1954 Jrnl. Assoc. Mesin Komputasi 1 120/2 Urutan anggota alfabet yang terbatas, mungkin nol, disebut string." yang menurut saya persis penggunaan modern.
AakashM
1
@ AashashM terima kasih untuk referensi itu, hasil 1954 mereka konsisten dengan hasil lain yang saya temukan di tahun 1950-an. Kata "string" hanya digunakan dalam arti "string karakter" ketika artinya dalam arti dijelaskan . Tidak sampai sekitar tahun 1960 penulis dapat menggunakan "string" tanpa penjelasan, dan itu menjadi istilah jargon dengan makna yang lebih spesifik seperti yang digunakan dalam pertanyaan.
1
@AashashM Kelas OED yang 1954 di bawah Matematika., Dll. Urutan simbol atau elemen linguistik dalam urutan tertentu , dengan contoh pertama dari buku Logika Simbolik 1932 . Mereka memiliki entri terpisah untuk Komputer. Urutan linear dari data atau data , saya telah menambahkan contoh 1956 pertama ke jawaban saya .
Hugo
14

Bukan jawaban yang lengkap, tetapi penggunaan string yang berarti "sejumlah objek yang diatur dalam garis" sudah ada di akhir 1400-an. Sumber

Ini pada dasarnya adalah penggunaan yang sama.

Peter Taylor
sumber
5

Referensi paling awal aku bisa menemukan di komputasi adalah dari Maret 1963 's METEOR: Sebuah LISP Interpreter untuk String Transformasi oleh Daniel G. Bobrow di MIT AI Labs.

The Oxford English Dictionary memiliki contoh komputasi sebelumnya dari 1956 edisi Journal of Association for Computing Machinery :

Area disisihkan untuk bolak-balik string bidang kontrol bolak-balik sampai urutan yang sepenuhnya diurutkan diperoleh.

Hugo
sumber