Diskussion:Operatorassoziativität

aus Wikipedia, der freien Enzyklopädie
Letzter Kommentar: vor 1 Jahr von Daniel5Ko in Abschnitt Auswertungsreihenfolge
Zur Navigation springen Zur Suche springen

Konditional linksassoziativ?[Quelltext bearbeiten]

"Das Konditional in der Logik wird von den meisten Autoren linksassoziativ verwendet." Vielleicht sollte man trotzdem die Warnung dazuschreiben, dass es der Rest der Mathematikerwelt weder rechts- noch linksassoziativ verwendet, sondern als liest. 84.139.167.20 21:41, 5. Mär. 2010 (CET)Beantworten

Wenn äquivalent zu (Currying) sein soll, dann muss das Konditional rechtsassoziativ sein. --Pillmuncher (Diskussion) 05:19, 4. Nov. 2012 (CET)Beantworten

Fermatsche Zahlen[Quelltext bearbeiten]

Offenbar besteht ein Problem über die Definition der Fermat-Zahlen, so dass Referenzen entfernt werden, in welchen diese vorkommen. Dabei sind diese sehr gut geeignet, um zu sehen, wie die Default-Klammerung beim Potenzieren aussieht. Vorschlag zur Güte: man sollte im Text der Referenz vielleicht aus didaktischen Gründen ergänzen, dass diese im 2.Kapitel angesprochen werden; ich dachte, die Angabe der konkreten Seitenzahl wäre ausreichend. -- Ralfkannenberg (Diskussion) 16:37, 25. Okt. 2017 (CEST)Beantworten

