In den meisten frühen Algorithmenbüchern <-
wird auf Zuordnung und =
Vergleich Bezug genommen. Aber heutzutage sind die einzigen Sprachen, die nicht =
für die Zuweisung verwendet werden, Pascal ( :=
) und Spielzeugsprachen wie COOL . Was hat dazu geführt, dass moderne Programmiersprachen =
in Bedeutungszuweisung statt in mathematische Bedeutung von Gleichheit umgewandelt wurden?
programming-languages
history
Siqi Lin
quelle
quelle
===
...←
bleibt in der Arbeit mit Algorithmen üblich; Dies ist eine von drei gebräuchlichen Notationen für die Zuweisung beim Schreiben eines Algorithmus (die anderen sind:=
und=
). Nur weil alle Programmierer alle verwenden,=
heißt das nicht, dass alle Mathematiker fallen gelassen wurden←
.===
ist in Ordnung.Antworten:
Laut Wikipedia geht die Verwendung von Gleichen für die Zuordnung auf Heinz Rutishausers Sprache Superplan zurück, der von 1949 bis 1951 entworfen wurde und von Fortran besonders populär gemacht wurde:
Konrad Zuse verwendete auch das Gleichheitszeichen für Plankalkul , was zu Rutishausers Superplan inspirierte, obwohl nie ein Compiler dafür entwickelt wurde. Warum hat er das Gleichheitszeichen gewählt? Ich denke, du müsstest ihn fragen.
quelle
=
sowohl als Prädikat als auch zur Definition von Variablen, z. B. in „Sei x = 4. Dann ist √ (x - y) Null, wenn y = 4“. Dies funktioniert, weil die mathematische Notation eher deklarativ als zwingend verstanden werden sollte. Funktionale Programmiersprachen (z. B. die ML-Familie) verwenden standardmäßig nicht veränderbare Variablen und können daher=
problemlos in ihrer Doppelrolle weiter verwendet werden. Genauer gesagt,=
ist sowohl ein Operator als auch ein Teil derlet
Syntax.=
ist dann nur ein Prädikat, genau wie überall, wo sie verwendet wird. Beachten Sie, dass "Let x = 4" je nach Kontext auch "Let x ∈ ∈ und x = 4" bedeuten könnte.Aber als ich in der Schule Mathe gemacht habe "lass x = 123"
war übliche Formulierung. Frühere Versionen von Basic bestanden auf dem Schlüsselwort "let" vor dem gleichen. Es wird also im Grunde genommen verstanden, wie man "lassen" kann.
Ein Schlüsseltreiber, der normalerweise nicht in Betracht gezogen wird, aber zu dem Zeitpunkt sehr wichtig ist, auf dem Sie tatsächlich eingegeben haben.
Es gab zwei mögliche Eingabegeräte,
Teletypen wurden in der Regel in akademischen und militärischen Läden verwendet, Kartenstempel in eher kommerziellen Läden. Daher unterstützten akademische Sprachen wie Pascal Kleinbuchstaben und "sinnvolle" Notationen wie ": =" für die Zuordnung. Sprachen, die sich an ein kommerzielleres Publikum richteten, gingen davon aus, dass Lochkarten die Hauptform der Eingabe sein würden, daher nur Großbuchstaben wie FORTRAN und COBOL mit begrenzter Unterstützung für ":;> <" Zeichen, die auf einem Standard-Keypunch nicht verfügbar waren.
Im frühen FORTRAN gab es übrigens keine Unklarheit darüber, dass "=" für die Zuweisung verwendet wurde, da der Vergleich mit ".LT.", ".LE.", ".EQ.", ".GE" durchgeführt wurde. und ".GT." Syntax.
quelle
let x = 123
jedoch analogerassert(x == 123)
als jede Art von Aufgabe.