“Dize” etimolojisi


58

Bu nedenle, bir şeyler dizisinin bir şeyler dizisi olduğu ve bir dizi karakter / bayt / etc olduğu açıktır. dize olarak da adlandırılabilir. Ama kim ilk olarak onlara telleri çağırdı? Ve ne zaman? Ve hangi bağlamda böyle sıkışmış? Bunu hep merak etmişimdir.



1
@Mark üzgünüm, bu kongre olduğunun farkında değildi. Mantıklı.
Alb

1
@Alb sorun değil. Sizin ve diğer kişilerin referansları için (bu soru yinelenen olarak işaretlendi), Yığın Taşması ile ilgili bir soru bu sorunun durumunu etkilemez, ancak ağdaki diğer soruları yorumlamanız ve not almanız kesinlikle yararlı olacaktır. Bu cevaplamaya yardımcı olabilir.

1
Kullanıcı 4051'in büyük cevabı ile Alb, stackoverflow sorusunu referans alan yorumunuzu kaldırmanızı ve bu soruya oraya bir bağlantı koymanızı öneririm.
Tyler Collier

1
Lütfen kapanmaya oy verdiğimde bu soruyu bir tabela olarak tutmamız gerektiğini düşünüyorum. Bu soruya verilen cevaplar, Programcılar S veya Yığın Taşması ile ilgili diğer benzer soruların cevaplarından çok daha ayrıntılı ve eksiksizdir. Bu aynı zamanda objektif olarak cevaplanabilen ilginç bir sorudur.

Yanıtlar:


47

Hugo'nun 1963 referansından önce gerçek bir alıntı yapabilir miyiz? Evet. John McCarthy , 1960 Nisan'ından itibaren sembolik ifadelerin özyinelemeli işlevlerinde ve bunların makine tarafından hesaplanmasında “string” kelimesini kullandı .

Atom sembolleri için, büyük Latin harfleri ve rakamları içeren dizeleri kullanacağız…

fakat bu soru için daha faydalı, bir dizgeye veri türü olarak yapılan başvuru:

Kabul edilen herhangi bir karakter dizisi [L] bir L ifadesidir.

Bu iyi bir örnek değil. "Bir karakter dizisi" derken, McCarthy, özel anlamıyla programcıların "anlamını" kullanmıyor. Bir Java programcısına kolayca "bir dize" diyebilirsiniz ve "karakterlerin" bölümünün kapalı olduğunu bilirler: McCarthy'nin kullanımı bu özelliği göstermez. McCarthy'nin güvenli bir şekilde çalıp çalmadığını veya o zaman gerçekten bir terimin bulunup bulunmadığını görmek için 1950'lere geri dönmeye çalışalım. LISP muhtemelen burada çok yardımcı olmayacak, matematiksel bir hesaplamaya dayandığından, McCarthy'nin karakter dizisi işlevleri, dizge işlemesi fikrinin ilk uygulaması olabilir.

1960'lı yılların önemli bir dize işleme sistemi, 1964’deki SNOBOL, Bir String Manipulation Language idi . Bu, McCarthy'nin yukarıda yazdığı makaleye atıfta bulunur, ancak aynı zamanda COMIT ve SCL'yi de tartışır. SCL'de sundukları işler yayınlanmamıştır: talihsiz bir çıkmaz.

COMIT'in izlenmesi kolaydır. Bilgisayar Programlama Sanatı (Cilt 1, üçüncü baskı, s.461) bize VH Yngve'nin üzerine 1963 CACM makalesi yazdığını söylemektedir. Ama "string" in en erken kullanımını arıyorum , bu yüzden daha önceki yayınları araştırmak için yazar araştırması yapacağım.

Bulabildiğim ilk şey Temmuz 1958'den itibaren Mekanik Tercüme için bir Programlama Dilidir. Bu sadece "string" kelimesinin bir kullanımını içerir:

Noktalama işaretleri veya boşluklar arasındaki sürekli harflerin her biri sözlükte aranır.

Yine, bu kullanım McCarthy'ninki gibidir: bu, günümüzdeki anlamında kullanılmakta olan “ip” için kanıt değildir. Makaleye ayrıntılı olarak baktığımızda, veri yapısının bir kart üzerinde bir "hat" olduğunu görüyoruz (daha uzun "hatlar" için devamlara izin veriyor).

Tamam, COMIT'in tarihinde ileriye gideceğiz ve ne alabileceğimize bakacağız. İlk yararlı referans, bir haziran 1959 konferansındaki işlemlerden itibaren mekanik çeviri için COMIT sistemidir .

Eğer D SIN (F) 'yi COS (F) D (F) ile değiştirmek istiyorsak, F sınırsızdır ve herhangi bir rasgele bileşen dizisi olabilirse, bu dizgiyi almak için $ gösterimini kullanırız.

Bu, bugün kullanma şeklimize daha çok benziyor: "string" tek başına duruyor ve bir bonus tanınabilir bir özel sembole sahip: dolar işareti hala bir dizi değişkenini belirtmek için bazı BASIC tatlarında kullanılıyor.

