JavaScript Engine y Runtime
JS Engine. El programa principal de un solo hilo que convierte el codigo de JavaScript, en un ejecutable de optimizacion constante.
Cada JS Engine esta compuesto por
- CallStack -> Execution Context
- Heap -> Memoria, donde los objetos son guardados
Todos los JS Engine modernos utilizan compilacion Just-In-Time, por tanto, podemos definir el ciclo de ejecucion de codigo en JavaScript mediante los siguientes pasos:
- Entra codigo a un JS Engine
- Parseo. Es convertido linea por linea a un Abstract Syntax Tree (AST), en donde se almacenan todas las keywords relevantes del lenguaje.
- Compilacion. Es convertido a codigo maquina
- Ejecucion. Se ejecuta el codigo maquina hacia el callstack.
- Optimizacion. Debido a que se busca rapidez en la web, ocurre un ciclo de recompilacion y reejecucion para optimizar el codigo mejor optimizado sin detener la ejecucion.