W większości wczesnych książek <-
o algorytmach odnosił się do zadania i =
do porównania. Ale obecnie jedynymi językami, które nie są używane =
do przypisywania, są Pascal ( :=
) i języki zabawkowe, takie jak COOL . Co spowodowało, że współczesne języki programowania zmieniły się =
w przypisanie znaczeń zamiast matematycznego znaczenia równości?
programming-languages
history
Siqi Lin
źródło
źródło
===
...←
pozostaje powszechny w działaniu algorytmów; jest to jeden z trzech typowych zapisów przypisywania przy pisaniu algorytmu (pozostałe to:=
i=
). To, że wszyscy programiści używają=
, nie oznacza, że wszyscy matematycy się porzucili←
.===
jest w porządku.Odpowiedzi:
Według Wikipedii użycie znaku równości do przypisania sięga języka Superplana Heinza Rutishausera, zaprojektowanego w latach 1949–1951 i szczególnie spopularyzowanego przez Fortran:
Konrad Zuse użył również znaku równości dla Plankalkul , który zainspirował Superplan Rutishausera, chociaż nigdy nie opracowano dla niego kompilatora. Dlaczego wybrał znak równości? Chyba musisz go zapytać.
źródło
=
zarówno predykat, jak i do definiowania zmiennych, np. W „Niech x = 4. Wtedy √ (x - y) wynosi zero, jeśli y = 4”. Działa to, ponieważ notację matematyczną należy rozumieć raczej deklaratywnie niż imperatywnie. Funkcjonalne języki programowania (np. Rodzina ML) domyślnie mają zmienne niemodyfikowalne, dlatego mogą=
bez problemu nadal pełnić podwójną rolę. A dokładniej,=
jest zarówno operatorem, jak i częściąlet
składni.=
następnie jest tylko predykatem, tak samo jak wszędzie tam, gdzie jest używana. Zauważ, że w zależności od kontekstu „Niech x = 4” mogło również oznaczać „Niech x ∈ ℝ i x = 4”.Ale kiedy robiłem matematykę w szkole „niech x = 123”
było popularne frazowanie. Wczesne wersje Basic nalegały na słowo kluczowe „let” przed równością. Więc w zasadzie rozumie się jego czyraki wykonane w celu „wypuszczenia”.
Kluczowy kierowca zwykle nie jest brany pod uwagę, ale bardzo ważny w momencie, w którym wpisałeś.
Były dwa możliwe urządzenia wejściowe,
Teletypy były zwykle używane w sklepach akademickich i wojskowych, dziurkowania kart w bardziej komercyjnych sklepach. Stąd języki akademickie, takie jak Pascal, obsługiwały małe litery i „rozsądne” notacje, takie jak „: =” do przypisania. Języki skierowane do bardziej komercyjnej publiczności zakładały, że perforowane karty będą główną formą wprowadzania danych, dlatego też tylko wielkie litery, takie jak FORTRAN i COBOL, z ograniczoną obsługą znaków „:;> <”, które były niedostępne w standardowym keypunchu.
Nawiasem mówiąc, nie było dwuznaczności, że „=” został użyty do przypisania we wczesnym FORTRAN, ponieważ porównania przeprowadzono za pomocą „.LT.”, „.LE.”, „.EQ.”, „.GE.” i „.GT”. składnia.
źródło
let x = 123
bardziej analogicznyassert(x == 123)
niż jakikolwiek rodzaj zadania.