stem/CS/Code Types.md
Andy Pack 5f04cacd81 vault backup: 2023-12-27 09:30:39
Affected files:
.obsidian/workspace.json
Projects/Dev Options.md
Projects/Mixonomer.md
Projects/NoteCrawler.md
Projects/Selector.md
Projects/To Do App.md
STEM/CS/ABI.md
STEM/CS/Calling Conventions.md
STEM/CS/Code Types.md
STEM/CS/Compilers.md
STEM/CS/ISA.md
STEM/CS/Language Binding.md
STEM/CS/Languages/Assembly.md
STEM/CS/Languages/C++.md
STEM/CS/Languages/Javascript.md
STEM/CS/Languages/Python.md
STEM/CS/Languages/Rust.md
STEM/CS/Languages/dotNet.md
STEM/IOT/OS/Composition.md
2023-12-27 09:30:39 +00:00

1.3 KiB

tags
dev

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
  • Typically passed to VM

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