پرش به محتوا

Hy ( زبان برنامه نویسی )

از ویکی‌پدیا، دانشنامهٔ آزاد
Hy
Hy logo - Cuddles the cuttlefish
پارادایم برنامه‌نویسیMulti-paradigm programming language: Procedural programming, Functional programming, Object-oriented programming ,Meta programming, Reflective programming, Generic programming
خانوادهLisp (programming language)|Lisp
طراحی شده توسطPaul Tagliamonte
توسعه‌دهندههاCore team
ظهوریافته در۲۰۱۳؛ ۱۱ سال پیش (۲۰۱۳-خطا: زمان نامعتبر}})
انتشار آزمایشی
1.0a4[۱] / ۱۶ مارس ۲۰۲۲؛ ۲ سال پیش (۲۰۲۲-16}})[۱]
دامنهlexical, optionally dynamic[نیازمند منبع]
بن‌سازه رایانشIA-32, x86-64
سیستم‌عاملCross-platform
پروانهMIT License|MIT-style
.hy
وبگاه
متأثر از
Kawa (Scheme implementation)|Kawa, Clojure, Common Lisp

Hy گویشی از زبان برنامه نویسی Lisp می باشد که به منظور تعامل با پایتون بوسیله ترجمه s-expressions به درخت نحو انتزاعی پایتون (AST) طراحی شده است. Hy در کنفرانس پایتون در سال 2013 توسط Paul Tagliamonte معرفی شد. Lisp این امکان را ایجاد می کند تا روی کد تحت عنوان داده عمل کند (متابرنامه نویسی)، به این ترتیب می شود از Hy به منظور نوشتن زبان های دامنه خاص استفاده کرد.


همانند نگاشت‌های Kawa و Clojure بر روی ماشین مجازی جاوا (JVM)، Hy به‌ عنوان یک Lisp front-end شفاف برای پایتون کار می‌کند. به این صورت که این دسترسی را می دهد تا کتابخانه های پایتون، شامل کتابخانه استاندارد، وارد شده و در کنار کد Hy با یک مرحله کامپایل که در آن هر دو زبان به AST پایتون تبدیل می شوند، دسترسی پیدا کنند.


کد نمونه[ویرایش]

از اسناد زبان:

=> (print "Hy!")
Hy!
=> (defn salutationsnm [name] (print (+ "Hy " name "!")))
=> (salutationsnm "YourName")
Hy YourName!


یادداشت[ویرایش]

  1. اصطلاح "کامپایل شده" ممکن است برای بیان کد Hy در AST پایتون یا تبدیل آن AST به بایت کد به کار رود، که دومی به مفسر خاص Python مورد استفاده بستگی دارد و نه Hy.
  2. Hy روی پایتون 2.7، 3.4 تا 3.6 و PyPy تست شده است.

همچنین ببینید[ویرایش]

منابع[ویرایش]

  1. 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.
  2. 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.
  3. Tagliamonte, Paul (2 April 2013). PyCon lightning talk (Speech). Python Conference (PyCon). Santa Clara. Retrieved 2 September 2014.
  4. 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.
  5. Turto, Tuukka (14 February 2014). "Programming Can Be Fun with Hy". Open Source For You. Retrieved 2 September 2014.
  6. Watson, Mark (2020). A Lisp Programmer Living in Python-Land: The Hy Programming Language (PDF). LeanBooks.
  7. Edge, Jake (30 April 2014). "Getting Hy on Python". LWN.net. Retrieved 2 September 2014.
  8. "Hy Documentation". hylang.org. Retrieved 3 September 2014.
  9. Danjou, Julien (26 March 2014). "The AST". The Hacker's Guide to Python. pp. 165–172.
  10. 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.
  11. "Quickstart". Hylang.org. 15 May 2018. Retrieved 19 September 2018.
  1. ۱٫۰ ۱٫۱ "Hy 1.0a4". GitHub.