Diese Quelle würde wenn dann wohl eher in den Artikel über die Fermat-Zahl passen, wobei der auch schon ausreichend referenziert ist. Abgesehen davon heißt es 2ⁿ, nicht 2n. Man muss sich schon große Mühe geben das was du damit referenzieren willst aus dieser Quelle herauszulesen, das steht anderswo viel direkter (siehe die bereits vorhandene Quelle, wo ohne große Themenverfehlung direkt zum Punkt gekommen wird). -- ❇ (Diskussion) 16:51, 25. Okt. 2017 (CEST)Beantworten
Ihr Link ist u.a. eine Ansammlung von 168 Übungsaufgaben, und nur in einer einzigen von denen, nämlich in der 28., ist ein Beispiel zur Defaultklammerung des Potenzierens genannt. Konkret lautet dieses - ich notiere im Folgenden das Potenzieren mit **:
6**z**2 = (6**z)**z, und mithilfe des 5.Potenzsatzes erzielt man das Ergebnis. Tatsächlich ist es nicht einfach, online weitere Beispiele zur Defaultklammerung beim Potenzieren zu finden, zumal Referenzierungen auf die Wikipedia selber nicht als Referenz anerkannt werden. Eine auch für den Laien ohne allzu große Vorkenntnisse nachvollziehbare Teilmenge der natürlichen Zahlen sind die Fermat'schen Zahlen und da bin ich dann auch fündig geworden, wo im 2.Kapitel eine Defaultklammerung referenziert wird, konkret wird dabei die Definition der m.-ten Fermat-Zahl Fm = 2**2**m + 1 genannt. -- Ralfkannenberg (Diskussion) 17:11, 25. Okt. 2017 (CEST)Beantworten
Wenn man aber die Richtlinie
Generell gilt: Die dort verlinkten Seiten müssen das genaue Artikelthema behandeln (nicht lediglich verwandte Themen) und Informationen enthalten, die (beispielsweise aus Platz- oder Aktualitätsgründen) nicht in den Artikel selbst integriert worden sind.
bedenkt, und das von dir verlinkte PDF zu Fermat zwar mit dem Thema verwandt ist, aber das Thema im Gegensatz zur bereits vorhandenen Quelle Western Michigan University: Rules for Exponents and the Reasons for Them, wo es direkt um die Regeln der Operatorassoziativität geht, nur nebenbei und ganz am Rande streift schlage ich vor dass du es im Artikel über Fermats Zahl unterbringst, in diesem Artikel kann man eventuell dort hin verlinken so dass du dein PDF zwar immer noch verlinkt hast, aber zumindest im richtigen Artikel. Entgegenkommend, -- ❇ (Diskussion) 21:23, 25. Okt. 2017 (CEST)Beantworten
Zu deinem Einwand dass in der vorherigen Referenz 168 Beispiele vorkommen, und das hier zitierte neben den anderen 167 Beispielen nur einmal da steht: Natürlich steht diese eine Regel um die es im Abschnitt geht nur einmal da, warum sollte die Referenz sie mehrfach wiederholen? Die Regeln steht immerhin mit Variablen die für alle Zahlen gelten können drin, während in deiner Referenz nur ein paar Zahlenbeispiele vorkommen wo halt stillschweigend nach dieser Regel, die aber nicht extra erklärt wird, gerechnet wird, ohne dass die Klammerung explizit gezeigt wird. Die anderen 167 Beispiele stehen ja nicht im Widerspruch zum hier Referenzierten, eine Referenz würde dadurch dass auf jeder Seite alles wiederholt wird ja auch nicht aussagekräftiger. Man soll die Dinge zwar nicht kürzer als möglich, aber trotzdem nicht länger als nötig sagen, und so kompliziert ist diese Regel dann ja auch wieder nicht. -- ❇ (Diskussion) 21:34, 25. Okt. 2017 (CEST)Beantworten
OK, ich bevorzuge sogar Ihre Variante, das ganze in ein Beispiel zu verpacken. Das hat auch den Vorteil, dass - da Ihre Referenz zweifelsohne didaktisch einfacher verständlich ist, der Laie rasch mal noch von der Schule vertraute Inhalte nachschlagen kann. Ein Detail würde ich aber noch korrigieren, ich überlasse das aber Ihnen: es gibt ja n Fermat-Zahlen, d.h. ich würde da die Pluralform verwenden. -- Ralfkannenberg (Diskussion) 23:40, 25. Okt. 2017 (CEST)Beantworten
Der Artikel über die Fermatschen Zahlen hat schon genügend gute Referenzen, d.h. ich sehe keine Notwendigkeit, den von mir genannten Link dort unterzubringen. Tatsächlich würde ich von dort sogar die Referenz Jeff Young und Duncan A. Buell bevorzugen, denn das ist auch ein paper und dort werden die Fermatschen Zahlen ganz zu Beginn definiert. Und anhand der Feststellung auf der zweiten Seite des papers, dass F3 eine Primzahl ist, folgt sofort die richtige Default-Klammerung, denn sequentiell geklammert wäre F3 = 65 und keine Primzahl. -- Ralfkannenberg (Diskussion) 00:04, 26. Okt. 2017 (CEST)Beantworten

Operator vs Operation[Quelltext bearbeiten]

Unter "rechtsassoziative Operatoren" wird mit der verschachtelten Potenzschreibweise ein "Beispiel" ohne Operatoren aufgeführt… Wenn keine Einwände bestehen, werde ich den Artikel bald geringfügig umformulieren, sodass er sich auch auf andere Darstellungen von Operationen bezieht als nur die Darstellungen mithilfe von Operatoren.

Nebenwirkung[Quelltext bearbeiten]

Lieber @Maweki:. Schön wäre, wenn Du auch im Artikel Wirkung (Informatik) zu dem Begriff Nebenwirkung etwas sagen würdest. --Nomen4Omen (Diskussion) 19:41, 3. Aug. 2019 (CEST)Beantworten

Auswertungsreihenfolge[Quelltext bearbeiten]

