Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Los dialectos ECMAScript y su implementación en los navegadores

535 views

Published on

ECMAScript el estándar del popular lenguaje de scripting en los navegadores web, JavaScript (JS).

Published in: Technology
  • Be the first to comment

Los dialectos ECMAScript y su implementación en los navegadores

  1. 1. Por: Héctor Garduño Real Máster en Dirección e Ingeniería de Sitios Web Computación en el Cliente Web 10 de enero de 2015 Página 1 de 9 Los dialectos ECMAScript y su implementación en los navegadores INTRODUCCIÓN ECMAScript es al día de hoy uno de los principales y más importantes lenguaje de scipting que es multiplataforma e independiente de cualquier tecnología o empresa, lo que le brinda una considera- ble ventaja frente a otros lenguajes. Fue tomado como norma, por lo que se han creado otros len- guajes a partir de ECMAScript con diferentes fines, el caso más difundido es en el cliente a través de los navegadores web para crear contenido dinámico en las páginas web y dotarles la posibilidad de interactuar con el usuario. Este estudio brinda un panorama general sobre ECMAScript, sus diferentes dialectos y las principales implementaciones que se han hecho para poder interpretar y ejecutar este tipo de lengua- je del lado del cliente, es decir, en los navegadores web. 1. ECMAScript ECMAScript es una “especificación de lenguaje de scripting”, es decir, un estándar que define las características que debe cumplir un lenguaje de programación que sea capaz de interpretar y proce- sar scripts1 , es decir, un lenguaje de programación interpretado, el cual se caracteriza por ser impe- rativo, estructurado, dinámico, funcional y con orientación a objetos2 . Para entender un poco más sobre ECMAScript es necesario retornar en la historia y resaltar los hechos más relevantes. En aquel entonces, antes de que apareciera el primer lenguaje con estas ca- racterísticas, la potencia de las computadoras era poca y la velocidad de conexión de Internet muy limitada, de modo que cuando un cliente enviaba información (por ejemplo al rellenar un formula- rio) al servidor, este último tenía que hacer validaciones para comprobar si los datos eran correctos, sin embargo resultaba muy común que el usuario se equivocara, por lo cual se tenían que hacer múltiples intentos previos enviando datos incorrectos al servidor antes de lograr un envío exitoso, de manera tal que el servidor terminaba sobrecargándose y el usuario desesperado ante la lentitud de la velocidad y tener que repetir el proceso. Esta fue una de las razones por las que se ve la nece- sidad de implementar un lenguaje de programación en el cliente, el cual ayudara a disminuir la car- ga de trabajo en el servidor haciendo procesamiento de información en el mismo cliente y con ello disminuyendo también el tráfico de red. 1 Un script es un archivo almacenado en formato de texto plano que contiene un conjunto de órdenes para realizar diversas tareas como combinar componentes, interactuar con el Sistema Operativo o con el usuario. 2 Para entender los diferentes paradigmas de programación consulte el libro “Introducción a la programación. Teoría y práctica” de Jesús Javier Rodríguez en sus páginas 4-6, o la página web http://es.wikipedia.org/wiki/Paradigma_de_programación
  2. 2. Por: Héctor Garduño Real Máster en Dirección e Ingeniería de Sitios Web Computación en el Cliente Web 10 de enero de 2015 Página 2 de 9 Así pues, el primer lenguaje en aparecer con las características de la especificación EC- MAScript fue un lenguaje inventado por Brendan Eich para el navegador web Netscape Navigator 2.002 en diciembre de 1995 que originalmente fue llamado Mocha y que posteriormente sería de- nominado LiveScript. Entonces este lenguaje comenzó a popularizarse y diversas empresas trataron de imitar y copiar el lenguaje, como el caso de Microsoft, que en 1996 lanza el lenguaje JScript para su navegador Internet Explorer 3.0, de pronto comenzó a darse una guerra de navegadores, cada uno ejecutando su propia versión de lenguaje scripting. Fue por esta razón que Netscape Communications decide aliarse con Sun Microsystem con la finalidad de desarrollar un nuevo y mejor lenguaje, el cual llamaron JavaScript y que continuaron mejorando hasta que en noviembre de 1996 proponen JavaScript 1.1 para que fuera adoptado como estándar. El organismo ECMA (European Computer Manufacturers Association) decide crear un comité para estandarizarlo (to- mando también como referencia JScript) y hacerlo independiente de toda plataforma y empresa, hasta que en junio de 1997 publican el estándar ECMA-262 definiéndolo como ECMAScript. A su vez, ECMA envía la especificación a ISO/IEC JTC 1 que bajo un procedimiento rápido de adopción es aprobado en abril de 1998 bajo la denominación ISO/IEC 16262. Para adecuarse al estándar internacional, ECMA vuelve a redactar las especificaciones y en junio del mismo año publica la segunda versión de ECMAScript (Ecma International, 2011) (Wikipedia, 2014). Es hasta diciembre de 1999 que se publica la tercera versión de la especificación, la cual fue es- tandarizada internacionalmente como ISO/IEC 16262:2002. Sin llegar a realizar la publicación de la cuarta versión, dan a conocer ECMA-262 5ta edición que es inmediatamente revisada y estanda- rizada internacionalmente como ISO/IEC 16262:2011, y para apegarse a ella, ECMA publica en junio de 2011 ECMA-262 versión 5.1, que es más estricta pues se apega completamente a la terce- ra versión de la norma internacional (Ecma International, 2011). La versión 5.1 es la más actual, sin embargo ya se está trabajando en la sexta versión bajo el nombre “Harmony” o “ES.next” 3 que está muy próxima a publicarse, de hecho, algunos navegado- res web ya incorporan características que tendrá esta versión4 . Además de la sexta versión que está próxima a publicarse, también se está comenzando a elaborar la séptima versión de ECMA-262 y además se propone un ciclo de lanzamiento de dos años (Ecma International, 2014). 2. Los dialectos ECMAScript Cada que una organización realiza una implementación del estándar ECMAScript se le conoce co- mo “dialecto”. Cada empresa suele adaptar ECMAScript a sus necesidades y con los fines que me- jor crea convenientes creando un dialecto nuevo, y aunque pueden parecerse bastante entre sí, tie- nen diferencias sustanciales, ya que las características que no se apegan al estándar tendrán proble- 3 Se pueden consultar las nuevas características y su nivel de adopción de las próximas versiones de EC- MAScript en la página http://kangax.github.io/compat-table/es5/ 4 En el siguiente enlace se puede observar el nivel de adopción de ECMAScript 6 en Firefox) https://developer.mozilla.org/en- US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_6_support_in_Mozilla
  3. 3. Por: Héctor Garduño Real Máster en Dirección e Ingeniería de Sitios Web Computación en el Cliente Web 10 de enero de 2015 Página 3 de 9 mas de compatibilidad con los motores de ejecución de las aplicaciones que intenten interpretarlos, por lo que una instrucción podría por ejemplo funcionar en un navegador web pero no en otro. Entre las tres implementaciones principales que se conocen de ECMAScript se encuentran los dialectos JavaScript, JScript y ActionScript. JavaScript es el dialecto más usado en las páginas web el cual sirve para añadir interacción y funcionalidad a las mismas. JScript por su parte es usado principalmente para la creación de páginas en ASP y que ha evolucionado a lo que hoy se conoce como JScript .NET. Y en cuanto a ActionScript, es una implementación hecha específicamente para Flash (Sikos, 2011, págs. 230-231). Hay otras implementaciones para usos específicos por lo que no se apegan enteramente al es- tándar ECMAScript o añaden más características, tal es el caso de ExtendScript que es un lenguaje que creó Adobe Systems para usar con los productos de su Creative Suite (Adobe Systems), o tam- bién DMDScript (conocido como DScript) que es una implementación especialmente adaptada para ser usada en el lenguaje de programación “D” y en “C++” (Digital Mars, 2012). De igual manera han surgido diferentes sub-implementaciones como es el caso de Ejscript que es una implementación basada en JavaScript para ser usado en aplicaciones embebidas como por ejemplo dispositivos móviles o incluso servidores web (EmbedThis). Así mismo, se han creado otro tipo de lenguajes que se escriben en su propia sintaxis pero que requieren compilarse, y al hacerlo se traducen a algún dialecto ECMAScript siendo el más usado JavaScript. Existen gran variedad de implementaciones de este tipo, entre ellos se pueden mencio- nar algunos como TypeScript, CoffeeScript, Dart, Brython, Objetive-J, o CRIScript, sin embargo este tipo de lenguajes no son tema de estudio de este trabajo por lo que no serán abordados. 2.1. Breve descripción de JavaScript El dialecto o lenguaje JavaScript (a veces abreviado como JS) es un lenguaje interpretado, muy conocido por ser usado en navegadores web para visualizar páginas web, aunque también se ha popularizado por su uso en otros entornos sin navegador como por ejemplo node.js o CoucchDB. JavaScript es un lenguaje multi-paradigma, dinámico, basado en prototipos, con soporte de estilos de programación funcional, orientado a objetos e imperativo (Hirsch, 2015). Su sintaxis es similar a los lenguajes Java y C, por lo que la mayoría de la sintaxis funciona de forma parecida, sin embargo difiere en que tiene objetos que se crean en tiempo de ejecución a los cuales se les añaden métodos y propiedades, y una vez construido un objeto, éste puede usarse co- mo modelo base o prototipo para crear objetos similares. Así pues, JavaScript puede funcionar tanto como lenguaje procedimental como lenguaje orientado a objetos (Perrier, 2014). El uso más común que se le da a JavaScript es incrustar instrucciones en páginas HTML para ampliar los usos de las páginas web, por ejemplo, entre otras cosas lo que se puede hacer es:  Enviar y recibir datos del servidor para cargar el nuevo contenido sin recargar la página.  Lograr efectos de animaciones con elementos de la página.  Crear contenido interactivo guiado por el usuario, por ejemplo un juego.
  4. 4. Por: Héctor Garduño Real Máster en Dirección e Ingeniería de Sitios Web Computación en el Cliente Web 10 de enero de 2015 Página 4 de 9  Validar información antes de enviarla al servidor. La última versión es JavaScript 1.8.5 la cual se apega completamente a ECMAScript versión 5 y ya que es mantenido por Mozilla es la que se encuentra disponible para todos sus proyectos incluido Firefox desde su versión 4, que fue lanzada en 2011. JavaScript Engines Para interpretar y ejecutar JavaScript están disponibles diversos “motores JavaScript”, el primer y más antiguo motor fue el creado por Brendan Eich llamado SpiderMonkey que cumple con EC- MA-262 edición 5 y está desarrollado en C/C++ (del cual se han hecho versiones optimizadas tales como TraceMonkey, jägerMonkey e IonMonkey), de este motor se hizo otra versión llamada Rhino que fue desarrollado en Java pero que cumple hasta la tercera versión del estándar. También hay otros motores como V8 de Google escrito en C++ y que puede ejecutarse standalone o embebido en una aplicación. Por otro lado JavaScriptCore (también conocido como SquirrelFish o Nitro) es el motor que usan algunos navegadores basados en WebKit; y Carakan que es el motor usado en Ope- ra (Perrier, 2014). 2.2. Breve descripción de JScript JScript es el dialecto del estándar ECMAScript creado por Microsoft para su navegador Internet Explorer (IE) y que soporta active scripting (mejor conocido como ActiveX Scripting), es decir, soporta el uso de tecnologías creadas para Windows, por lo que permite ser usado en las páginas web ASP (Active Server Pages), también soporta una compilación condicional, con lo que se permi- te ejecutar código selectivamente en bloques de comentarios. Estás características adicionales al estándar es lo que lo hace incompatible en otros navegadores web (Wikipedia, 2014). En el mismo Microsoft Developer Network se indica que JScript no es una versión simplificada de otro lenguaje, pero sin embargo está limitado, y por ejemplo, no se pueden escribir aplicaciones standalone, es decir que funcionen independientemente, tampoco tiene soporte para la lectura o escritura de archivos, y los scripts no pueden ejecutarse sin la presencia de un intérprete específico como lo son Internet Explorer, ASP y Windows Script Host (Microsoft). La primera versión de JScript fue lanzada en 1996 para Internet Explorer 3.0 y la más reciente del 2011 que corresponde a JScript 9.0, la cual se basaba en ECMAScript 5.0 y fue incluida en IE 9. Aisladamente5 Microsoft estuvo trabajando en un nuevo dialecto, interrumpiendo el desarrollo de JScript 9.0 para dar continuidad al nuevo dialecto denominado JScript .NET, el cual también se le conoce como JScript 10.0 (aunque por las características dicho nombre sería incorrecto). La versión JScript .NET JScript .NET se caracteriza por compilar para .NET Framework y Common Language Runtime. Es un potente lenguaje pero que no tiene muchas de las características de JScript por lo que en mu- chos casos no se le podría considerar como un lenguaje de scripting, inclusive, es un auténtico len- 5 Fue a partir del lanzamiento de Visual Studio 2002 que JScript 7.0 fue incorporado, dos años antes de que pararan el desarrollo de JScript para pasar a JScript .NET.
  5. 5. Por: Héctor Garduño Real Máster en Dirección e Ingeniería de Sitios Web Computación en el Cliente Web 10 de enero de 2015 Página 5 de 9 guaje orientado a objetos que además se utiliza para aplicaciones que se ejecutan en el servidor (Microsoft). JScript Engines Ya que JScript es mantenido únicamente por Microsoft, la cantidad de motores JScript es me- nor. De hecho el único6 intérprete que se puede encontrar en las referencias es Chakra, desarrollado para Internet Explorer 9 y posteriores versiones del navegador, desde su implementación Chakra tenía la característica de ser bastante eficiente (en su versión de 32 bits), pues compila los scripts en modo “just in time”, para ello usa un núcleo diferente en el que se ejecuta el navegador e inclusive, si hay disponible una unidad gráfica de procesamiento (GPU) también la aprovecha, hoy en día aún sigue haciendo aceleración por hardware (Wikipedia, 2013). Existen otros intérpretes, como fue mencionado anteriormente, por ejemplo Windows Script Host y ASP, sin embargo no están dirigidos a navegadores web, por lo que no serán considerados en este documento. 3. Motores ECMAScript Un motor ECMAScript es una aplicación que interpreta el código fuente y ejecuta el script acorde a las instrucciones dadas. Los programas más comunes que incorporan estos motores son los navega- dores web, los cuales implementan una API7 pública que permite crear objetos que se reflejan en el DOM de una página, esa manipulación se hace por las instrucciones de los script a través del motor. A continuación se hace un resumen de los principales intérpretes usados en navegadores web y pos- teriormente se detallan los más relevantes (Wikipedia, 2015): Proyectos Activos:  SpiderMonkey: Fue el primer motor, el cual fue desarrollado para Netscape Navigator y que ahora es mantenido por Mozilla y es usado principalmente en Firefox.  V8: Desarrollado por Google y forma parte del navegador Chrome.  JavaScriptCore: Mejor conocido como “Nitro”, es desarrollador por Apple para Safari.  KJS: Desarrollado para el navegador web Konqueror de Linux bajo entorno KDE.  Chakra: Creado por Microsoft para su navegador Internet Explorer. Proyectos Inactivos:  Tamarin: Desarrollado para la máquina virtual ActionScript usada en Flash, pero en 2006 Adobe donó el proyecto a Mozilla con el fin de mejorar las próximas generaciones de Ja- vaScript y ActionScript.  Carakan: Creado por Opera Software para el navegador Opera, sin embargo en 2013 Ope- ra comenzó a usar V8, dejando de lado el desarrollo de Carakan. 6 Algunos consideran a Trident como un intérprete JScript, sin embargo Trident es el motor de renderizado, es decir de diseño, el cual se encarga de interpretar principalmente HTML, CSS y XML. 7 Del inglés Application Programming Interface, es un conjunto de funciones y procedimientos que son ofre- cidos en una librería para que otra aplicación pueda utilizarlos.
  6. 6. Por: Héctor Garduño Real Máster en Dirección e Ingeniería de Sitios Web Computación en el Cliente Web 10 de enero de 2015 Página 6 de 9  Futhark: Creado por Opera Software y antecesor de Carakan. Formaba parte del motor de diseño Presto que también fue desarrollado por Opera.  Narcissus: También creado por Brendan Eich (creador de SpiderMonkey), es un intérprete meta circular, ya que es un motor JavaScript escrito en lenguaje JavaScript. Puede usarse en Firefox con el plugin Zaphod.  Rhino: Es un motor escrito completamente en lenguaje Java, que se creó para Javagtor, una herramienta de Netscape, sin embargo en 1998 se canceló el proyecto y entonces fue dona- do a Mozilla quien ha continuado su desarrollo, aunque su última versión es del 2012. 3.1. SpiderMonkey Es el JavaScript Engine creado por Brendan Eich para el navegador Netscape Navigator, que poste- riormente pasaría a ser licenciado como open source y finalmente mantenido por Mozilla Founda- tion. SpiderMonkey está escrito en lenguaje C e incluye un compilador, intérprete, descompilador, recolector de basura y clases estandarizadas (Wikipedia, 2014). Usa el compilador TraceMonkey que permite una aceleración por hardware, el cual terminó siendo sustituido por JägerMonkey que ofrecí más mejoras, sin embargo, ante la imposibilidad de realizar ciertas optimizaciones, éste también fue remplazado por IonMonkey SpiderMonkey se apega a la versión 5.1 del estándar ECMAScript y a una gran cantidad de ca- racterísticas del ECMA-357 para interpretar XML (su soporte se interrumpió en 2013). La última versión de SpiderMonkey es la 31 aunque ya se está trabajando en la versión 38. 3.2. V8 Fue creado en Google por Lars Bak, el cual está escrito en lenguaje C++ para ser usado en el nave- gador Chrome y el navegador web de Android 2.2, y puede funcionar tanto standalone como inte- grado en una aplicación (Wikipedia, 2014). Este motor compila JavaScript a código máquina nativo, además tiene un recolector de basura que es incremental, un ensamblador que está basado en el ensamblador Strongtalk, al liberar su compilador Crankshaft logran mejoras de velocidad. V8 se apega a la versión 5.0 de ECMAScript y la última versión de V8 es la 3.29.59 de sep- tiembre de 2014. 3.3. KJS Es un motor escrito en lenguaje C++ que pertenece al proyecto KDE, siendo destinado para el na- vegador web Konqueror, del cual se basó JavaScriptCore para ser usado en Apple para el navega- dor Safari. La última versión de KJS es la 5.6.0 publicada en enero de 2015 (Wikipedia, 2014). 3.4. WebKit No es en sí mismo un motor, sino que es una completa plataforma que funciona como base para los navegadores Safari, Chrome, Opera, Epiphany, Maxthon, Midori, QupZilla, y otros más. Está basa- do en Konqueror del proyecto de KDE y es mantenido principalmente por Apple, Google y RIM.
  7. 7. Por: Héctor Garduño Real Máster en Dirección e Ingeniería de Sitios Web Computación en el Cliente Web 10 de enero de 2015 Página 7 de 9 Webkit incluye algunos frameworks entre los que se encontraban JavaScriptCore, el intérprete para JavaScript que está basado en KJS, pero que sin embargo desde 2008 el intérprete paso a ser SquirrelFish (abreviado como SFX o conocido como Nitro) que compila JavaScript a código má- quina y que por lo tanto acelerando la velocidad (Wikipedia, 2014). El nacimiento de WebKit se debe a que Apple indicó que los motores de renderizado KHTML y de JavaScript KJS permitían un desarrollo más fácil que otras tecnologías al tener un código pe- queño, muy limpio y compatible con las normas; así que decidieron portarlos a MacOS X usando para ello WebCore y JavaScriptCore. En 2010 se anunció WebKit2, rediseñado desde cero para generar un modelo de procesos divi- didos, donde el contenido de la web (JavaScript, HTML, diseño, etc.) se ejecuta cada uno en un proceso separado. En 2013 Google dejó WebKit para hacer una adaptación de éste al que llamó Blink y que man- tiene junto con Opera, Blink ha resultado en motores muy veloces tanto para diseño como para in- terpretar JavaScript. 4. ECMAScript en los navegadores web A continuación se muestra a manera de resumen las implementaciones que han tenido los principa- les navegadores web en sus motores para interpretar algún dialecto ECMAScript, el resumen es de manera general sin especificar plataformas o características más técnicas8 : Tabla 1. Comparativa de uso de Motores ECMAScript en los principales navegadores web Navegador web Versión / Fecha Motor para ECMAScript Mozilla Firefox 34.0 / Dic-2014 SpiderMonkey Google Chrome 39.0 / Dic-2014 V8 Opera 26.0 / Dic-2014 V8 Safari 08.0 / Oct-2014 Nitro (WebKit) Internet Explorer 11.0 / Sep-2014 Chakra Konqueror 4.14 / Oct-2014 Nitro (WebKit) Maxthon 04.4 / Dic-2014 Nitro (WebKit) Fuente: Recopilación propia También en la siguiente tabla se muestra el nivel de cumplimiento que tienen los diferentes na- vegadores web (solo se consideran las más recientes versiones) para las el actual estándar EC- MAScript, así como las futuras versiones9 : 8 Para conocer la lista de navegadores web existentes puede consultar los siguientes enlaces tanto para las versiones de escritorio como móviles: https://en.wikipedia.org/wiki/Web_browser_history https://en.wikipedia.org/wiki/Mobile_browser 9 Basado en los resultados de la tabla de compatibilidad de http://kangax.github.io/compat-table/es5/ el día 9 de enero de 2015.
  8. 8. Por: Héctor Garduño Real Máster en Dirección e Ingeniería de Sitios Web Computación en el Cliente Web 10 de enero de 2015 Página 8 de 9 Tabla 2. Nivel de apego a ECMAScript de los últimos y principales navegadores web FF21+ CH23+ IE10+ SF6+ OP15+ iOS8 KQ4.13 ECMAScript 5 100% 100% 100% 100% 100% 100% 92% FF36 CH40 IE11 SF8 OP27 iOS8 KQ4.14 ECMAScript 6 67% 35% 21% 22% 35% 22% 13% FF35 CH37 IE11 SF8 OP27 iOS8 KQ4.13 ECMAScript 7 63% 13% 0% 0% ND 0% 0% FF = Firefox CH = Chrome IE = Internet Explorer SF = Safari OP = Opera iOS = iOS KQ = Konqueror + = Y superiores FF35  Firefox versión 35 FF21+  Firefox versión 25 y superiores Fuente: Recopilación propia a partir de la tabla de Kangax (Kangax) Como se puede observar, al día de hoy los últimos navegadores se apegan al estándar EC- MA-262, sin embargo, para las futuras versiones, se puede notar que Mozilla es el que más trabaja en la adopción del estándar, seguido por Google. ACID3 es la tercera versión de la prueba de estándares para navegadores web, la cual se in- cluyó un grupo de pruebas para ECMAScript, el Bucket 6. Aunque los resultados tienen tiempo pues fue lanzada en 2008, pueden servir de referencia para analizar el nivel de compromiso de los navegadores. La siguiente tabla muestra los resultados de las pruebas ACID3 en el 2008, ya que actualmente todos los navegadores modernos aprueban el test y aún no han lanzado ACID4. Tabla 3.Resultados de ACID3 en 2008 Chrome Firefox Internet Explorer Opera 78/100 71/100 14/100 83/100 Fuente: http://www.cnet.com/news/chrome-tops-ie-firefox-in-acid3-test/ 5. Conclusión De acuerdo a las estadísticas globales de StatCounter, Chrome es el navegador con mayor adopción, seguido de Internet Explorer y Firefox, por lo cual los usuarios de la web no han tenido tan mala elección, por las siguientes razones:  Chrome es el segundo mejor calificado en compatibilidad con ECMAScript  Chrome usa el motor V8, que es bastante eficiente y compila JavaScript, el lenguaje más estandarizado que existe de ECMAScript. Ahora bien, la principal razón por la que se podría elegir uno y otro navegador sería:  Firefox una mayor compatibilidad con ECMAScript.  Opera es una alternativa a Chrome, ya que los desarrollos van de la mano.  Internet Explorer es el más rápido en procesar ECMAScript10 .  En cuanto a Safari, simplemente no es la mejor opción que existe. 10 Leer comparativa en http://www.muycomputer.com/2012/04/02/benchmark-navegadores-web-chrome-18- frente-al-resto
  9. 9. Por: Héctor Garduño Real Máster en Dirección e Ingeniería de Sitios Web Computación en el Cliente Web 10 de enero de 2015 Página 9 de 9 Referencias Bibliográficas Adobe Systems. (n.d.). Scripting Developer Center | Adobe Developer Connection. Retrieved Enero 9, 2015, from Adobe Developer Connection: http://www.adobe.com/devnet/scripting.html Digital Mars. (2012, Octubre 8). ECMAScript - Digital Mars. Retrieved from Digital Mars : http://www.digitalmars.com/dscript/ Ecma International. (2011, Junio). ECMAScript Language Specification - ECMA-262 Edition 5.1. Retrieved Enero 09, 2015, from Ecma International: http://www.ecma-international.org/ecma-262/5.1/ Ecma International. (2014, Diciembre 24). harmony:specification_drafts [ES Wiki]. Retrieved Enero 9, 2015, from Wiki - Ecma International: http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts EmbedThis. (n.d.). Ejscript Javascript Language. Retrieved Enero 9, 2015, from EmbedThis: https://embedthis.com/ejscript/ Hirsch, L. (2015, Enero 3). JavaScript | MDN. Retrieved Enero 9, 2015, from Mozilla Developer Network: https://developer.mozilla.org/es/docs/Web/JavaScript Kangax. (n.d.). Kangax projects. Retrieved Enero 9, 2015, from Stuff by Kangax: http://kangax.github.io/ LibrosWeb.es. (n.d.). 1.2. Breve historia (Introducción a JavaScript). Retrieved Enero 9, 2015, from LibrosWeb.es: http://librosweb.es/javascript/capitulo_1/breve_historia.html Microsoft. (n.d.). JScript. Retrieved Enero 9, 2015, from MSDN: http://msdn.microsoft.com/es- es/library/72bd815a.aspx Microsoft. (n.d.). JScript (ECMAScript3). Retrieved Enero 9, 2015, from MSDN: http://msdn.microsoft.com/en-us/library/hbxc2t98%28VS.85%29.aspx Perrier, J.-Y. (2014, Julio 3). Acerca de JavaScript - JavaScript | MDN. Retrieved Enero 9, 2015, from Mozilla Developer Network: https://developer.mozilla.org/es/docs/Web/JavaScript/Acerca_de_JavaScript Sikos, L. (2011). Web Standards: Mastering HTML5, CSS3, and XML. Apress. Wikipedia. (2013, Marzo 12). Chakra (intérprete de JScript) - Wikipedia, la enciclopedia libre. Retrieved Enero 9, 2015, from Wikipedia, la enciclopedia libre: https://es.wikipedia.org/wiki/Chakra_%28int%C3%A9rprete_de_JScript%29 Wikipedia. (2014, Diciembre 6). JavaScript - Wikipedia, la enciclopedia libre. Retrieved Enero 9, 2015, from Wikipedia, la enciclopedia libre: http://es.wikipedia.org/wiki/JavaScrip Wikipedia. (2014, Diciembre 31). JScript - Wikipedia, the free encyclopedia. Retrieved Enero 9, 2015, from Wikipedia, the free encyclopedia: https://en.wikipedia.org/wiki/JScript Wikipedia. (2014, Julio 10). KJS (software) - Wikipedia, the free encyclopedia. Retrieved Enero 9, 2015, from Wikipedia, the free encyclopedia: https://es.wikipedia.org/wiki/KJS Wikipedia. (2014, Noviembre 19). Script - Wikipedia, la enciclopedia libre. Retrieved Enero 09, 2015, from Wikipedia, la enciclopedia libre: http://es.wikipedia.org/wiki/Script Wikipedia. (2014, Octubre 24). SpiderMonkey (software) - Wikipedia, the free encyclopedia. Retrieved Enero 9, 2015, from Wikipedia, the free encyclopedia: https://en.wikipedia.org/wiki/SpiderMonkey_%28software%29 Wikipedia. (2014, Septiembre 14). V8 (JavaScript engine) - Wikipedia, the free encyclopedia. Retrieved Enero 9, 2015, from Wikipedia, the free encyclopedia: https://en.wikipedia.org/wiki/V8_%28JavaScript_engine%29 Wikipedia. (2014, Agosto 28). WebKit - Wikipedia, la enciclopedia libre. Retrieved Enero 9, 2015, from Wikipedia, la enciclopedia libre: https://es.wikipedia.org/wiki/WebKit Wikipedia. (2015, Enero 9). JavaScript engine - Wikipedia, the free encyclopedia. Retrieved Enero 9, 2015, from Wikipedia, the free encyclopedia: https://en.wikipedia.org/wiki/JavaScript_engine

×