denotational-semantics

___ tag123javascriptengine ___ Für Fragen zur JavaScript-Engine-Entwicklung. Wenn Sie sich nur auf Probleme mit JavaScript-Code beziehen, verwenden Sie stattdessen das [javascript] -Tag. ___ qstnhdr ___ Was sind die Javascript-Interpreter-Engine-Semantiken von Gecko? ___ tag123javascript ___ JavaScript (nicht zu verwechseln mit Java) ist eine dynamische Sprache mit mehreren Paradigmen auf hoher Ebene, die sowohl für das clientseitige als auch für das serverseitige Scripting verwendet wird. Verwenden Sie dieses Tag für Fragen zu ECMAScript und seinen verschiedenen Dialekten / Implementierungen (außer ActionScript und Google-Apps-Script). ___ answer5689644 ___

JavaScript hat ein eifriges Auswertungsmodell (call by value), das im ECMA-Standard klar definiert ist. All diese Fragen können durch sorgfältiges Lesen des Standards gelöst werden. Zum Beispiel ist der Grund, warum das Ergebnis 11 oben und nicht 12 ist, in 11.13.2 des Standards klar dargelegt. o.n wird vor dem Aufruf von f () und nicht wie in Schritt 2 angegeben ausgewertet.

    
___ tag123formalsemantics ___ In der Programmiersprachentheorie ist die Semantik das Feld, das sich mit der rigorosen mathematischen Erforschung der Bedeutung von Programmiersprachen beschäftigt. Dies geschieht durch Auswertung der Bedeutung von syntaktisch legalen Strings, die durch eine spezifische Programmiersprache definiert sind, und zeigt die involvierte Berechnung. In einem solchen Fall, in dem die Auswertung von syntaktisch unzulässigen Strings wäre, wäre das Ergebnis eine Nicht-Berechnung. ___ tag123denotational semantics ___ Die Denotationssemantik ist ein Ansatz zur Formalisierung der Bedeutungen von Programmiersprachen, indem mathematische Objekte (sogenannte Denotationen) konstruiert werden, die die Bedeutungen von Ausdrücken aus den Sprachen beschreiben. Quelle: Wikipedia ___ qstntxt ___

Bearbeiten

In Anbetracht der Antwort Antwort unten bezüglich der Referenz ECMAScript-Sprachspezifikation - 11.13.2 Zusammengesetzte Zuweisung

Unter Berücksichtigung, warum diese,

%Vor%

sind NICHT gleich. Es gibt zeitliche semantische Probleme mit der Bewertung von links nach rechts (ref: ECMA spec. - Der Zusatzoperator ). Eine Konsequenz ist, dass der Operator %code% nicht notwendigerweise kommutativ ist.

Dies kann auch mit gesehen werden mit:

%Vor%

oder

%Vor%

Das faule Auswertungs-Paradigma, das von mir irrtümlich und unangemessen verwendet wird und dadurch das Problem verursacht, ist ebenfalls ein schlechtes Attribut meines persönlichen Modus Operandi.

Original Beitrag

Die folgenden Überlegungen wurden möglicherweise bereits angesprochen, obwohl dies nicht der Fall zu sein scheint. Wenn ja, könnten Links zu den Diskussionen bereitgestellt werden?

Die formale Denotations-Semantik der Gecko-Javascript-Laufzeit-Engine ist ein Rätsel. Empirische Tests sind anstrengend und können nicht erschöpfend sein.

  • Gibt es eine autorisierende Person? offizielle Spezifikation oder offiziell Referenz definiert genau wie Gecko interpretiert Javascript?

Die Referenz ECMAScript-Sprachspezifikation , scheint ungenügend zu sein, obwohl für die Erstellung solcher Skripte, wie

, Glaubwürdigkeit vorgesehen ist %Vor%

mit der konsequenten Bedeutung solcher Konstrukte beim Binden von Werten.

  • Gibt es ein definitives Paradigma? Beschreibung des Javascript-Codes Interpretation für Objekt und Instanzauswertung?

Dies würde die Konzepte von call durch (oder eher durch) von Bedarf, Wert, Referenz, Inferenz, Name, ... als relevant klarstellen oder nicht. Das, Javascript ist ein Prototyping-Interpreter, gibt einigen der folgenden Probleme implizite Bedeutung.

Was ist das erwartete Ergebnis von:

%Vor%

? Ist es einfach, die Ergebnisse (richtig!) Vorherzusagen?

Die Frage ist ein wenig rhetorisch, da sie speziell mit %code% s konstruiert wurde, um die subtilen Nuancen der Interpretation zu erzwingen und zu betonen. Kann die Bewertung dieses Skripts (und der nachfolgenden Seite) mit der ECMAScript-Sprachspezifikation oder ein anderes Dokument, auf das bereits hingewiesen wurde?

(Nebenbei, überlegen Sie sich:

%Vor%

zeigt Folgendes an:

%Vor%

wobei die Teilauswertungen von %code% NICHT zu %code% s analog sind!

und das Folgende ist weniger exotisch als die Verwendung von o.n:

%Vor%

zeigt Folgendes an:

%Vor%

)

Unter Berücksichtigung des folgenden Skripts:

%Vor%

Die Gecko-Engine gibt aus:

%Vor%     
___
1
Antwort

Was sind die Javascript-Interpreter-Engine-Semantiken von Gecko?

Bearbeiten In Anbetracht der Antwort Antwort unten bezüglich der Referenz ECMAScript-Sprachspezifikation - 11.13.2 Zusammengesetzte Zuweisung Unter Berücksichtigung, warum diese, %Vor% sind NICHT gleich. Es gibt zeitliche semantisc...
16.04.2011, 20:03