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

8

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 + 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 eval 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 ra NICHT zu o.n 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%     
Ekim 16.04.2011, 20:03
quelle

1 Antwort

1

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.

    
chuckj 16.04.2011 21:10
quelle