2010-02-06 15 views
6

Powiel możliwe:
The History Behind the Definition of a ‘String’…Dlaczego nazywa się "String"?

W większości języków programowania ciąg jest ciągiem znaków. Dlaczego tak się nazywa?

Najwcześniejszą instancją nazywaną łańcuchem jest Algol 60 (o ile wiem).

Pytanie zadane przez Douglasa Crockforda w jego dzisiejszym wykładzie (opublikuje, gdy rozmowa będzie online).

+3

znaków w linii jak paciorki na sznurku .... –

+0

{{potrzebne źródło} } :) Jako projektant języka, mam nadzieję, że wymyślę lepsze rzeczy, żeby go nazwać. W końcu są to tablice niepołączone z listami. –

+1

Dokładny duplikat: http://stackoverflow.com/questions/880195/the-history-behind-definition-of-a-string – JRL

Odpowiedz

6

Wierzę, że pochodzi z teorii matematyki. Zestawy, gramatyki, języki, łańcuchy itp.

+0

darn, pobiłeś mnie do tego –

+2

@Jeff Ober: po raz pierwszy słyszałem, że ... –

+1

Jakieś referencje? Czy gramatyki poprzedzają Algol60? Studiowałem Czystą Matematkę i nie pamiętam rzeczy zwanych strunami (chyba że były to zajęcia matematyki na komputerze, a następnie były używane). –

0

Chyba pochodzi z matematyki ... W matematyce ciąg jest sekwencją symboli, która ładnie wyjaśnia istotę napisu w językach programowania.

2

Ciąg jest łańcuchem znaków. Jest to powszechne użycie słowa, a pochodzi on z powrotem do 1488.

ciąg (n.)

O.E. wzmocnienie "linii, sznurka, nici" od P.Gmc. * Strangiz (por. Strengr, Dan. strong, M.Du. strenge, Du. strength, OHG dusi, Ger. Strang "lina, sznur"), z bazy * strang - "napięty, sztywny" z bazy PIE * strenk - "ciasny, wąski, pociągnij mocno, skręć" (patrz naprężenie). Stopniowo ograniczone przez wczesne M.E. do linii, które są mniejsze niż lina. Poczucie „szeregu obiektów ułożonych w linii” pierwszy nagrany 1488. [...]

http://www.etymonline.com/index.php?term=string

+0

IMO definicja, którą cytujesz, nie odpowiada na pytanie. Co ma wspólnego kawałek cienkiej, wydłużonej tkaniny z sekwencją symboli? Może to jednak dać wgląd w to, dlaczego programiści z SGI zdecydowali się udostępnić klasę zamienną 'rope' dla' std :: string' w swojej wersji C++ Standard Template Library. – stakx

+0

(Czytając definicję drugi i trzeci raz, a na końcu dostrzegając ostatnie zdanie :), myślę, że muszę odebrać pierwsze zdanie z powyższego komentarza. Przepraszamy za to!). – stakx

+0

Dobra uwaga na temat klasy lin. –

Powiązane problemy