User Tools

Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
interpreter [2013/05/13 21:40]
will
interpreter [2015/06/01 16:08] (current)
Line 1: Line 1:
-====== ​Tailspin ​Javascript Interpreter ====== +====== Javascript Interpreter ====== 
-The Tailspin ​Javascript interpreter used to run the algorithms on this wiki is a fully reversible, standards-compliant,​ meta-circular Javascript interpreter. As well as running in the browser and allowing algorithms to be visualised, it can run code both forwards and backwards in time. It is written in [[continuation passing style]], so that the interpretation can be paused and controlled by the user.+The Javascript interpreter used to run the algorithms on this wiki is a fully reversible, standards-compliant,​ meta-circular Javascript interpreter. As well as running in the browser and allowing algorithms to be visualised, it can run code both forwards and backwards in time. It is written in [[continuation passing style]], so that the interpretation can be paused and controlled by the user.
  
-It is based on the [[https://​github.com/​mozilla/​narcissus|Narcissus]] ​Javascript interpreter.+Based on [[https://​github.com/​mozilla/​narcissus|Narcissus]].
  
 ===== ES5.1 Compliance ===== ===== ES5.1 Compliance =====
-Tailspin ​currently passes 99% of the [[http://​test262.ecmascript.org|ECMAScript Language test262]] test suite. ​(The majority of the failures are currently due to "use strict"​ code.)+It currently passes 99% of the [[http://​test262.ecmascript.org|ECMAScript Language test262]] test suite.
  
 +===== Reversibility =====
 +And can optionally be run in a reversible mode, where state changes are recorded so that they can be undone. This allows much more informative visualisations and interaction,​ at the cost of running slightly slower and a bit more memory.
  
-^                                             ^ Passes ^  Total ^        % ^ +In reversible mode almost all state changes can be undone. Some state changes such as ''​Object.freeze()''​ and ''​Object.seal()''​ are not reversible at the moment ​as the interpreter uses the browser'​s Javascript objects ​and the effects of these functions are permanent.
-| Ch06 Notational Conventions ​                ​| ​     1 |      1 |  100.00% | +
-| Ch07 Lexical Conventions ​                   |    696 |    715 |   ​97.34% | +
-| Ch08 Types                                  |    182 |    182 |  100.00% | +
-| Ch09 Type Conversion and Testing ​           |    128 |    128 |  100.00% | +
-| Ch10 Executable Code and Execution Contexts |    353 |    377 |   ​93.63% | +
-| Ch11 Expressions ​                           |   1315 |   1320 |   ​99.62% | +
-| Ch12 Statements ​                            ​| ​   517 |    521 |   ​99.23% | +
-| Ch13 Function Definition ​                   |    223 |    230 |   ​96.96% | +
-| Ch14 Program ​                               |     24 |     24 |  100.00% | +
-| Ch15 Standard Built-in ECMAScript Objects ​  ​| ​  8052 |   8074 |   ​99.73% | +
-+
-| Totals ​                                     |  11491 |  11572 |   ​99.30% | +
- +
-===== Reversibility ===== +
-Tailspin is able to run in a reversible mode, where state changes ​are recorded so that they can be undoneas well as a non-revsersible mode which is slightly faster ​and more memory efficient.+
  
-In reversible mode almost all state changes can be undone. Some state changes such as ''​Object.freeze()''​ and ''​Object.seal()''​ are not reversible at the moment as Tailspin uses the browsers Javascript objects and the effect of these functions is permanent. 
interpreter.1368506430.txt.gz · Last modified: 2015/02/02 08:24 (external edit)