כיצד ליצור שפת תכנות: 15 שלבים (עם תמונות)

תוכן עניינים:

כיצד ליצור שפת תכנות: 15 שלבים (עם תמונות)
כיצד ליצור שפת תכנות: 15 שלבים (עם תמונות)

וִידֵאוֹ: כיצד ליצור שפת תכנות: 15 שלבים (עם תמונות)

וִידֵאוֹ: כיצד ליצור שפת תכנות: 15 שלבים (עם תמונות)
וִידֵאוֹ: ניקוי חלונות הדרך המנצחת 2024, אַפּרִיל
Anonim

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

צעדים

צור שפת תכנות שלב 1
צור שפת תכנות שלב 1

שלב 1. הכירו את הטכנולוגיה

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

צור שפת תכנות שלב 2
צור שפת תכנות שלב 2

שלב 2. הכירו את הטרמינולוגיה

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

צור שפת תכנות שלב 3
צור שפת תכנות שלב 3

שלב 3. החליטו על איזו בעיה השפה שלכם פותרת

האם הוא מטפל בבעיה ספציפית לתחום, או שמא מדובר בשפה למטרות כלליות?

צור שפת תכנות שלב 4
צור שפת תכנות שלב 4

שלב 4. תחשוב על הסמנטיקה של השפה שלך ועל המושגים שלה

  • האם אתה מתיר גישה ישירה למצביע או לא?
  • מהם סוגי הנתונים של השפה שלך?
  • האם זו שפה סטטית או דינאמית?
  • מהו דגם הזיכרון שלך? האם אתה מתכוון להשתמש באספן זבל או בניהול זיכרון ידני? (אם אתה משתמש באספן זבל, התכונן לכתוב אחד או התאם אחד קיים לשפה שלך.)
  • איך מתמודדים עם במקביל? האם אתה מתכוון להשתמש בדגם הברגה/נעילה פשוט או משהו מורכב יותר כמו לינדה או דוגמנית השחקן? (מכיוון שבימינו למחשבים יש ליבות מרובות.)
  • האם יש פונקציות פרימיטיביות המוטמעות בשפה או שהכל יבוא מספרייה?
  • מהי הפרדיגמה או הפרדיגמות של השפה שלך? פוּנקצִיוֹנָלִי? מונחה עצמים? אב טיפוס (כמו JavaScript)? מכוון היבט? מכוון לתבנית? או משהו חדש לגמרי?
  • כיצד השפה שלך תתממשק עם ספריות ושפות קיימות (בעיקר C)? נקודה זו חשובה אם אתה בונה שפה ספציפית לתחום.
  • לבסוף, חלק מהתשובות לשאלות אלה עונות על השלב השני ויעזרו לך לענות על השלב הבא.
צור שפת תכנות שלב 5
צור שפת תכנות שלב 5

שלב 5. חשוב על כמה משימות ספציפיות שמישהו ירצה שיוכל לבצע עם השפה שלך

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

צור שפת תכנות שלב 6
צור שפת תכנות שלב 6

שלב 6. התנסו ברעיונות תחביר (הטקסט של השפה) בדוגמאות שלעיל

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

צור שפת תכנות שלב 7
צור שפת תכנות שלב 7

שלב 7. כתוב דקדוק רשמי לתחביר

צור שפת תכנות שלב 8
צור שפת תכנות שלב 8

שלב 8. החליטו אם השפה תתפרש או תורכב

כלומר, בעולם המפורש המשתמש שלך בדרך כלל יערוך את התוכנית שלך בעורך ויפעיל אותה ישירות על המתורגמן; בעוד בעולם המקובץ, המשתמש שלך יערוך את התוכנית שלך, יאסוף אותה, ישמור את הפעלה המתקבלת במקום כלשהו ויפעיל אותה.

צור שפת תכנות שלב 9
צור שפת תכנות שלב 9

שלב 9. כתוב את הסורק והנתח הקדמי או מצא כלי שעוזר לך בכך

כמו כן, חשוב כיצד המהדר/המתורגמן שלך יזהיר את המשתמש שלך מפני תוכניות שגויות ושגיאות תחביר

צור שפת תכנות שלב 10
צור שפת תכנות שלב 10

שלב 10. השתמש במידע הניתוח כדי לכתוב את קוד האובייקט או ייצוג ביניים

תן למנתח ליצור AST, ולאחר מכן צור את קוד האובייקט שלך מ- AST באמצעות שלושה כתובות כתובת או אחיו הגדול SSA, ולאחר מכן צור טבלת סמלים להגדרת הפונקציות, המשתנים הגלובליים שלך וכו '.

כמו כן, בהתאם לשפה שלך, ייתכן שתרצה גם ליצור טבלאות מצביע וירטואליות או טבלאות מידע לשיעורים שלך (על מנת לתמוך בהשתקפות או ב- RTTI)

צור שפת תכנות שלב 11
צור שפת תכנות שלב 11

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

צור שפת תכנות שלב 12
צור שפת תכנות שלב 12

שלב 12. כתוב תוכניות בדיקה רבות לבדיקת השפה

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

צור שפת תכנות שלב 13
צור שפת תכנות שלב 13

שלב 13. שקול כיצד המשתמש יביא לאיתור באגים של תוכניות משלו

צור שפת תכנות שלב 14
צור שפת תכנות שלב 14

שלב 14. אם השפה שלך משתמשת בספרייה סטנדרטית, תרצה לכתוב אותה

יחד עם אספן זבל או תכונות זמן ריצה אחרות אם אתה צריך את זה.

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

צור שפת תכנות שלב 15
צור שפת תכנות שלב 15

שלב 15. פרסם את השפה שלך, יחד עם המפרט שלה וכמה דוגמאות של מה שאתה יכול לעשות בה

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

וידאו - על ידי שימוש בשירות זה, מידע מסוים עשוי להיות משותף עם YouTube

טיפים

  • התחל בעיצוב השפה שלך ואל תכתוב שום קוד, עד שאתה שבע רצון וענה על כל (או רוב) השאלות או הבעיות הקשורות לעיצוב שלך מכיוון שקל יותר לשנות את העיצוב מוקדם יותר מאשר מאוחר יותר.
  • דע את פלטפורמת היעד שלך (מערכת הפעלה וספריות) עבור המהדר/המתורגמן שלך, אחרי הכל, אתה הולך להשתמש בה ולתפעל אותו.

אזהרות

  • תחשוב אם אתה באמת צריך שפה חדשה, ומה יש לשפה שלך לחדשות שאין לשפות אחרות (זה עשוי להיות שילוב של תכונות או תכונה אחת).
  • קשה לכתוב שפות אם אתה לא יודע מה אתה עושה. גם זה דורש הרבה תרגול.
  • היכונו לבלות קצת זמן בעיצוב שפות, מכיוון שלא תהיה לכם אפשרות לשנות את השפה לאחר שכתבתם את המהדר ועברתם את נקודת העיצוב.
  • אל תנסה לבסס את התכונות שלך לאיחוד של מספר שפות, כמו להגיד שהשפה שלך תהיה איחוד של שפה X, שפה Y ושפה Z. ההיסטוריה הראתה לנו ששפות שנוצרו בצורה כזו לעולם לא יצלחו, או שכולם היו מתכנתים PL/1 במקום משהו המבוסס על C.

מוּמלָץ: