Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

¿Cómo funciona el JavaScript Engine?

3/13
Recursos

Cuando se escribe código en JavaScript, es necesario transformarlo en código que entienda el computador, este código es denominado Machine Code o código de máquina. El motor del navegador es el encargado de crear Machine Code a partir de instrucciones escritas en JavaScript.

Cada navegador tiene su propio motor, sin embargo, el que más impacto ha tenido sobre el lenguaje, es Engine V8 desarrollado por Google y que lo encuentras en navegadores como Google Chrome y Microsoft Edge. Engine V8 también es el motor utilizado por Node.js para trabajar con JavaScript del lado del servidor.

Qué es y cómo funciona JIT compiler

El proceso en el que el motor V8 transforma código JavaScript en Machine Code se denomina Just in Time Compiler o JIT compiler.

Proceso que realiza el motor de JavaScript

Contribución creada por Andrés Guano.

Aportes 79

Preguntas 13

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

JavaScript Engine: Es el motor de JS, siempre corre en el navegador.
Su función es interpretar el código JavaScript y convertirlo a Machine Code para que la máquina pueda entenderlo.

  • Just in time compiler: Es la compilación en tiempo real que sucede en el proceso del Engine.

Estaría muy bueno un curso sobre la creación de compiladores y lenguajes formales, hay un mexicano llamado Enrique Zamudio (@chochosmx) el cual trabajó en un lenguaje para la JVM que después sirvió de inspiración para Kotlin 🤓

V8 es el motor de código abierto de alto rendimiento de JavaScript y WebAssembly de Google, escrito en C ++. Se usa en Chrome y en Node.js, entre otros.

Los lenguajes de alto nivel son los que podemos interpretar rápidamente como programadores y los de bajo nivel son los que las maquinas pueden interpretar rápidamente

Lenguajes de alto nivel = Java, Javascript, php
Lenguajes de bajo nivel = binario (lenguaje maquina) o Ensamblador

Recomiendo mucho el Curso Profesional de JavaScript donde explican un poco el esquema de V8, es increíble porque este compilador tiene una especie de Inteligencia Artificial que es capaz de detectar la frecuencia en la que la ejecución de un código es muy similar y V8 optimiza ese código ^^

JavaScript Engine se conoce como el motor de javaScript ya que su trabajo principal es transpilar tu codigo de JavaScript a código maquina (ceros y unos) que podra leer tu computadora

El motor JS V8

Un breve resumen de las clases espero que les sirva
Aquí dejo un video por si quieren profundizar Link
Una vez que Chrome recibe el código o los scripts javascript en la página web, el motor JS V8 comienza a analizarlo. Primero, analizará parcialmente el código comprobando errores de sintaxis. Si no encuentra ninguno, comienza a leer el código de arriba a abajo. Su objetivo final es convertir el código javascript en código de máquina que la computadora pueda entender. Pero antes de comprender qué hace exactamente con el código, debemos comprender el entorno en el que se analiza.

Event Loop

Tarea asignada para mover del Tas Queue al Stack, Solo si el Stack esta vacío

Memory Heap (Montón)

  • Donde se almacena los valores de las variables y las funciones
  • Se destina un espacio en memoria para las variables.
  • La información en el memory heap, No se guarda de manera lineal

EL MONTÓN

El primer contenedor en el entorno, que también forma parte del motor V8 JS Engine, se denomina “montón de memoria”. A medida que el motor JS V8 encuentra variables y declaraciones de funciones en el código, las almacena en el montón .

Call Stack (Pila) = El ultimo que entra es el primero en salir

  • Como se mandan a llamar las variables y las funciones
  • Las tareas en el callstack se apilan de abajo hacia arriba.
  • Se llaman de la última que mandamos a llamar hacia abajo
  • En la base de la pila reposa el Global Object
  • Si una función llama a otra, la pone encima de la pila.
  • Se ejecuta una tarea a la vez (sincronía)
  • Una vez que se van ejecutando las tareas se van retirando de la pila
  • Al ejecutar todas las tareas se retira el Global object.

LA PILA

El segundo contenedor en el entorno se denomina “pila de llamadas”. También es parte del motor JS V8. Cuando JS Engine encuentra un elemento procesable, como una llamada a función, lo agrega a la pila .

Task Queue (Cola) = El primer que entra es el primero en salir

Cola de tareas, se maneja la concurrencia, se agregan las tareas que ya están listas para pasar el stack (Pila). El stack debe de esta vacío

MicroTask Queue (Micro Tareas)

Las promesas tienen otra forma de ejecutarse y una prioridad superior

Web APIs

JavaScript del lado del cliente: setTimeout, XMLHttpRequest, File reader, DOM

Node: fs, https

Garbage Collection

limpia la memoria de los datos no utilizados para no sobrecargarla y seguir trabajando sin problemas.

El motor de JavaScript, (JavaScript Engine) es quien se encarga de interpretar el código de JavaScript, y lo traduce a machine code para que nuesta computadora lo entienda en su lenguaje.

A este proceso se lo conoce como Jusst in time compiler:

Notas de la clase:

  • Se traduce como el motor de JavaScript el cual siempre corre en el navegador.

  • Al programar una lista de tarea e ingresar al navegador la computadora realizara las tareas programadas.

  • Programaremos en un archivo con lenguaje JS ( un archivo JS)

  • La computadora entiende el machine code ( lenguaje máquina) .

  • El motor de JavaScript funciona como interprete, se va encargar de convertir el archivo JS, lo traduce al lenguaje machine code.

  • Este proceso se conoce como Just in time compiler (compilación en tiempo real).

Resumen:

  • JS engine existe en el navegador y es el interprete que toma el código de JS (lenguaje de alto nivel) y lo transforma en code machine ( lenguaje de bajo nivel, lenguaje maquina).

  • Este proceso se le conoce como Just In Time Compiler

RESUMEN

Este es el motor de JavaScript y se encuentra en el navegador.

Si tenemos una lista de tarea para programas y eso lo haremos en JavaScript y este código tiene que llegar hasta nuestra computadora y nuestra computadora que solo entiende código binario, entonces la computadora no puede entender nuestro código de forma directa. Este código tiene que ser interpretado para que la computadora lo entienda y es ahi donde el motor de JavaScript nos va a ayudar. Este funciona como un interprete intermedio, donde lee nuestro código y se lo comunica a nuestra computadora. Este proceso es importante y es llamado “Just in time compiler”.

JavaScript Engine

JavaScript Engine (motor de JavaScript). Básicamente es el encargado de que tu código escrito en JavaScript pueda ser interpretado por la computadora, ya que esta no entiende JavaScript como tal.

JavaScript Engine realiza lo siguiente:

  1. El escáner: Es el código consumido en una secuencia de caracteres Unicode que se decodifican a partir de una secuencia de unidades de código UTF-16.
  2. Tokens: Bloques creados a partir de tu código y que hacen referencia a que estás escribiendo.
  3. Parser y pre-parser: El parser maneja el código que se necesita de inmediato. El pre-parser maneja el código que se puede usar más adelante. Ambos identifican diferentes tipos de errores.
  4. AST: A partir de los nodos que genera el parser, se crea el AST. Un árbol que representa tu código sintácticamente.
  5. Interprete: El intérprete recorre el AST y genera byte code basado en la información que contiene.
  6. Profiler y compiler: El profiler monitorea y mira el código para optimizarlo. El compiler optimiza ese código y genera machine code.

El proceso de interpretar el lenguaje para la maquina se llama Just in time compiler

Estoy leyendo a muchos decir que el engine v8 de Google compila de JavaScript a Machine Code y eso está mal. En la clase se dice que este compila de v8 a Bytecode.

Antes de esto jamás me había cuestionado como es que el navegador de hecho entiendo lo que le estamos mandando por código. Ya que yo ya sabia que las computadoras entienden el código maquina, pero pensé que en lenguajes de alto nivel, como en el caso de JS, eso no aplicaba

resumen:
Javascript Engine: es el motor de Js que corre en el navegador.

Explicacion: tienes una lista de tareas para programar y que cuando entren a tu navegador tu computador haga cierta cosas. Es decir tiene que enviar un archivo al navegaredor cual debe comunicarse con el computador. Pero el computador solo entiende **machine code ,**mientras que tu codigo es Js y no lo va a entender.

Es aqui donde el motor de Js va a ser el encargado de interpretar el codigo y poder comunicarlo a la computado, es decir el motor recibe el codigo lo interpreta y envia el resultado en codigo de maquina al computado. Este procesa es muy importante y se llama Just in time compiler(compilacion en tiempo real).

el motor de JS su función es interpretar el código JavaScript y convertirlo a Machine Code para que la máquina pueda entenderlo.

JS Engine entiende el lenguaje JS y lo interpreta para la maquina

¿Se puede entender en JavaScript Engine como el compilador de JavaScript incorporado en tu browser?

🚗 ¿Cómo funciona el JavaScript Engine?

