User Tools

Site Tools


Differences

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

Link to this comparison view

Next revision
Previous revision
interpreter [2012/10/16 08:38]
will created
interpreter [2015/06/01 16:08] (current)
Line 1: Line 1:
-====== Interpreter ====== +====== ​Javascript ​Interpreter ====== 
-The Javascript interpreter used to run the algorithms on this wiki is a highly modified versions of the [[https://​github.com/​mozilla/​narcissus|Narcissus]] ​Javascript ​interpreter.+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. 
 + 
 +Based on [[https://​github.com/​mozilla/​narcissus|Narcissus]]
 + 
 +===== ES5.1 Compliance ===== 
 +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. 
 + 
 +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.
  
-It currently passes almost 99% of the [[http://​test262.ecmascript.org|ECMAScript Language test262] test suite, ignoring "​strict"​ code. 
interpreter.1350401929.txt.gz · Last modified: 2015/02/02 08:24 (external edit)