User Tools

Site Tools


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 [2014/07/21 00:13]
Line 1: Line 1:
-====== Interpreter ====== +====== ​Tailspin Javascript ​Interpreter ====== 
-The Javascript interpreter used to run the algorithms on this wiki is a highly modified versions of the [[https://​​mozilla/​narcissus|Narcissus]] 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.
-It currently passes ​almost ​99% of the [[http://​|ECMAScript Language test262] test suite, ​ignoring "​strict"​ code.+See [[http://​​tailspin/​|Tailspin]] on GitHub. 
 +===== ES5.1 Compliance ===== 
 +Tailspin ​currently passes 99% of the [[http://​|ECMAScript Language test262]] test suite
 +===== Reversibility ===== 
 +Tailspin can optionally be run in a reversible modewhere 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 Tailspin uses the browser'​s Javascript objects and the effects of these functions are permanent.
interpreter.txt · Last modified: 2015/06/01 16:08 (external edit)