<h4>Apuntes</h4>
  • Corre todo el tiempo en el navegador
  • Lista de tareas
  • Necesitamos enviar código JS a nuestro ordenador
    • Directamente el ordenador no entiende el código JS
  • Es ahi donde el motor de JS nos ayuda
    • Funciona como un interprete
    • Esta en el navegador
  • Traduce el código ⇒ Just In Time Compiler

RESUMEN: El Engine de JavaScript es el encargado de poder traducir el código JS a código maquina. Pudiendo usar una estrategia Just In Time Compiler

Mi aporte para esta clase:

JS Engine es el motor de JS

Su forma de operar o funcionar es recibir el codigo que creamos en JS > interpretarlo para que el computador sepa lo que queremos decir > luego se lo pasa al computador en un lenguaje comprensible para él como lo es el machine code o lenguaje de máquina.

En otras palabras, Javascript Engine es el mediador entre Lo que queremos decir, hacer, pedir en JS a nuestro PC en nuestro navegador y lo que el pc finalmente entiende luego de esa interpretación.

El proceso de compilar en tiempo real es denominado con el acrónimo** JIT** o en inglés Just in time Compiler, compilador en tiempo real.

Diego De Granda, es muy bueno explicando, ME GUSTA MUCHO LAS CLASES CON EL.

JAVASCRIPT ENGINE (IMAGEN 3)

- Es el motor de javascript, siempre corre en el navegador
- Es un interprete entre el codigo generado en tu JS y el navegador (IMAGEN 3) tambien es llamado:
    -  Just in time compiler

El motor de js, el aquello que interpreta el código JS y lo convierte en maquina (binario) 1001001 para que lo pueda entender.
JIT es el proceso de compilación en donde el motor v8 coge el código de JS lo compila pero solo cuando es necesario no antes del tiempo de ejecución .

El motor V8 interpreta el código escrito en JavaScript y lo pasa a un código binario ( machine code), para poder ser ejecutado por el procesador.

En resumen,
Imagina que tú trabajas en una pequeña empresa de desarrollo web. Tu amigo Marcos, un frontend, desea que le pases el código para que el avance durante toda la noche.
De hecho,tienes una hoja de papel en el cual está escrito código de javaScript, para esta analogía, en chino. Sin emabrgo, Marcos solo entiende Ingles. Por lo tanto, debes traducir el código en chino a ingles. Esto es lo que hace el MOTOR de Javascript. Traduce tu código a binario pues es el´único lenguaje que conoce…

*Proximamente existirán computadoras cuánticas, imagina como será el nuevo paradigma de programación…

https://www.youtube.com/watch?v=xckH5s3UuX4

Les recomiendo este video.

(‘Esta en ingles’)

De JavaScript a machine code.

JS Engine toma todo lo que escribiste en tu archivo index.js y lo interpreta a Machine Code, que es código binario el cual es el que entiende el computador. De esta manera existe una buena comunicación para mostrar todo lo que creaste en tu desarrollo web.

https://platzi.com/clases/1098-ingenieria/6565-como-funciona-realmente-un-sitio-web/

en este vídeo de Fundamentos de Ingeniería de Software se explica como a través del navegador se logran los procesos en la computadora.

Un motor de JavaScript toma el código fuente, lo transforma en una estructura entendible para la máquina, lo optimiza, lo ejecuta, y gestiona la memoria utilizada. Los motores modernos, como V8, utilizan técnicas avanzadas como la compilación JIT para mejorar el rendimiento de JavaScript, lo que permite que el lenguaje se ejecute con gran eficiencia en navegadores y entornos como Node.js.

Algunos dicen que lenguaje máquina y bitcode son diferentes…pero yo lo entiendo como igual. Si no estoy en lo correcto serían amables en explicarme la diferencia. Gracias.

Los engines de JS agarran este código y lo transforman a código máquina. :3

Se podria decir V8 es el motor o interprete de JavaScript a Codigo de maquina (Codigo binario) ya que por si solo el navegador no puede entender el codigo de JS

Excelente

JS Engine

Es el motor de JS

Machine Code es el código de computadora que se debe interpretar gracias al motor de JS al traducirlo (Just in time compiler).

esta es una clase interesante donde repite palabras y repite y a la final no dijo nada

“Justo a tiempo” (just-in-time)
Esta es la parte de compilación de nuestro código, es decir, es el momento en el que se hace toda la traducción de tu código de manera que la máquina pueda entender tus instrucciones o las interacciones.

