Hy

0

Hy est un dialecte du langage de programmation Lisp conçu pour interagir avec Python en traduisant les expressions s en arbre de syntaxe abstraite (AST) de Python. [3] [4] Hy a été présenté à la Python Conference (PyCon) 2013 par Paul Tagliamonte. [5] Lisp permet d’opérer sur le code en tant que données ( métaprogrammation ), ainsi Hy peut être utilisé pour écrire des langages spécifiques à un domaine . [6]

Hy

Hy Cuddles.png Logo Hy – Câline la seiche
Paradigme Multi-paradigme : procédural , fonctionnel , orienté objet , méta , réflexif , générique
Famille Zézayer
Conçu par Paul Tagliamonte
Développeurs Équipe de base
Première apparition 2013 ; il y a 9 ans ( 2013 )
Version stable 0.20.0 [1] Modifier ceci sur Wikidata / 25 janvier 2021 ; il y a 15 mois ( 25 janvier 2021 )
Version d’aperçu 1.0a4 [2] / 16 mars 2022 ; il y a 46 jours [2] ( 2022-03-16 )
Portée lexical, éventuellement dynamique [ citation nécessaire ]
Plateforme IA-32 , x86-64
SE Multiplateforme
Licence Style MIT
Extensions de nom de fichier .hy
Site Internet hylang .org
Influencé par
Kawa , Clojure , Lisp commun

Semblable aux mappages de Kawa et Clojure sur la machine virtuelle Java (JVM), [7] [8] Hy est censé fonctionner comme un frontal Lisp transparent pour Python. [9] Il permet aux bibliothèques Python , y compris la bibliothèque standard , d’être importées et accessibles avec le code Hy avec une étape de compilation [note 1] où les deux langages sont convertis en AST de Python. [remarque 2] [10] [11] [12]

Exemple de code

À partir de la documentation linguistique : [13]

=> ( imprimer “Hy !” ) Hy ! => ( defn salutationsnm [ nom ] ( print ( + “Hy ” name “!” ))) => ( salutationsnm “YourName” ) Hy YourName !

Voir également

  • Lisp commun
  • Clojure
  • Kawa (Mise en œuvre du schéma)
  • CLPython

Remarques

  1. ^ Le terme “compilé” peut s’appliquer à l’expression du code Hy dans l’AST de Python ou à la conversion de cet AST en bytecode, ce dernier dépendant de l’interpréteur Python spécifique utilisé et non de Hy.
  2. ^ Hy est testé sur Python 2.7, 3.4 à 3.6 et PyPy .

Références

  1. ^ “Version 0.20.0” . 25 janvier 2021 . Récupéré le 10 février 2021 .
  2. ^ un b “Hy 1.0a4” . GitHub.
  3. ^ Jaworski, Michał; Ziadé, Tarek (2019). Programmation experte en Python (troisième éd.). Birmingham, Royaume-Uni : Packt Publishing. p. 173. ISBN 978-1-78980-677-9. OCLC 1125343555 .
  4. ^ Danjou, Julien (2018). Serious Python : conseils de ceinture noire sur le déploiement, l’évolutivité, les tests, etc. San Francisco, Californie : Presse sans amidon. p. 145–149. ISBN 9781593278793. OCLC 1057729260 .
  5. ^ Tagliamonte, Paul (2 avril 2013). Discussion éclair PyCon (Discours). Conférence Python (PyCon). Sainte-Clara . Récupéré le 2 septembre 2014 .
  6. ^ Tagliamonte, Paul (11 avril 2014). Obtenir Hy sur Python : Comment implémenter une interface Lisp pour Python (Speech). PyCon . Montréal . Récupéré le 2 septembre 2014 .
  7. ^ Turto, Tuukka (14 février 2014). “La programmation peut être amusante avec Hy” . Open Source pour vous . Récupéré le 2 septembre 2014 .
  8. ^ Watson, Mark (2020). Un programmeur Lisp vivant en Python-Land: le langage de programmation Hy (PDF) . LeanBooks.
  9. ^ Bord, Jake (30 avril 2014). “Getting Hy sur Python” . LWN.net . Récupéré le 2 septembre 2014 .
  10. ^ “Hy Documentation” . hylang.org . Récupéré le 3 septembre 2014 .
  11. ^ Danjou, Julien (26 mars 2014). “L’AST” . Le guide du hacker sur Python . p. 165–172.
  12. ^ Kitchin, John (31 mars 2016). “Plus sur Hy et pourquoi je pense que c’est un gros problème” . Le groupe de recherche Kitchin . Université Carnegie-Mellon . Récupéré le 19 septembre 2018 .
  13. ^ “Démarrage rapide” . Hylang.org . 15 mai 2018 . Récupéré le 19 septembre 2018 .

Liens externes

  • Site officiel
  • hy sur GitHub
  • Documentation
  • Vidéo de la conférence PyCon 2014
Chronologie des dialectes Lisp

  • v
  • t
  • e
1955 1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 2015 2020
LISP 1, 1.5, LISP 2 (abandonné)
Maclisp
Interlisp
LMD
Lisp Machine Lisp
Schème R5RS R6RS R7RS petit
NÉANT
ZIL (Langage d’implémentation de Zork)
Franz Lisp
Lisp commun
Le Lisp
Programme MIT
J
Chez Scheme
Emacs LispComment
AutoLISP
PicoLisp
EuLisp
ILISISP
OpenLisp
Régime PLT Raquette
Ruse GNU
LISP visuel
Clojure
Arc
LFE
Hy
You might also like
Leave A Reply

Your email address will not be published.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More