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 Python Conference (PyCon) 2013 por Paul Tagliamonte. [4] Lisp permite operar en código como datos ( metaprogramación ), por lo que Hy puede usarse para escribir lenguajes específicos de dominio . [5]
Paradigma | Multi-paradigma : procedimental , funcional , orientado a objetos , meta , reflexivo , genérico |
---|---|
Familia | Ceceo |
Diseñada por | Paul Tagliamonte |
Desarrolladores | Equipo central |
Apareció por primera vez | 2013 |
Versión de vista previa | |
Alcance | léxico, opcionalmente dinámico [ cita requerida ] |
Plataforma | IA-32 , x86-64 |
SO | Multiplataforma |
Licencia | Estilo MIT |
Extensiones de nombre de archivo | .hy |
Sitio web | hylang |
Influenciado por | |
Lisp , Kawa , Clojure , Common Lisp |
Similar a las asignaciones de Kawa y Clojure en la máquina virtual Java (JVM), [6] Hy está destinado a operar como un front-end Lisp transparente para Python. [7] Permite que las bibliotecas de Python , incluida la biblioteca estándar , se importen y se acceda a ellas junto con el código Hy con un paso de compilación [nota 1] en el que ambos lenguajes se convierten en AST de Python. [nota 2] [8] [9] [10]
Código de ejemplo
De la documentación del idioma: [11]
=> ( imprime "¡Hy!" ) ¡Hy! => ( defn salutationsnm [ nombre ] ( print ( + "Hy" nombre "!" ))) => ( salutationsnm "YourName" ) ¡ Hy YourName!
Ver también
- Lisp común
- Clojure
- Kawa (implementación del esquema)
- CLPython
Notas
- ^ El término "compilado" puede aplicarse para expresar código Hy en el AST de Python o convertir ese AST en código de bytes, dependiendo este último del intérprete de Python específico utilizado y no de Hy.
- ^ Hy se prueba en Python 2.7, 3.4 a 3.6 y PyPy .
Referencias
- ^ a b "Hy 0.19.0" . GitHub.
- ^ 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 .
- ^ Danjou, Julien (2018). Serious Python: consejos de cinturón negro sobre implementación, escalabilidad, pruebas y más . San Francisco, CA: No Starch Press. págs. 145-149. ISBN 9781593278793. OCLC 1057729260 .
- ^ Tagliamonte, Paul (2 de abril de 2013). Charla relámpago PyCon (Speech). Conferencia de Python (PyCon). Santa Clara . Consultado el 2 de septiembre de 2014 .
- ^ Tagliamonte, Paul (11 de abril de 2014). Obtener Hy en Python: Cómo implementar un front-end Lisp para Python (Speech). PyCon . Montreal . Consultado el 2 de septiembre de 2014 .
- ^ Turto, Tuukka (14 de febrero de 2014). "La programación puede ser divertida con Hy" . Código abierto para ti . Consultado el 2 de septiembre de 2014 .
- ^ Edge, Jake (30 de abril de 2014). "Obtener Hy en Python" . LWN.net . Consultado el 2 de septiembre de 2014 .
- ^ "Documentación Hy" . hylang.org . Consultado el 3 de septiembre de 2014 .
- ^ Danjou, Julien (26 de marzo de 2014). "El AST" . La guía del pirata informático sobre Python . págs. 165-172.
- ^ Kitchin, John (31 de marzo de 2016). "Más sobre Hy y por qué creo que es un gran problema" . El Grupo de Investigación Kitchin . Universidad Carnegie Mellon . Consultado el 19 de septiembre de 2018 .
- ^ "Inicio rápido" . Hylang.org . 15 de mayo de 2018 . Consultado el 19 de septiembre de 2018 .
enlaces externos
- Página web oficial
- hy en GitHub
- Documentación
- Video de la charla PyCon 2014