Hy

Hy (או Hylang) היא שפת תכנות ממשפחת שפות Lisp אשר עוצבה על מנת לתרגם את הביטויים בה לעץ נתונים שנקרא Abstract Syntax Tree , (בקיצור AST), אשר מכיל את המבנה הכללי של הקוד (משתנים, תנאים, לולאות, קבועים, וכדומה). Hy הוצגה לראשונה בכנס הפייתון השנתי PyCon בשנת 2014 על ידי פול טגילמונטה.

בשפות ממשפחת Lisp בדרך כלל כותבים את הערכים והפעולות בתוך סוגריים. ביטויים בתוך הסוגריים הללו נקראים ביטויי S, (או באנגלית: S Expressions) והם ליוו את Lisp משלביה הראשונים.

בדומה למיפוי ביטויי ה-S ב-Kawa (מימוש של Scheme (ניב של שפת התכנות Lisp) ב-Java) וב-Clojure (ניב של Lisp ב-Java) לתוך ה-JVM, שמפרשת וממירה קוד ל Java Bytecode (אוסף פקודות שהמעבד מבין), Hy אמורה לשמש כקצה קדמי [https://www.cs.bgu.ac.il/~ppl112/wiki.files/Practical%20Sessions/ppl112_ps3.pdf לתחביר האבסטרקטי] של פייתון.

Hy, בדומה לניבי Lisp אחרים מתייחסת גם לפקודות מובנות בשפה ולקוד עצמו כמידע שניתן לשנות אותו. לכן היא תומכת בפרדיגמת תכנות ששמה מטא תכנות. ב-Hy ניתן להשתמש בספריות (קבצים המכילים קטעי קוד המוכנים לשימוש ) בפייתון, כולל הספרייה הסטנדרטית <ref></ref> ( ספריה רחבת ממדים אשר מותקנת יחד עם המפרש של פייתון ) שניתן לייבא אותה ולגשת אליה במקביל לקוד ה-Hy, כך שלבסוף שניהם יומרו לעץ הנתונים AST של פייתון .

== דוגמאות ==
תוכנית "Hello World" :<syntaxhighlight lang="hy">
(print "Hello, World!")
</syntaxhighlight>
ביצוע פעולות ב-Hy, כמו בניבי Lisp רבים, נעשה כאשר המילה השמורה לפעולה, או האופרטור נמצאים בתחילת הקוד, והפרמטרים נמצאים לאחר מכן ומופרדים אחד מהשני ברווחים ( ללא פסיקים). לדוגמה, הדפסה על המסך של ביצוע פעולה אריתמטית בין ארבעה מספרים ב-Hy :<syntaxhighlight lang="hy">
(print ( + 6 8 4 9 ))
</syntaxhighlight>

קוד זה נלקח מהדוקומנטציה של Hy :<syntaxhighlight lang="hy">
=> (print "Hy!")
Hy!
=> (defn salutationsnm [name] (print (+ "Hy " name "!")))
=> (salutationsnm "YourName")
Hy YourName!
</syntaxhighlight>

== כתיבת קוד ב-Hy ==
=== התקנת פייתון ===
ישנן כמה דרישות על מנת להתחיל לכתוב ב-Hy. ראשית, יש להתקין פייתון, ורצוי גם להתקין עורך טקסט או סביבת פיתוח משולבת ( תוכנות מחשב בהן כותבים, מריצים קוד ומחפשים בו באגים באמצעות debug ) . תוכנות טובות לשימושים אלו יהיו IDLE, Spyder, Pycharm, Visual Studio Code, Visual Studio ( עורך טקסט), וכדומה. מתכנתים רבים מעדיפים את Pycharm כסביבת הפיתוח משולבת. ניתן להתקין את פייתון באתר הרשמי של פייתון <ref></ref> ומומלץ להתקין אחת מן הגרסאות החדשות יותר, משום שישנם הבדלים רבים בין גרסאות ישנות כגון גרסה 2.7 למשל, לגרסה 3.8.5 . בנוסף, בגרסאות חדשות ניתן להתקין את מנהל החבילות ( מודולים על משתנה <code>__path__</code>, כאשר מודול הוא קובץ\קבצים שמכילים מחלקות שניתן לייבא בפרויקטים ובקבצים אחרים) <code>pip</code>, ואת IDLE ביחד עם פייתון.

=== התקנת Hy באמצעות PIP ===
ניתן להתקין את הקבצים באתר pypi, בקישור המצורף <ref></ref> או לכתוב בשורת הפקודה <code>pip install hy</code> ( יש להתקין פייתון לפני כן ).
בשורת הפקודה במערכת ההפעלה windows, באמצעות pip .]]

== ראו גם ==
* Lisp
* Common Lisp
* פייתון

== קישורים חיצוניים ==

* 
* 
* [https://docs.hylang.org/en/stable/tutorial.html מדריך טקסטואלי ללמידה עצמית של בסיסי השפה Hy.]
* 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 [https://www.worldcat.org/oclc/1057729260 1057729260].
* Turto, Tuukka (14 February 2014). [http://www.opensourceforu.com/2014/02/programming-can-fun-hy/ "Programming Can Be Fun with Hy"]. Open Source For You. Retrieved 2 September 2014.
* Edge, Jake (30 April 2014). [https://lwn.net/Articles/596626/ "Getting Hy on Python".] LWN.net. Retrieved 2 September 2014.
* Danjou, Julien (26 March 2014). "The AST". [https://books.google.com/books?id=B6nhAwAAQBAJ&pg=PT171 The Hacker's Guide to Python.] pp. 165–172.
* Kitchin, John (31 March 2016). [http://kitchingroup.cheme.cmu.edu/blog/2016/03/31/More-on-Hy-and-why-I-think-it-is-a-big-deal/ "More on Hy and why I think it is a big deal"]. The Kitchin Research Group. Carnegie Mellon University. Retrieved 19 September 2018.

==הערות שוליים==

קטגוריה:ניבי Lisp