Hy (lenguaje de programación)

Dialecto del lenguaje de programación Lisp diseñado para interactuar con Python
Hola
Hy logo – Acaricia a la sepia
ParadigmaMultiparadigma : procedimental , funcional , orientado a objetos , meta , reflexivo , genérico
FamiliaCeceo
Diseñado porPablo Tagliamonte
DesarrolladoresEquipo central
Apareció por primera vez2013 ; hace 11 años ( 2013 )
Versión estable
1.0.0 [1]  / 22 de septiembre de 2024 ; hace 51 días ( 22 de septiembre de 2024 )
Alcanceléxico, opcionalmente dinámico [ cita requerida ]
PlataformaIA-32 , x86-64
Sistema operativoMultiplataforma
LicenciaEstilo MIT
Extensiones de nombre de archivo.por favor
Sitio webes.hylang.org
Influenciado por
Kawa , Clojure y Common Lisp

Hy es un dialecto del lenguaje de programación Lisp diseñado para interactuar con Python traduciendo expresiones-s al árbol de sintaxis abstracta (AST) de Python. [2] [3] Hy fue presentado en la Conferencia Python (PyCon) 2013 por Paul Tagliamonte. [4] Lisp permite operar sobre código como datos ( metaprogramación ), por lo que Hy se puede utilizar para escribir lenguajes específicos del dominio . [5]

Similar a las asignaciones de Kawa y Clojure a la máquina virtual Java (JVM), [6] [7] Hy está diseñado para funcionar como un front-end Lisp transparente para Python. [8] Permite que las bibliotecas de Python , incluida la biblioteca estándar , se importen y accedan junto con el código Hy con un paso de compilación [nota 1] donde ambos lenguajes se convierten al AST de Python. [nota 2] [9] [10] [11]

Código de ejemplo

De la documentación del lenguaje: [12]

=> ( print "¡Hola!" ) ¡Hola! => ( defn salutationsnm [ nombre ] ( print ( + "Hola " nombre "!" ))) => ( salutationsnm "TuNombre" ) ​​¡Hola TuNombre!            

Véase también

Notas

  1. ^ El término "compilado" puede aplicarse a la expresión de código Hy en el AST de Python o a la conversión de ese AST en código de bytes, siendo esto último dependiente del intérprete de Python específico utilizado y no de Hy.
  2. ^ Hy se prueba en Python 2.7, 3.4 a 3.6 y PyPy .

Referencias

  1. ^ "Se ha publicado Hy 1.0.0, el dialecto Lisp para Python · hylang hy · Discusión n.° 2608" . Consultado el 23 de septiembre de 2024 .
  2. ^ Jaworski, Michał; Ziadé, Tarek (2019). Programación experta en Python (Tercera ed.). Birmingham, Reino Unido: Packt Publishing. pag. 173.ISBN 978-1-78980-677-9.OCLC 1125343555  .
  3. ^ Danjou, Julien (2018). Serious Python: consejos de cinturón negro sobre implementación, escalabilidad, pruebas y más . San Francisco, CA: No Starch Press. pp. 145–149. ISBN 9781593278793.OCLC 1057729260  .
  4. ^ Tagliamonte, Paul (2 de abril de 2013). Charla relámpago en PyCon (Discurso). Conferencia Python (PyCon). Santa Clara . Consultado el 2 de septiembre de 2014 .
  5. ^ Tagliamonte, Paul (11 de abril de 2014). Getting Hy on Python: How to implement a Lisp front-end to Python (Discurso). PyCon . Montreal . Consultado el 2 de septiembre de 2014 .
  6. ^ Turto, Tuukka (14 de febrero de 2014). "Programar puede ser divertido con Hy". Código abierto para ti . Consultado el 2 de septiembre de 2014 .
  7. ^ Watson, Mark (2020). Un programador de Lisp que vive en Python-Land: el lenguaje de programación Hy (PDF) . LeanBooks.
  8. ^ Edge, Jake (30 de abril de 2014). "Getting Hy on Python". LWN.net . Consultado el 2 de septiembre de 2014 .
  9. ^ "Documentación Hy". hylang.org . Consultado el 3 de septiembre de 2014 .
  10. ^ Danjou, Julien (26 de marzo de 2014). "El AST". Guía del hacker para Python . págs. 165–172.
  11. ^ Kitchin, John (31 de marzo de 2016). "Más sobre Hy y por qué creo que es algo importante". The Kitchin Research Group . Carnegie Mellon University . Consultado el 19 de septiembre de 2018 .
  12. ^ "Quickstart". Hylang.org . 15 de mayo de 2018 . Consultado el 19 de septiembre de 2018 .
  • Sitio web oficial
  • hy en GitHub
  • Documentación
  • Vídeo de la charla de PyCon 2014
19581960196519701975198019851990199520002005201020152020
 LISP 1, 1.5, LISP 2 (abandonado)
 Maclisp
 Interlisp
 MDL
 Máquina Lisp Lisp
 Esquema R5RS R6RS R7RS pequeño
 NULO
 ZIL (lenguaje de implementación de Zork)
 Franz Lisp
 Ceceo común Norma ANSI
 El ceceo
 Esquema del MIT
 XLIP
 yo
 En Scheme
 Emacs Lisp
 AutoLISP
 PicoLisp
 Gambito
 EuLisp
 ISLISP
 OpenLisp
 Esquema PLT Raqueta
 nuevoLISP
 GNU Guile
 Visual LISP
 Clojure
 Arco
 LFE
 Hola
 Quialisp
Obtenido de "https://es.wikipedia.org/w/index.php?title=Hy_(lenguaje_de_programación)&oldid=1247300590"