Intermediate representation of code, more compact than an AST and typically executed by a virtual machine. Some language pipelines (e.g. Java) go through bytecode depending on configuration. In Ruby, YARV executes bytecode derived from the parsed AST.