Quali sono le differenze tra codice macchina, codice byte, codice oggetto e codice sorgente?
Codice macchina, codice oggetto e codice byte sono la stessa cosa. Sono tutti il livello più basso di codice "programma normale" che può essere eseguito da una macchina.
Ho notato che diverse risposte differenziano tra questi tre, questa differenza è spuria.
Una macchina virtuale non è fondamentalmente diversa da una macchina fisica, e qualsiasi macchina virtuale potrebbe essere sostituita con una fisica, e qualsiasi macchina esistente potrebbe avere una macchina virtuale creata per emularla.
Questa confusione può essere sorta perché il codice che gira sulla macchina virtuale Java è spesso chiamato byte code, ma era un termine preesistente che Sun ha scelto di adottare per il suo linguaggio a basso livello.
Dovrebbe essere notato che quando la JVM è stata creata inizialmente era destinata ad essere sostituita da una macchina fisica, questo non è mai successo per tutta una serie di ragioni, non ultimo perché la loro JVM si è rivelata essere molto buona e la creazione della macchina fisica sembrava essere molto costosa e la natura cross platform della JVM sembrava un punto di vendita.
Anche la maggior parte dei computer sono microcodificati, cioè c'è un livello di interpretazione tra il codice della macchina e le parti fisiche del processore, alcuni con nano codice che è codice che implementa il microcodice.
Il codice sorgente è diverso, è qualsiasi codice/linguaggio che viene tradotto in uno degli altri tre. Un pezzo di programma scritto in Python, Java o C sarebbe codice sorgente. Codice sorgente perché è ciò che viene passato in un compilatore o interprete, sorgente come sorgente di istruzioni tradotte da un compilatore per produrre il codice oggetto.
Articoli simili
- Qual è la differenza tra byte code e codice macchina e quali sono i suoi vantaggi?
- Come può il nuovo logo di Google essere solo 305 byte, mentre il suo vecchio logo è 14.000 byte? Artboard
- Byte a 10 bit: Non sarebbe GRANDE se l'onnipresente definizione di 'byte' significasse 10 bit invece di 8?
- Quali sono le differenze tra bytecode e codice macchina? Il bytecode è specifico solo per Java?