Wiele języków programowania korzysta ze składni a[i]
w odniesieniu do i
„elementu tablicy, sekwencji lub wektora” a
- w szczególności robią to C i Pascal (z przełomu lat 60. i 70.). Z drugiej strony niektóre wcześniejsze języki, takie jak Fortran (z lat 50.), nie używają tej konwencji. Studiowałem też trochę matematyki, a matematycy używają nawiasów kwadratowych do interwałów oraz indeksów dolnych do indeksowania macierzy i macierzy (lub zwykłych nawiasów, jeśli tablicę uważa się za funkcję liczb całkowitych nieujemnych).
Moje pytanie brzmi zatem: gdzie / jak / w jakim kontekście powstały nawiasy kwadratowe do indeksowania tablic i przez kogo?
Uwaga: wcale nie jest duplikatem tego pytania na temat używania nawiasów klamrowych w C.
Odpowiedzi:
Głównym językiem prekursorów języka C i Pascal był Algol . Najwcześniejszą wersją tego był Algol 58, który używał nawiasów kwadratowych do deklaracji tablicowych i odniesień.
Powód, dla którego Algol używał nawiasów kwadratowych zamiast na przykład nawiasów, był trzykrotnie:
Uwaga: w przeciwieństwie do C, który wykorzystuje tablice głównie do indeksowania pamięci, Algol zezwalał na określenie dolnej i górnej granicy indeksu. Ponownie było to zgodne z jego bardziej matematycznym zamiarem. Tak bardzo, że Algol był de facto językiem pseudokodu przez wiele lat.
źródło
[x]
było używane do klas równoważności, a nie do pozycji wskazań w wektorach lub macierzach.To ciekawa lektura: https://en.m.wikipedia.org/wiki/Bracket
Oto moje własne obserwacje.
Projektanci C bardzo uważnie przyjęli znaczenie znaków i konstrukcji, ponieważ były używane przez setki lat w zwykłym języku pisanym. W ten sposób musieli pracować z dość ograniczonym podzbiorem znaków ASCII. W języku zachodnim w tekście pisanym stosuje się więcej znaków grupujących, ale nie zostały one wprowadzone do ASCII.
W zwykłym języku nawiasy oznaczają informacje dodatkowe bez przerywania głównego komunikatu. Ma to sens przy wywoływaniu procedury: głównym komunikatem jest akcja, którą należy wykonać, a informacje dodatkowe to argumenty.
Nawiasy klamrowe służą do grupowania. „Ta kolekcja słów należy do siebie, należy oddzielić od reszty”. Dlatego sensowne jest używanie ich do bloków kodu, instrukcji złożonych.
Nawiasy kwadratowe służą do wstawiania tekstu, który nie był częścią oryginału, w celu wyjaśnienia tekstu oryginalnego i zapewnienia kontekstu. Lub wskazać pominięcie za pomocą wielokropka: [...]. „Ona [królowa] nie była rozbawiona”. W programowaniu komputerowym sensowne jest używanie nawiasu do indeksowania tablicy, ponieważ jest to pewien rodzaj kontekstu. „Tablica? Jaka tablica? Cóż, konkretnie ten element.” Ale nawet jeśli pierwotne znaczenie nie obejmuje w pełni użycia w języku komputerowym, w ASCII nie pozostało zbyt wiele innych opcji.
Powiedziałbym więc, że jest to połączenie stanu techniki i tego, co było dostępne w tym czasie, co doprowadziło do zastosowania nawiasów kwadratowych do indeksowania tablic.
[edytuj z powodu komentarza Alexa]
Według tego źródła ASCII został wprowadzony w 1963 r. I uzyskał zgodę rządu w 1968 r. Rozwój języka C rozpoczął się dopiero w 1969 r., Zgodnie z tym wiki . Wydaje się więc prawdopodobne, że Ritchie obserwował ten nowy, szeroko obsługiwany standard ASCII, wybierając swoje postacie.
Zobacz także inne odpowiedzi uzasadniające, że Algol, „matka wielu języków”, ma duży wpływ.
źródło