נימרוד

התלבטתי מאוד איזה שם לתת לפסוט הזה, ואיך להציג את הדבר הבא. אתם תכף תבינו למה בעצם אני הייתי צריך להשקיע כל כך הרבה חשיבה בנושא.

Nimrod היא שפת תכנות חדשה, שהמפרש הראשון שלה יצא השבוע, והיא מזכירה לנו את שפת Python, שפת LISP וכמובן (תכף תבינו למה) גם את שפת פסקל.

השפה היא שפה מאוד צבעונית ועובדת בצורה בה הקוד מומר לC ומשם מהודר לשפת מכונה (לפי האתר, הסיבה לעבודה הזו היא בשביל לספק תמיכה בכמה שיותר פלטפורמות ללא צורך במפרש). המפרש של השפה ד"א כתוב באמצעות FPC -> פסקל מונחה עצמים.

הנה רשימה (חלקית) של היכולות של השפה אשר תרגמתי מהאתר:

  • יצירת קוד ריצה טבעי (כאמור ע"י הידור קוד C שנוצר מהשפה)
  • איסוף זבל ללא שימוש במכונה ווירטואלית
  • המפרש מגיע לכמה פלטפורמות (כרגע בין Windows, לינוקס ו Mac OS X)
  • אפשרות לניהול זיכרון וגישה ישירה [תלוי מערכת הפעלה מן הסתם] לחומרה
  • תמיכה ב Iterators (אני מחפש מילה עברית)
  • חריגות
  • תמיכה בהבנת הכוונה (כמו בפרל, פיתון ורובי) של המפתח, תמיכה ב tuples, variants ועוד
  • הגדרת אופרטורים חדשים במקום העמסת אופרטורים
  • טיפוסי נתונים כדוגמת מחרוזות, מערכים אנומרציה ועוד
  • אפשרות להמיר קוד (בעיקר) binding (מילה עברית נדרשת גם כאן) מפסקל לשפה עצמה
  • אפשרות להחליף מפרשים לשפה בתוך מנוע המפרש עצמו, כך שאפשר גם להשתמש בו לעוד שפות או לביצועים שונים של מפרש השפה
  • תמיכה בתיעוד פנימי והאפשרות להמיר את התיעוד לקבצים נפרדים

אלו מקצת יכולות השפה והמפרש שלה. צפיתי בקוד כולל binding ואחרים, ואני חייב לציין שהרעיון מעניין, ובהתחלה נראה קצת מוזר.

אחד הדברים שתפסו לי את העין הוא התחביר הקרוב מידי לפסקל, כאשר במקום begin end יש הזכה של פיתון, אבל במקום השימוש ב tab השפה מכריחה להשתמש רק ברווחים.

השפה לקחה את הצורה ההגיונית שפסקל מכתיבה בהגדרת משתנים בהם מגדירים קודם את השם של המשתנה ורק אז את הטיפוס שלו. כל משתנה שמוגדר ללא טיפוס נחשב למשתנה מסוג variant.

יש תמיכה בgenerics ותמיכה בהגדרה מראש של iterator בצורה מאוד מעניינת ושונה מרוב השפות המודרניות.

יש תמיכה בתכנות מונחה עצמים ועד הרבה דברים שאנחנו נצפה משפה מודרנית.

יש גם הרבה מאוד דברים מעניינים בשפה הזו שמקריאה ממש מהירה על המדריך שלה עושה רושם כי יש הרבה פיצ'רים שמעולם לא חשבנו שצריך, אבל נראים מאוד הגיוניים שיהיו כדוגמת block אשר מספק גישה שונה ל label עם האפשרות לשלוט באיזור שלם של קוד כולל הפסקת הריצה שאותו בלוק של קוד בצורה מיידית.

אחרי כמה ימים של צפייה בשפה הזו, הגעתי להבנה כי היא שפה מאוד מעניינת, ויש לה הרבה דברים להציע.

3 מחשבות על “נימרוד

  1. ארתיום

    מעניין איך הם מימשו את yeild… יש איזושהי בעיה עקרונות בכל הנושא של עבודה עם stack ופעולת yeild.

    מה שכן הם ערבוב פסקל פיתון ועוד כל מיני יצורים מוזרים.

    בקיצור ייצור מההה זההה מווווווזזזזזררררר😉

  2. צפריר כהן

    אגב, אם מעניין אותך "איך הם מימשו", אולי שווה להעיף מבט על Parrot . לפי מה שהבנתי זה מתחיל להיות שמיש. זוהי מכונה וירטואלית שנועדה להרצת שפות דינמיות (החלה מבדיחת 1 באפריל לפני כמה שנים על כך שהפיתוח של פרל ופייתון ימוזג).

כתיבת תגובה

הזינו את פרטיכם בטופס, או לחצו על אחד מהאייקונים כדי להשתמש בחשבון קיים:

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s