Andy Pack
5f04cacd81
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
1.3 KiB
1.3 KiB
tags | |
---|---|
|
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
- Deployed to ROM or PLA
- 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
- 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