# ⌛️ JIT Compiler
aka
dynamic translation or run-time compilations or just in time compilations or runtime systems or Lazy compilers
- compilation during the execution of program in 1 step
- In contrast to Ahead Of Time aka AOT compiler for C/C++, java etc. where compilation happens in 2 stages
- compile stage
- Run/execute stage
- More on compilers (opens new window)
- Bytecode, also termed portable code or p-code
- is a kind of IR
- efficient execution by software interpreter
- The name bytecode stems from instruction sets that have one-byte opcodes followed by optional parameters.
- Variables are expanded to memory references
- Runtime systems
- Typically the runtime system will have some responsibility for setting up and managing the stack and heap, and may include features such as garbage collection, threads or other dynamic features built into the language
- A programming language consists of a grammar/syntax plus an execution model (opens new window). The execution model specifies the behavior of elements of the language.
- For example, Operational Semantics (opens new window) is one method of specifying a language's execution model.
- In computing, a virtual machine (VM) is an emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized hardware, software, or a combination.
- Binary File - non-text file
# Resources
- http://slide.logan.tw/compiler-intro/#/ (opens new window)
- webkit-css-selector-jit-compiler (opens new window)
- firefox faster interpreter (opens new window)
- https://v8.dev/blog/launching-ignition-and-turbofan (opens new window)
libuv follows Reactor Pattern (opens new window)
- https://en.wikipedia.org/wiki/WHATWG (opens new window)
- formed when W3C got little lazy on browser and web technology
- The WHATWG was formed in response to the slow development of World Wide Web Consortium (W3C) Web standards and W3C's decision to abandon HTML in favor of XML-based technologies. ... This spurred a renewed attempt to allow the W3C and the WHATWG to work together on specifications.