lettura facile

Python Virtual Machine

La Python Virtual Machine (PVM) è il motore al centro dell'interprete Python, che esegue il bytecode generato da un programma scritto in linguaggio Python.

A cosa serve? Quando esegui un programma Python, il codice sorgente Python viene prima compilato in bytecode e poi eseguito dalla Python Virtual Machine (PVM). In altre parole, non è il codice Python a essere eseguito direttamente, riga dopo riga dall'interprete, ma il codice compilato in bytecode. Questo processo di esecuzione del bytecode è anche noto come interpretazione del bytecode. E' un processo che avviene in automatico quando esegui il tuo codice Python, quindi non devi fare nulla. In questa lezione ti spiego soltanto cos'è e come funziona.

Quindi, Python non contiene solo un'interprete ma anche un compilatore in bytecode.

Perché Python converte il programma in bytecode?

Il bytecode è una rappresentazione di basso livello del tuo codice sorgente Python.

Pertanto, il bytecode è un codice ottimizzato e viene eseguito più velocemente rispetto alla classica esecuzione per interpretazione delle righe di un programma.

La Virtual Machine di Python è compresa nell'implementazione standard di Python, conosciuta come CPython, ed è scritta in linguaggio C. Quindi, è molto veloce e può essere compilata ed eseguita su molte piattaforme di hardware.

Un altro vantaggio della virtual machine PVM è che consente al linguaggio Python di essere un linguaggio di programmazione portabile.

Il bytecode non è un codice macchina nativo, cioè, non è specifico per una particolare piattaforma di hardware, ma è specifico per la Python Virtual Machine.

Puoi eseguire il bytecode di Python in qualsiasi implementazione della PVM, su qualsiasi sistema operativo che ha un interprete Python installato, indipendentemente dal tipo di hardware o sistema operativo.

In questo modo puoi eseguire indifferentemente lo stesso programma scritto in Python sia su una macchina con s.o. Windows che Linux o Mac.

Tuttavia, non considerare la PVM come una virtual machine vera e propria

Mi spiego meglio, la PVM è un concetto chiave nell'architettura di Python ma non è una "macchina virtuale" come quella utilizzata in Java o .NET.

Python non ha un ambiente runtime JIT (Just-In-Time) come Java o .NET

Quindi, la PVM non fornisce le stesse garanzie di sicurezza o isolamento come una vera e propria "macchina virtuale".




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin