איך כותבים מתרגם

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

איך כותבים מתרגם
איך כותבים מתרגם

וִידֵאוֹ: איך כותבים מתרגם

וִידֵאוֹ: איך כותבים מתרגם
וִידֵאוֹ: איך כותבים מכתב רשמי בוורד 2024, מאי
Anonim

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

איך כותבים מתרגם
איך כותבים מתרגם

נחוץ

  • - דקדוק טבעי או BNF של שפת המקור;
  • - כלי פיתוח.

הוראות

שלב 1

הכן את הנתונים לניתוח מילוני של הטקסט בשפת המקור. רשום את כל האסימונים בשפה. חלק אותם לקטגוריות (מילות מפתח, מילוליות מספריות ומחרוזות, מזהים, רווח לבן, פיסוק וכו ').

שלב 2

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

שלב 3

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

שלב 4

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

שלב 5

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

שלב 6

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

שלב 7

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

מוּמלָץ: