Hy
יש להשלים ערך זה: בערך זה חסר תוכן מהותי. ייתכן שתמצאו פירוט בדף השיחה.
| ||
יש להשלים ערך זה: בערך זה חסר תוכן מהותי. ייתכן שתמצאו פירוט בדף השיחה. | |
פרדיגמות | אימפרטיבית, פרוצדורלית, מונחית עצמים, מטא תכנות, רפלקטיבית, גנרית |
---|---|
תאריך השקה | 2013 |
מתכנן | פול טאגילמונטה |
גרסה אחרונה | 1.0.0 (22 בספטמבר 2024) |
הושפעה על ידי | Lisp, Python |
רישיון | רישיון MIT |
סיומת | hy. |
hylang | |
Hy (או Hylang) היא שפת תכנות ממשפחת שפות Lisp אשר עוצבה על מנת לתרגם את הביטויים בה לעץ נתונים שנקרא Abstract Syntax Tree (אנ'), (בקיצור AST), אשר מכיל את המבנה הכללי של הקוד (משתנים, תנאים, לולאות, קבועים, וכדומה). Hy הוצגה לראשונה בכנס הפייתון השנתי PyCon בשנת 2014 על ידי פול טגילמונטה.[1]
בשפות ממשפחת Lisp בדרך כלל כותבים את הערכים והפעולות בתוך סוגריים. ביטויים בתוך הסוגריים הללו נקראים ביטויי S, (או באנגלית: S Expressions) והם ליוו את Lisp משלביה הראשונים.
בדומה למיפוי ביטויי ה-S ב-Kawa (מימוש של Scheme (ניב של שפת התכנות Lisp) ב-Java) וב-Clojure (ניב של Lisp ב-Java) לתוך ה-JVM, שמפרשת וממירה קוד ל Java Bytecode (אוסף פקודות שהמעבד מבין), Hy אמורה לשמש כקצה קדמי לתחביר האבסטרקטי (אורכב 20.10.2013 בארכיון Wayback Machine) של פייתון.
Hy, בדומה לניבי Lisp אחרים מתייחסת גם לפקודות מובנות בשפה ולקוד עצמו כמידע שניתן לשנות אותו. לכן היא תומכת בפרדיגמת תכנות ששמה מטא תכנות. ב-Hy ניתן להשתמש בספריות (קבצים המכילים קטעי קוד המוכנים לשימוש ) בפייתון, כולל הספרייה הסטנדרטית [2] ( ספריה רחבת ממדים אשר מותקנת יחד עם המפרש של פייתון ) שניתן לייבא אותה ולגשת אליה במקביל לקוד ה-Hy, כך שלבסוף שניהם יומרו לעץ הנתונים AST של פייתון .
דוגמאות
[עריכת קוד מקור | עריכה]תוכנית "Hello World" :
(print "Hello, World!")
ביצוע פעולות ב-Hy, כמו בניבי Lisp רבים, נעשה כאשר המילה השמורה לפעולה, או האופרטור נמצאים בתחילת הקוד, והפרמטרים נמצאים לאחר מכן ומופרדים אחד מהשני ברווחים ( ללא פסיקים). לדוגמה, הדפסה על המסך של ביצוע פעולה אריתמטית בין ארבעה מספרים ב-Hy :
(print ( + 6 8 4 9 ))
קוד זה נלקח מהדוקומנטציה של Hy :
=> (print "Hy!")
Hy!
=> (defn salutationsnm [name] (print (+ "Hy " name "!")))
=> (salutationsnm "YourName")
Hy YourName!
כתיבת קוד ב-Hy
[עריכת קוד מקור | עריכה]התקנת פייתון
[עריכת קוד מקור | עריכה]ישנן כמה דרישות על מנת להתחיל לכתוב ב-Hy. ראשית, יש להתקין פייתון, ורצוי גם להתקין עורך טקסט או סביבת פיתוח משולבת ( תוכנות מחשב בהן כותבים, מריצים קוד ומחפשים בו באגים באמצעות debug ) . תוכנות טובות לשימושים אלו יהיו IDLE, Spyder, Pycharm, Visual Studio Code, Visual Studio ( עורך טקסט), וכדומה. מתכנתים רבים מעדיפים את Pycharm כסביבת הפיתוח משולבת. ניתן להתקין את פייתון באתר הרשמי של פייתון [3] ומומלץ להתקין אחת מן הגרסאות החדשות יותר, משום שישנם הבדלים רבים בין גרסאות ישנות כגון גרסה 2.7 למשל, לגרסה 3.8.5 . בנוסף, בגרסאות חדשות ניתן להתקין את מנהל החבילות ( מודולים על משתנה __path__
, כאשר מודול הוא קובץ\קבצים שמכילים מחלקות שניתן לייבא בפרויקטים ובקבצים אחרים) pip
, ואת IDLE ביחד עם פייתון.
התקנת Hy באמצעות PIP
[עריכת קוד מקור | עריכה]ניתן להתקין את הקבצים באתר pypi, בקישור המצורף [4] או לכתוב בשורת הפקודה pip install hy
( יש להתקין פייתון לפני כן ).
ראו גם
[עריכת קוד מקור | עריכה]קישורים חיצוניים
[עריכת קוד מקור | עריכה]- אתר האינטרנט הרשמי של Hy
- Hy, באתר GitHub
- מדריך טקסטואלי ללמידה עצמית של בסיסי השפה 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 1057729260.
- Turto, Tuukka (14 February 2014). "Programming Can Be Fun with Hy". Open Source For You. Retrieved 2 September 2014.
- Edge, Jake (30 April 2014). "Getting Hy on Python". LWN.net. Retrieved 2 September 2014.
- Danjou, Julien (26 March 2014). "The AST". The Hacker's Guide to Python. pp. 165–172.
- 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.
הערות שוליים
[עריכת קוד מקור | עריכה]- ^ הצגת Hy ב-PyCon 2014, סרטון באתר יוטיוב
- ^ פייתון/פייתון גרסה 2/הספריה הסטנדרטית, באתר https://he.wikibooks.org/wiki/עמוד_ראשי, 10.08.2020
- ^ python, האתר הרשמי של פייתון, באתר https://www.python.org/, 10.08.20
- ^ התקנת Hy ב-pypi, באתר https://pypi.org/