Bu süre zarfında, "string" kelimesi aynı zamanda birçok kez ACL '58 Bildirilerinden Perlis ve Smith tarafından sembollerin dizilişini işlemek için bir komut dilinde ve bir kez de Paylaşım 709 Sisteminde: Boehm ve Çelik.

ACM dijital kütüphanesini 1960'ların başlarında 'string' için araştırmak, "ALGOL'de string kullanımı", "Yeni Dilde String Uygulaması" ve "Alfanümerik bilgiler için liste tipi bir depolama tekniği" gibi başlıklar dahil 62 sonuç verir. Bu fikir o zamana kadar iç içe geçmiş gibi görünüyor.

Bilgisayar bilimi jargonunun sıralı bir karakter listesi olarak algıladığı "string" in birkaç yıl boyunca 1960 civarında yaygınlaştığını iddia ediyorum. Bundan önce, Yngwe ve McCarthy gibi yazarlar "karakter dizisi" diyebildiklerinden ve olduklarından emin olabilirlerdi. anlaşıldı, ancak "string" i bugün kullandığı anlamda çıplak bir kelime olarak kullanamadı.

Kısa yol muhtemelen bilgisayar ana ile Perlis ve Smith gazetesi tarafından tanıtıldı. Yaygın olarak belirtilmemiştir, ancak önemli bir alıntı, Nisan 1960’ta Joseph W. Smith’in ALGOL’e yaptığı sözdizimsel ve anlamsal yükseltmelerdir (CACM’in McCarthy’nin LISP’nin açıklamasıyla aynı baskısında). Bu kağıttan:

Bu yazının amacı ALGOL'e bir dizi sözdizimsel ve anlamsal artırma önermektir. Önerilen uzantılar, bu dilde "string" manipülasyonunun tanımlanmasını kolaylaştırmak için tasarlanmıştır; sembol manipülasyonu için kapsamlı bir dil oluşturmazlar.

Bana göre bu, akademik sözlükte onaylanan ve ticari hesaplamalar için kullanılan araçlara önem verilen sembolik hesaplamalar için bir veri türü anlamına gelen "string" ifadesini oluşturur.

Bu arada, Programlama Dilleri: Jean Sammet'in (1972) Tarih ve Geleceği , COMIT ve SNOBOL'un string manipülasyonunun öncüleri olduğunu öne sürüyor, bu yüzden daha önceki örnekler olmayacağına eminim.


2
Vay. Harika bir arkeoloji var.
sclv

4
Bu bana, trenin bir gelinlik treni gibi kullanıldığı “araba treni” ni, bir ulaşım aracı olarak sadece “tren” e dönüştüren süreci hatırlatıyor. "Karakter dizisinden" sadece "karakter dizisine" geçiş anahtardır
Kate Gregory

2
OED bu işi zaten yaptı. String girişi (paywall, ancak UK kütüphanesi üyeleri muhtemelen erişebilir) "1954 Jrnl. Assoc. Computing Machinery 1 120/2 Alfabedeki üyelerin sonlu, büyük olasılıkla boş bir dizisine dize adı verilir." Bu bana tam olarak modern kullanım gibi görünüyor.
AakashM

1
@AakashM bu referans için teşekkür eder, 1954 sonuçları 1950'lerde bulduğum diğer sonuçlarla tutarlıdır. "String" kelimesi, sadece bu anlamda anlamı açıklandığı zaman "karakter dizisi" anlamında kullanılır . Yazarların açıklama olmadan "string" i kullanabilmeleri ve 1960’a kadar sürmesi ve soruda kullanılan daha özel bir anlamı olan bir jargon terim haline gelmesi mümkün değildi .

1
@AakashM OED, 1954'ün Matematik altında olduğunu söyler . Vb. 1932 Sembolik Mantık kitabından bir ilk örnekle, belirli bir sıradaki bir semboller veya dilsel öğeler dizisi . Bilgisayar için ayrı bir girişi var . Doğrusal bir kayıt veya veri dizisi , ilk 1956 örneğindeki cevabımı ekledim .
Hugo

14

Tam bir cevap değil, ancak "bir çizgide düzenlenmiş bir dizi nesne" anlamına gelen dizginin kullanımı zaten 1400'lerin sonlarındaydı. Kaynak

Bu aslında aynı kullanımdır.


5

Bilgi işlem alanında bulabildiğim en erken referans Mart dan 1963 'nin METEOR'dan: String Dönüşümler için LISP Tercüman MIT AI Laboratuarlarında Daniel G. Bobrow tarafından.

Oxford İngilizce Sözlük bir gelen önceki bir işlem örneği vardır 1956 konusuna Association for Computing Machinery Dergisi :

Alanlar, tamamen sıralanan bir dizi elde edilinceye kadar kontrol alanlarının dizelerinin geriye ve arkaya sıralanması için ayrılır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.