CPython: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
LauBot (discussione | contributi)
m Bot: rimuovo parametro ridondante (valore uguale alla proprietà P571 su Wikidata)
m sistemazione fonti, smistamento lavoro sporco e fix vari
 
(6 versioni intermedie di 6 utenti non mostrate)
Riga 1:
{{Software
|Logo = Python logo and wordmark.svg
|Sviluppatore = [[Guido van Rossum]], sviluppatore Python core e comunità Python community supportati dalla [[Python Software Foundation]]
|UltimaVersione = 3.13.0
Riga 10 ⟶ 9:
|Lingua = [[Lingua inglese|Inglese]]
|SoftwareLibero = sì
|SitoWeb = {{URL|https://www.python.org/}}
|nome = CPython
|sviluppatore = Python core developers and the Python community, supported by the [[Python Software Foundation]]
Riga 16 ⟶ 15:
}}
 
'''CPython''' è l' [[implementazione di riferimento]] del linguaggio [[Python]]. Scritto in [[C (linguaggio di programmazione)|C]] e Python, CPython è l'implementazione predefinita e più utilizzata del linguaggio Python.
 
CPython può essere definito sia come [[Interprete (informatica)|interprete]] che come [[compilatore]]. Quando viene eseguito uno script Python, CPython effettua una prima fase di [[compilazione]] del [[codice sorgente]] in un formato intermedio chiamato [[bytecode]]. Questo bytecode è una rappresentazione del codice Python ottimizzata per l'esecuzione dalla Python Virtual Machine. Successivamente, CPython [[Interprete (informatica)|interpreta]] questo [[bytecode]] riga per riga e le esegue una alla volta.
 
== Progetto ==
Una caratteristica particolare di CPython è che utilizza [[Global Interpreter Lock|Global Interpreter Lock (GIL)]]'','' <ref>{{Cita web|url=https://docs.python.org/3/glossary.html#term-global-interpreter-lock|titolo=global interpreter lock in CPython|lingua=Ingleseen}}</ref> un meccanismo che permette l'esecuzione di un solo [[Thread (informatica)|thread]] Python alla volta su un singolo processore.<ref>{{Cita web|url=https://docs.python.org/3/c-api/init.html|titolo= |accesso=4 giugno 2020}}</ref> Questo non significa che il [[multithreading]] non abbia senso: ad esempio se il tuo codice è spesso in attesa di input/output, rilascia il GIL, permettendo ad altri thread di essere eseguiti.
 
Questa potrebbe essere la situazione tipica quando più thread servono client separati. Un thread potrebbe essere in attesa della risposta da un client, un altro potrebbe essere in attesa dell'esecuzione di una query [[Base di dati|al database]], mentre il terzo thread sta elaborando il codice Python.
Riga 42 ⟶ 41:
Altre piattaforme hanno implementazioni funzionanti, tra cui:<ref>{{Cita web|url=https://wiki.python.org/moin/PythonImplementations|titolo= |accesso=19 luglio 2012}}</ref>
 
=== Sistemi [[Unix-like]]: ===
* [[AIX (sistema operativo)|AIX]]
* [[Berkeley Software Distribution|BSD]]
Riga 57 ⟶ 56:
* [[Tru64]]
 
=== Sistemi dedicati ed embedded: ===
* [[Android (operating system)|Android]]
* [[IOS|Apple iOS]]
Riga 80 ⟶ 79:
* [[VxWorks]]
 
=== Altri: ===
* [[AROS]]
* [[OS/390]]
Riga 175 ⟶ 174:
CPython è una delle numerose [[Python|implementazioni Python]]. Esistono però alternative tra cui: [[Jython]], scritto in [[Java (linguaggio di programmazione)|Java]] per la [[Macchina virtuale Java|Java virtual machine]] (JVM); [[PyPy]], scritto in [[PyPy|RPython]] e tradotto in C; e [[IronPython]], scritto in [[C sharp|C#]] per la [[Common Language Infrastructure]].
 
Sono numerose anche le implementazioni sperimentali.<ref>{{Cita libro|nome=Alex|cognome=Martelli|titolo=Python in a Nutshell|url=https://archive.org/details/pythoninnutshell0000mart|edizione=2nd|anno=2006|editore=[[O'Reilly Media|O'Reilly]]|pp=5–7[https://archive.org/details/pythoninnutshell0000mart/page/n20 5]–7|ISBN=978-0-596-10046-9|linkautore1=Alex Martelli}}</ref>
 
== Note ==
<references/>
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
 
{{Portale|software libero}}