stem/CS/Code Types.md
2023-05-20 01:33:56 +01:00

1.2 KiB

Machine Code

  • Machine language instructions
  • Directly control CPU
  • Strictly numerical
  • Lowest-level representation of a compiled or assembled program
    • Lowest-level visible to programmer
    • Internally microcode might used
  • Hardware dependent
  • Higher-level languages translated to machine code
    • Compilers, assemblers and linkers
    • Not for interpreted code
      • Interpreter runs machine code
  • Assembly is effectively human readable machine code
    • Has mnemonics for opcodes etc

Microcode

  • Layer between CPU hardware and instruction set architecture
  • Normally written during design phase
    • Deployed to ROM or PLA
      • Programmable logic array
  • Machine code often has some backward compatibility
    • Microcode is circuit specific

Byte Code

Portable Code

  • Efficient execution by interpreter
  • Compact numeric codes, constants and references
    • Encode compiler output following analysis and validation
  • Can be further compiled
    • JIT
  • Typically passed to VM
    • Java, Python

Object Code

  • Product of compiler
  • Sequence of statements
    • Machine code
    • Intermediate
      • RTL
  • Linked to form executable
    • Object code portion of machine code not yet linked