¿Dónde puedo obtener más información sobre la función de traducción de PyPy?

StackOverflow https://stackoverflow.com/questions/27567

  •  09-06-2019
  •  | 
  •  

Pregunta

Me ha resultado difícil entender la traducción de PyPy.Parece algo absolutamente revolucionario simplemente leyendo la descripción, sin embargo, me resulta difícil encontrar buena documentación sobre cómo traducir un fragmento de código del mundo real a algo como LLVM.¿Existe tal cosa?La documentación oficial de PyPy simplemente pasa por alto la funcionalidad, en lugar de proporcionar algo que pueda probar yo mismo.

¿Fue útil?

Solución

Este documento parece entrar en bastantes detalles (y creo que una descripción completa está fuera del alcance de una respuesta de stackoverflow):

La idea general de traducir de un idioma a otro no es particularmente revolucionaria, pero recientemente ha ido ganando popularidad y aplicabilidad en aplicaciones del "mundo real". GWT hace esto con Java (generando Javascript) y también existe una biblioteca para traducir Haskell a varios otros idiomas (llamada YHC)

Otros consejos

Si quieres algunos ejemplos prácticos, Introducción a PyPy El documento tiene una sección titulada "Probar el traductor".

El traductor PyPy, en general, no está destinado a un uso más público.Lo usamos para traducir nuestro propio intérprete de Python (incluidos JIT y GCS, ambos escritos en Rpython, este subconjunto restringido de Python).La idea es que con buenos JIT y GC, podrá acelerar incluso sin saber o usar la cadena de herramientas de traducción de Pypy (y, lo que es más importante, sin restringirse a Rpython).

Saludos, Fijal

¿Está buscando una traducción específica de Python, o simplemente la pregunta general "¿cómo se compila un código en código de bytes"?Si este último es tu caso, consulta el tutorial LLVM.Especialmente encuentro interesante el capítulo dos, que te enseña a escribir un compilador para tu propio idioma.

Parece algo absolutamente revolucionario con solo leer la descripción,

Hasta donde yo sé, PyPy es novedoso en el sentido de que es el primer sistema diseñado expresamente para implementar idiomas.Existen otras herramientas para ayudar con gran parte del front-end, como los generadores de analizadores, o para el back-end, como la generación de código, pero no existían muchas herramientas para conectar las dos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top