PyPy: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Etichetta: Link a pagina di disambiguazione |
|||
Riga 23:
L'interprete PyPy stesso è scritto in un sottoinsieme limitato di [[Python]] chiamato RPython (Restricted Python). RPython pone alcuni vincoli al linguaggio Python in modo tale che il tipo di una variabile possa essere dedotto in fase di compilazione.<ref>"It is a proper subset of Python, restricted in a way that enables easy analysis and efficient code generation", Ancona et al., 2007.</ref>
Il progetto PyPy ha sviluppato una toolchain che analizza il codice RPython e lo traduce in una forma di codice byte, che può essere ridotto in C. C'erano altri backend oltre a C: [[Java (linguaggio di programmazione)|Java]], [[CSharp]] e [[Javascript]] ma quelli soffrivano di bitrot e sono stati rimossi.<ref>{{cite book|title=Automate the Boring Stuff with Python|url=https://python.engineering/automate-the-boring-stuff-with-python/|author=Al Sweigar|date=2019|ISBN=978-1593279929|publisher=No Starch Press}}</ref> Quindi il logo ricorsivo di PyPy è un serpente che si ingoia poiché RPython è tradotto da un interprete Python. Il codice può anche essere eseguito non tradotto per test e analisi, il che fornisce un buon banco di prova per la ricerca sui linguaggi dinamici.
== Collegamenti esterni ==
|