Es geht nicht um Auswertungsreihenfolgen. Operatorassoziativität hat ausschließlich mit Syntax zu tun, also: welcher Syntaxbaum ist gemeint? Wie ein Ausdruck mit einem bestimmten Syntaxbaum auszuwerten ist, ist unabhängig davon, wie der Baum zustande kam. Präzendenzen und Assoziativitäten sind lediglich Konventionen zum Sparen von Klammern. Vielleicht mal ein Beispiel bzgl. Syntax vs. Auswertung in C: a() || (b() || c()) und (a() || b()) || c() ergeben am Ende semantisch das gleiche, selbst mit Nebeneffekten. Es ist keinesfalls so, dass der erste Ausdruck so ausgewertet wird, dass "zuerst b() || c() ausgewertet" wird. --Daniel5Ko (Diskussion) 10:15, 18. Aug. 2022 (CEST)Beantworten

Tut mir ganz schrecklich leid: Worauf es letztlich ankommt, ist die Auswertungsreihenfolge. Klar, erklärt man dem Compiler die Auswertungsreihenfolge, die man möchte, über eine Syntax, die er und wir verstehen. Aber sie ist nur ein Mittel zum Zweck.
Nebenbei: ich kann mir nicht vorstellen, dass Du den Lesern erklären willst, wie welcher Baum zustande kommt. Was er wirklich wissen will, ist, was er hinschreiben muss, um eine gewünschte Auswertungsreihenfolge zu erzielen.
Und IMHO bringen die getätigten Formulierungen das gut genug heraus.
(Die || in Deinem neuen Beispiel sind doch meines Wissens ausdrücklich so, dass es KEINE Reihenfolge gibt. Und ob semantisch wirklich das Gleiche rauskommt, kann der Compiler nicht sehen – und vllt nicht einmal der Programmierer.) --Nomen4Omen (Diskussion) 12:00, 18. Aug. 2022 (CEST)Beantworten
Nein, wichtig ist nicht, die richtige Auswertungsreihenfolge zu erhalten, sondern den Ausdruck, den man meint.
Beispiel: Wenn - links-assoziativ ist, kann man a-b-c schreiben statt (a-b)-c. Meint man aber a-(b-c), kann man die Klammern nicht weglassen. Das ist der Kern.
Um Auswertungsreihenfolgen geht es nicht, denn es handelt sich ja um zwei verschiedene Ausdrücke, die in welcher Reihenfolge auch immer ausgewertet werden.
Kevin Buzzard schreibt etwa in https://xenaproject.wordpress.com/2021/01/24/formalising-mathematics-workshop-1/
[...] This is because the → symbol in Lean is right associative, which is just a fancy way of saying that if you see P → Q → R it means P → (Q → R).
Wer's akademischer mag: In https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.157.7899&rep=rep1&type=pdf schreiben Ulf Norell et al
However, typically one wants to combine operators into larger expressions, and then it is important to specify if and how they can be combined. How should an expression like
if b ∧ n + n == n ! then n else ( n + n - n )
be parsed, for instance? The traditional way to disambiguate such expressions is to use precedence and associativity (Aho et al. 1986; Aasa 1995), [...]
Es ist und bleibt eine syntaktische Konvention. Man sollte diesen Fakt nicht extrem verwässern, nur damit man etwas besser verständliches bekommt. Was hilft leicht verständlicher Unsinn?
Ach so, und noch zum ||-Beispiel: Wie || ausgewertet wird, ist im C-Standard festgelegt: Erst wird zuerst der linke Operand ausgewertet, und dann, je nach Ergebnis, möglicherweise der rechte. Da || damit assoziativ ist (auch unter Berücksichtigung von Nebenwirkungen), führen beide genannten Ausdrücke im wesentlichen zur Sequenz: 1. a() aufrufen, 2. Falls Ergebnis davon 0, b() aufrufen, 3. Falls Ergebnis davon wiederum 0, c() aufrufen. Das erste nicht-0-Ergebnis ist der Wert des Ausdrucks.
Jedenfalls wäre es falsch, im Fall a() || (b() || c()) zuallererst den Teilterm (b() || c()) auszuwerten, obwohl die Klammerung das ja anscheinend nahelegt, wenn man in "Auswertungsreihenfolgen" denkt.
--Daniel5Ko (Diskussion) 17:09, 18. Aug. 2022 (CEST)Beantworten
Lieber Daniel5Ko, wozu Du "meinen" sagst ("den Ausdruck, den man meint"), das ist natürlich NICHT irgendeine Klammersetzung (sondern das, was dahintersteht). Ich habe geschrieben "Daniel5Ko", wo 4 Klammern und ein | drinsind; die "meine" ich nicht wirklich. Wenn ich sie weglasse, kommt zwar was Anderes heraus, und trotzdem ist es NICHT diese Zeichenkette, was ich "meine". --Nomen4Omen (Diskussion) 17:46, 18. Aug. 2022 (CEST)Beantworten
Ach, es geht darum "was dahintersteht"? Das ist doch der Syntaxbaum (und keine Auswertungsreihenfolge)!
Im Übrigen hilft vielleicht ein Blick auf den englischsprachigen Schwesterartikel, um zu verstehen, dass es überhaupt nicht nötig (und ggf. irreführend) ist, von "Auswertungsreihenfolgen" zu sprechen.
Auch wichtig: wenn man sich mal ein ganz kleines Wenig mit Logik oder Programmiersprachen oder ähnlichem beschäftigt hat, wird man bemerkt haben, dass die natürlichen Darstellungen von Formeln, Termen, Programmen usw., die man praktisch manipulieren will, Baumform haben. Die Übersetzung von Zeichenfolgen in Bäume (Parsen) oder umgekehrt (Pretty-Printing) sind das, worum es hier im Wesentlichen geht. Semantischer Kram (wie etwa "Auswertung") ist ganz ganz weit entfernt.
--Daniel5Ko (Diskussion) 18:04, 18. Aug. 2022 (CEST)Beantworten
Lieber Daniel5Ko, ich habe gerade bei einer speziellen Operation nachzuprüfen gehabt, ob sie sich assoziativ verhält und ggfls in welcher Weise. Dazu braucht's fraglos die Auswertungsreihenfolge – mit Syntax ist zu dem Zeitpunkt tote Hose. Insofern schneidest du dem (fragenden, suchenden) Leser etwas sehr Wichtiges weg. Es sei denn, du schickst ihn an einen anderen ganz ganz weit entfernten Artikel (was bisher nicht geschieht), denn, wie du sagst: »Semantischer Kram (wie etwa "Auswertung") ist ganz ganz weit entfernt.«
Aber vorher musst du UNBEDINGT in der Einleitung den Teilsatz «hängt das Ergebnis der Auswertung eines Ausdrucks … ab» noch abändern.
Dennoch ist offensichtlich, dass der Tenor des Artikels ein vorwiegend syntaktischer ist: (engerer, weiterer Sinn, links-, rechts-)assoziativität. Für mich ist das kein Widerspruch ergänzt sich sogar (s. o.). Für dich, der »sich mal ein ganz kleines Wenig mit Logik oder Programmiersprachen oder ähnlichem beschäftigt hat«, ist das ein Abfall vom rechten syntaktischen Glauben und verdammenswürdige, irre(-führende) Ketzerei, die mit den allerschlimmsten Höllenqualen zu bestrafen ist.
Aber du hast dich ja ein ganz großes Viel mit Logik oder Programmiersprachen oder ähnlichem beschäftigt. Deshalb!
enwiki hat's leichter mit dem Begriff precedence, den's sowohl als Syntax wie Rangigkeit gibt. Haben wir da was Ähnliches?
--Nomen4Omen (Diskussion) 17:35, 21. Aug. 2022 (CEST)Beantworten
Mehr Quatsch 'rausgeschmissen. Nun zufrieden? --Daniel5Ko (Diskussion) 03:42, 13. Okt. 2022 (CEST)Beantworten