Hy (programming language)

Hy
Hy logo – Cuddles the cuttlefish
ParadigmMulti-paradigm: procedural, functional, object-oriented, meta, reflective, generic
FamilyLisp
Designed byPaul Tagliamonte
DevelopersCore team
First appeared2013; 11 years ago (2013)
Stable release
1.0.0[1] Edit this on Wikidata / 22 September 2024; 56 days ago (22 September 2024)
Scopelexical, optionally dynamic[citation needed]
PlatformIA-32, x86-64
OSCross-platform
LicenseMIT-style
Filename extensions.hy
Websitehylang.org
Influenced by
Kawa, Clojure, Common Lisp

Hy is a dialect of the Lisp programming language designed to interact with Python by translating s-expressions into Python's abstract syntax tree (AST).[2][3] Hy was introduced at Python Conference (PyCon) 2013 by Paul Tagliamonte.[4] Lisp allows operating on code as data (metaprogramming), thus Hy can be used to write domain-specific languages.[5]

Similar to Kawa's and Clojure's mappings onto the Java virtual machine (JVM),[6][7] Hy is meant to operate as a transparent Lisp front-end for Python.[8] It allows Python libraries, including the standard library, to be imported and accessed alongside Hy code with a compiling[note 1] step where both languages are converted into Python's AST.[note 2][9][10][11]

  1. ^ "Hy 1.0.0, the Lisp dialect for Python, has been released · hylang hy · Discussion #2608". Retrieved 23 September 2024.
  2. ^ Jaworski, Michał; Ziadé, Tarek (2019). Expert Python programming (Third ed.). Birmingham, U.K.: Packt Publishing. p. 173. ISBN 978-1-78980-677-9. OCLC 1125343555.
  3. ^ Danjou, Julien (2018). Serious Python: black-belt advice on deployment, scalability, testing, and more. San Francisco, CA: No Starch Press. pp. 145–149. ISBN 9781593278793. OCLC 1057729260.
  4. ^ Tagliamonte, Paul (2 April 2013). PyCon lightning talk (Speech). Python Conference (PyCon). Santa Clara. Retrieved 2 September 2014.
  5. ^ Tagliamonte, Paul (11 April 2014). Getting Hy on Python: How to implement a Lisp front-end to Python (Speech). PyCon. Montreal. Retrieved 2 September 2014.
  6. ^ Turto, Tuukka (14 February 2014). "Programming Can Be Fun with Hy". Open Source For You. Retrieved 2 September 2014.
  7. ^ Watson, Mark (2020). A Lisp Programmer Living in Python-Land: The Hy Programming Language (PDF). LeanBooks.
  8. ^ Edge, Jake (30 April 2014). "Getting Hy on Python". LWN.net. Retrieved 2 September 2014.
  9. ^ "Hy Documentation". hylang.org. Retrieved 3 September 2014.
  10. ^ Danjou, Julien (26 March 2014). "The AST". The Hacker's Guide to Python. pp. 165–172.
  11. ^ Kitchin, John (31 March 2016). "More on Hy and why I think it is a big deal". The Kitchin Research Group. Carnegie Mellon University. Retrieved 19 September 2018.


Cite error: There are <ref group=note> tags on this page, but the references will not show without a {{reflist|group=note}} template (see the help page).