יום שני, 26 בדצמבר 2022

כתיבת שפת תכנות בפייתון - חלק ראשון

 החלטתי לצלול לרעיון של לכתוב שפת תכנות. למה? כי אני יכול וכי למה לא?

 השפה תהיה להיות פשוטה ובסיסית ככל האפשר. המטרה היא לימודית ולהנאה ולא כדי להחליף שפות פיתוח אחרות, אין כאן יומרה כזו. 

בבלוג אני אעקוב אחרי התקדמות כתיבת השפה. 

לשפת הלימוד אקרא cozi על שם החתול שלי (קוזי הוא שם חיבה של קוזמו).


הפוסט הראשון הוא רק הכנה לפרויקט, הוא הצהרת כוונות, הפוסט הבא כבר יכלול קוד בסיסי והסברים.

מה אני רוצה *כרגע* שיהיה בשפה (אעדכן עם התקדמות הפרויקט):

1. מספר פקודות/פונקציות שבהמשך אגדיר (סביר להניח ש- print  למשל תהיה אחת מהן, וכנראה פונקצית loop וכדומה.

2. קוד פשוט ומתועד ככל האפשר ב github כי הגיע הזמן שיהיה מקור מידע נוח בנושא ובעברית

3. השפה תכלול הרצה אינטראקטיבית של שורות קוד (בדומה למה שקורה כשמריצים את הפקודה python בשורת הפקודה)






בצילום רואים  הרצה של המעט שכתבתי, כשבירוק אלו מחרוזות שהרצתי אינטרקטיבית, כרגע יש תמיכה ב comments והרצת המילה cozi כמילה שמורה שערכה 50 (למה? ככה כרגע, נראה בהמשך מה לעשות עם זה)


מה לא בתוכנית כרגע:

1. לפתח שפה אמיתית מלאה.

2. ביצועים - לא יושקעו מאמצים בכלל בתחום זה. המטרה היא רק ללמוד את הכלים. 


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






אין תגובות:

הוסף רשומת תגובה