Motores
Los motores son esas programas que se encargan de convertir código de alto nivel (JavaScript, Python, C) a código de bajo nivel (Machine Code, Bytecode). Cada navegador tiene su propio motor para compilar e interpretar JavaScript:

  • V8 Engine (Google Chrome), el cual también es motor de Node.js (En este nos basaremos para la explicación).

  • Spider Monkey (Mozilla Firefox).
    Chakra (Microsoft Edge).
    JavaScriptCore (Apple Safari).

https://dev.to/johncardenasp/como-funciona-el-motor-de-javascript-jfb

Es el motor de JS, siempre corre en el navegador.
funciona como un interprete intermedio y traduce el código JavaScript a Machine Code para que la máquina pueda entenderlo y ejecutar la lista de tareas que se necesitan

Basicamente JavaScript Engine solo traduce tu codigo a numeros binarios para que la computadora entienda?

Es imposible hacer cualquier curso con Diego si que te mande a hacer otros 20 más, es genial jajaja.

  • Cuando estamos trabajando con JavaScript y queremos que la computadora entienda las instrucciones que va a ejecutar, va a ocurrir un error, ya que la computadora no entiende JavaScript, entonces, tenemos que convertir a JavaScript a código binario, que es el lenguaje que entienden las computadoras. Por fortuna, no tenemos que realizar esto manualmente ya que el motor V8 de JavaScript hace esta tarea por nosotros, convirtiendo JavaScript en código binario.

  • JavaScript es un lenguaje interpretado, y compilado en tiempo real, esto significa que cuando el motor lo interpreta no tenemos que compilarlo previamente sino que compila el código al momento en que lo estamos ejecutando.

¿Cómo funciona el JavaScript Engine?

El motor de JavaScript traduce lo que hacemos en los archivos JS a un lenguage llamado “Code Machine” ó “Codigo Binario” mediante un proceso llamado “Just in time compiler” que es una compilación en tiempo real.!

¿Cómo funciona el JavaScript Engine?

Funciona como una lista de tareas que se pasa por medio de código al navegador

El motor de JavaScript en el navegador interpreta el código JS y lo pasa a Machine code para entregarlo a la computadora y de esta forma esta pueda hacer algo.

Este proceso de conoce como Just in time compiler

Es la compilación en tiempo real que sucede gracias al motor Engine V8

Resumen👨‍💻

El engine de js es un just in time compiler. Su trabajo es transformar el código legible para el humano a binario, o también llamado machine code, para que el computador pueda actuar y ejecutar la lista de tareas que establecimos en el archivo .js.

El código de Javscript es interpretado por el motor del navegador y transformado a lenguaje maquina para su ejecución, Javascrip is Just in time compiler.

Está muy interesante el tema del curso, la verdad que desconocía como funcionaba por dentro Js.

¿Cómo funciona el JavaScript Engine? (Motor de JavaScript)

Funciona como un interpreté entre mi código de JavaScript y la computadora (Machine Code).
Just in time compiler: Compilación en tiempo real a la hora de ejecutar código JavaScript.

Definición de Just in Time Compiler

js =>motor=>codigo binario =>computadora

Buena clase!

Super buena lectura, muchas gracias.

Genial!

Pues si es importante saber lo fundamentos de ingeniería de software.

Excelente clase.

Excelente

Super

me encanta

Hola, que curso sugiere en el min 0:35 , fundamentos de software de que? no entendi bien

en pocas palabras es el compilador?

Entendido

Increible trabajo en equipo del motor V8 y JS

Super 😃 😮

Compilación en tiempo de ejecución (Just-in-time compilation)

No sabía nada sobre JavaScript Engine, pero se vé genial

el mejor lenguaje

motor v8 el que corre en el navegador

Gracias…

AS WORKS THE JAVASCRIPT ENGINE

Javascript Engine es el motor de javascript y corre en el navegador

Tenemos que tener esto en cuenta cuando estamos trabajando en javascript como frontends

Recomendacion de curso fundamentos de ingenieria de software

Imagina que tienes una lista de tareas que tienes que programar y esta lista de tareas tiene que hacer que el navegador atraves del computador hagan ciertas cosas.

Esto lo vas a programar en javascript, pero al momento de que se envie y este archivo llegue a la computadora para comunicar con el navegador.

La computadora entiende Machine Code que son numeros binarios

La computadora no va a entender ese archivo de javascript.

Entonces es donde llega el motor de javascript el cual va a ayudarnos como un interprete para que la computadora pueda entender lo que estamos programando en js

A este proceso se le llama Just in time compiler es la compilación en tiempo real que sucede en el proceso del engine

  • JIT Compiler: Just In Time Compiler. Es la forma en cómo el motor de JS realiza la compilación de JS -> Machine Code y pueda ser interpretado por el computador.

f

Genial!