Der Abschnitt mit dem Titel " Algorithmic Implementation" enthält den folgenden Code:
// Return RC low-pass filter output samples, given input samples,
// time interval dt, and time constant RC
function lowpass(real[0..n] x, real dt, real RC)
var real[0..n] y
var real α := dt / (RC + dt)
y[0] := x[0]
for i from 1 to n
y[i] := α * x[i] + (1-α) * y[i-1]
return y
was bedeutet: =?
:=
"wird gleich" ausgesprochen . Eigentlich bevorzuge ich dies=
und==
da "=" in natürlicher Sprache ein Vergleichsoperator ist (oder zumindest eine Aussage über die Wahrheit)Antworten:
: = ist der Zuweisungsoperator für Sprachen, die Gleichheitszeichen-Gleichheitstests verwenden. Die bekannteste dieser Sprachen ist Pascal. Aufgrund des Einflusses von C wechselten die meisten Sprachen zu = Zuweisungs- und == Testzwecken. Einige ältere Texte und Autoren, die in solchen Stilen geschult wurden, verwenden: = für Pseudocode. Manchmal sehen Sie Pfeile <- auch für die Zuordnung .
Aus dem Artikel:
Einige moderne Sprachen verwenden Pfeile für die Zuweisung. vor allem R , das es für die globale Zuweisung verwendet, während die einzelnen Gleichungen (=) für die lokale Zuweisung verwendet werden.
Aus Sebestas Konzepten für Programmiersprachen und den Notizen von Dr. KN King erfahren wir, dass die Zuweisungsstandards viel weiter zurückreichen als C oder Pascal. Es scheint, dass im Jahr 1958, als Algol entworfen wurde, beschlossen wurde, = für die Zuweisung zu verwenden. Das Komitee setzte sich aus amerikanischen und europäischen Vertretern zusammen. Einige der Deutschen im Komitee kannten Konrad Zuses Plankalkul-Sprache (die während des Zweiten Weltkriegs verfasst, aber erst 1972 veröffentlicht und erst 2005 umgesetzt wurde) und wollten, dass die Zuordnung der vorgeschlagenen Zuordnungsmethode dieser Sprache folgt
b+c => a
wobei b + c a zugeordnet ist. Das Komitee änderte dies zu =: mit der Begründung, dass die Methode zur Eingabe von Programmen, die zu der Zeit als Keypunch bezeichnet wurde, kein ">" zu verwenden hatte. Also machten sie einen Kompromiss mit dem Doppelpunkt. Die Amerikaner, die mit FORTRAN vertraut waren (es gab bis 1990 keine Kleinbuchstaben), wollten jedoch, dass der Auftrag auf der linken Seite ausgeführt wird, da FORTRAN dies tat.Sie haben es also geschafft, es in: = zu ändern und die Zuweisung nach links anstatt nach rechts im Stil von FORTRAN (eine bekannte implementierte Sprache) anstelle von Plankalkul (eine außerhalb Deutschlands praktisch unbekannte und nicht implementierte Sprache) ausführen zu lassen. . Algol 60 beeinflusste stark alle wichtigen nachfolgenden imperativen Sprachen, einschließlich Pascal und C. Somit behielt Pascal die ALGOL-Syntax für die Zuweisung bei und beide behielten die Linkshändigkeit der Zuweisung bei.
ALGOL wurde so entworfen, dass es leicht zu lesen ist und der mathematischen Notation nahe kommt. Es war de facto (und im Grunde genommen de jure) der Standard für das Schreiben von Algorithmen in Journalen für die nächsten über 20 Jahre. Aus diesem Grund wären Ausbilder und Informatiker, die zwischen 1960 und 1980 ausgebildet wurden, mit dieser Schreibweise vertraut gewesen.
Die Veröffentlichung des IBM 029 Keypunch im Jahr 1964 erlaubte> und <Zeichen und veranlasste somit unter anderem deren Aufnahme in C.
quelle
:=
für die Zuweisung verwendet. Auch Menschen mit mathematischem Hintergrund werden dies befürworten.Nur eine kurze und umständliche Notiz. Pseudocode ist recht informell, also bedeutet ": =" nur, was Sie wollen, dass es bedeutet. Wie andere gesagt haben, verwenden bestimmte Sprachen wie Pascal ": =" für die Zuweisung, um Verwechslungen mit "=" für die Gleichheit zu vermeiden, während andere Sprachen die Kombination von "=" und "==" für den gleichen Zweck verwenden.
Was den tatsächlichen Pseudocode angeht, können Sie "=", "==", "gleich", "zugewiesen", ": =", "hat", "empfängt" oder was auch immer Ihr Boot schwimmt, verwenden Solange Sie konsistent sind und die Verwendung und der Kontext in Ihrem Pseudocode enthalten sind, ist dies klar.
quelle
Ich vermute, es ist eine Zuweisung (ich denke, es ist der Zuweisungsoperator in Delphi), also weisen Sie in y [0]: = x [0] den Wert von x [0] y [0] zu.
Aber AFAIK gibt es nicht als Standard-Pseudocode , also könnte es theoretisch alles sein: =).
quelle
=
schon eine ganz andere Bedeutung: Gleichheit. Es wäre extrem dumm, einen Operator zu verwenden, der bereits eine gut verstandene Bedeutung für etwas anderes hat.:=
die natürliche Wahl, denn in mathematischer Notationx := v
bedeutet „lassenx
seinv
“ im Gegensatz zux = v
, was bedeutet „x
gleichv
“ und würde daher Ursache Verwirrung.=
für die Zuordnung verwirrend. Ich kann mich noch gut erinnern, wie verwirrend es war, zu sehen, als ich das Programmieren lerntex = x + 1
. Wenn Sie erst einmal die Grundschule für Mathematik besucht haben,x = x + 1
sieht es nach unmöglichem, widersprüchlichem Kauderwelsch aus. Als nächstes las ich ein hervorragendes Buch über Informatik für den allgemeinen Leser ( ich glaube, das war es ), das<-
für die Aufgabe verwendet wurde.x <- x + 1
ist viel einfacher zu verstehen.Es bedeutet normalerweise dasselbe, was es in der Mathematik bedeutet: Zuweisung.
quelle
:=
bedeutet dies normalerweise "ist definiert als" oder "ist per Definition gleich".x := 1; y := 2; if (x = 1) y := 3
als wäre esy := 3
eine sinnvolle Optimierung (vorausgesetzt, x wird später nicht verwendet). Von 3 Aufträgen werden 2 mittels statischer Analyse durchgeführt. Ihre "Definition" von Aufgaben ist eine pauschale Aussage, die ohne zahlreiche Annahmen einfach nicht gilt, von der eine Definition dieses Begriffs nicht abhängen sollte.