Tamarin
Información general
Tipo de programa intérprete de JavaScript
Desarrollador Adobe Systems y Mozilla
Licencia MPL 1.1 / GPL 2.0 / LGPL 2.1
Estado actual Discontinuado
Información técnica
Programado en C++

Tamarin fue un proyecto de máquina virtual para ECMAScript desarrollado inicialmente por Adobe Systems en colaboración con Mozilla. Su objetivo era proporcionar un motor de ejecución de alto rendimiento basado en la máquina virtual utilizada en ActionScript, con la intención de integrarlo en el motor JavaScript SpiderMonkey como parte del desarrollo de ECMAScript.[1]

El proyecto fue anunciado en 2006 tras la liberación del código fuente de la ActionScript Virtual Machine (AVM2). Sin embargo, debido al abandono de la especificación ECMAScript y a cambios estratégicos dentro de Mozilla, Tamarin no llegó a integrarse oficialmente en SpiderMonkey y fue progresivamente abandonado.[2]

Historia

editar

En noviembre de 2006, Adobe anunció la liberación del código fuente de AVM2, la máquina virtual que ejecutaba ActionScript en Adobe Flash Player, bajo un esquema de trilicencia (MPL/GPL/LGPL).[3]

El plan inicial consistía en

  • Integrar Tamarin dentro de SpiderMonkey.
  • Implementar características avanzadas previstas para ECMAScript .
  • Incorporar compilación Just-In-Time (JIT) para mejorar el rendimiento.
  • Unificar el desarrollo de motores JavaScript entre Adobe y Mozilla.

Sin embargo, el desarrollo de ECMAScript generó desacuerdos en el comité ECMA International (TC39), lo que llevó a la cancelación de dicha especificación en favor de una evolución incremental que culminó en ECMAScript (2009) y, posteriormente, ECMAScript 2015.[4]

Como consecuencia, Mozilla optó por continuar el desarrollo independiente de SpiderMonkey, introduciendo sus propios compiladores JIT como TraceMonkey e IonMonkey.

Objetivos técnicos

editar

Entre los objetivos técnicos principales del proyecto se encontraban:

  • Integración del recolector de basura de Tamarin con SpiderMonkey.
  • Adaptación del compilador JIT a múltiples arquitecturas de hardware.
  • Implementación parcial de un compilador ECMAScript autoalojado (self-hosting).
  • Mejora significativa del rendimiento en aplicaciones web complejas.

Cancelación y legado

editar

Tamarin perdió relevancia tras el abandono de ECMAScript 4 y el avance independiente de los motores JavaScript modernos. Con la discontinuación oficial de Adobe Flash Player en 2020, el proyecto quedó definitivamente obsoleto.

Actualmente, Tamarin se considera un proyecto histórico dentro de la evolución de los motores JavaScript y del ecosistema ECMAScript.

Véase también

editar

Referencias

editar
  1. «Tamarin Project». www-archive.mozilla.org. Consultado el 18 de febrero de 2026. 
  2. Eich, Brendan (7 de noviembre de 2006). Mozilla Blog, ed. «Open Sourcing Tamarin» (en inglés). 
  3. Adobe Systems, ed. (7 de noviembre de 2006). «Adobe Open Sources Flex SDK and Tamarin Virtual Machine» (en inglés). 
  4. es-discuss, ed. (2008). «ES4 discussion terminated» (en inglés). 

Enlaces externos

editar

Proyectos relacionados

editar

Dos proyectos relacionados con Tamarin se anunciaron el 25 de julio de 2007 en el "Brendan Eich's keynote at The Ajax Experience West"; estos fueron IronMonkey y ScreamingMonkey.[1][2]

IronMonkey es un proyecto para mapear IronPython y IronRuby a Tamarin. IronMonkey está dirigido por Sanghyeon Seo.[3]

El objetivo de ScreamingMonkey es permitir a Tamarin ejecutarse dentro de otros navegadores, además de Mozilla, iniciando con Internet Explorer. CreamingMonkey está dirigido por Mark Hammond.[4]

Referencias

editar
  1. Brendan Eich. «New Projects». Brendan's Roadmap Updates. Archivado desde el original el 14 de noviembre de 2010. 
  2. John Resig. «The Browser Scripting Revolution». 
  3. «Tamarin:IronMonkey». wiki.mozilla.org. 
  4. «Tamarin:ScreamingMonkey». wiki.mozilla.org. 

Enlaces externos

editar

📚 Artikel Terkait di Wikipedia

LLVM

LLVM (anteriormente conocido como Low Level Virtual Machine, o Máquina Virtual de Bajo Nivel) es una infraestructura para desarrollar compiladores, escrita

Adobe Flash Player

de scripting ECMAScript, ActionScript Virtual Machine AVM2. AVM1 se conserva por compatibilidad. Lanzamiento de ActionScript 3 a través de AVM2. E4X,

Bytecode

RETURN_VALUE ActionScript se ejecuta en la máquina virtual de ActionScript (AVM), que forma parte de Flash Player y AIR. El código ActionScript se transforma

Adobe Flash

componentes relacionados con Flash. En 2006, ActionScript Virtual Machine 2 (AVM2) que implementa ActionScript 3 fue donado como fuente abierta a Mozilla

Haxe

bytecode para máquinas virtuales diferentes como las de Adobe Flash Player y Neko, y puede generar código fuente para ActionScript 3, JavaScript, e incluye

Arroba (símbolo)

arrayx[@88] se refiere a una matriz que comienza en el índice 88. En ActionScript es usado en el análisis de XML como un prefijo de cadena de texto para

Strategy (patrón de diseño)

StrategyInterface { public: virtual void execute() = 0; }; class ConcreteStrategyA: public StrategyInterface { public: virtual void execute() { cout << "Called

Spring Framework

Hispano Spring ActionScript Spring Batch The Spring Framework - Reference Documentation Archivado el 2 de noviembre de 2010 en Wayback Machine. Spring: The