In ALUs, the opcode is directly applied to circuitry via an input signal bus.
In contrast, in CPUs, the opcode is the portion of a machine language instruction that specifies the operation to be performed.
[citation needed] Opcodes can be found in so-called byte codes and other representations intended for a software interpreter rather than a hardware device.
These software-based instruction sets often employ slightly higher-level data types and operations than most hardware counterparts but are nevertheless constructed along similar lines.
Examples include the byte code found in Java class files, which are then interpreted by the Java Virtual Machine (JVM), the byte code used in GNU Emacs for compiled Lisp code, NET Common Intermediate Language (CIL), and many others.