כדי ליצור מתורגמן, עליך לכתוב מנתח קוד מקור, לולאת ביצוע קוד קוד, וכמות עצומה של קוד ספריה רגיל. זה לא תמיד כיף וקל אם לא תשתמש בכלים שהמהדר והמנתח יפיק עבורך. איתם יהיה קל כמו להפגיז אגסים לכתוב מתורגמן לאדם בעל ידע. בואו נסתכל על דוגמה לכתיבת מתורגמן עם JIT ב- PyPy.
הוראות
שלב 1
בחר שפה לכתיבה. במקרה זה, זה דפוק מוחי. זה מאוד פשוט ומורכב מקלטת של מספרים שלמים, שמאותחלים לאפס, ומצביע אחד לתא הנוכחי בקלטת. יש רק שמונה פקודות בשפה: ">" - העבר את המצביע לתא הבא,"
שלב 2
כתוב מתורגמן בפייתון רגיל. דלפק ההוראות ישמור מצביעים להוראות הנוכחיות. הביטוי הראשון ישחזר את ההצהרה, ולאחריה כמה הצהרות קובעות כיצד לבצע אותה. השמיט את היישום של המפעילים "[" ו- "], מכיוון שעליהם לשנות את מונה הפקודה למיקום של אותה סוגריים.
שלב 3
יישם מחלקת קלטת המאחסנת מצביע למספר הנוכחי וקלטת מספרים שלמים. הקלטת תגדל לפי הצורך. לנתח את קוד המקור מבעוד מועד כך שתגובות מרובות לא ייקראו בייט אחד בכל פעם. צור גם מילון סוגריים, כך שתוכל למצוא בו סוגריים תואמים במידת הצורך.
שלב 4
בצע ניתוח מנוהל (תוכנית). פונקציה זו מחזירה מחרוזות רק מפקודות וממילון הסוגריים.
שלב 5
שים הכל יחד ויש לך מתורגמן עובד לעזאזל. הפעל את מתורגמן הפייתון וודא שהוא עובד. זהו רק מקרה יחיד של כתיבת מתורגמן בשפה הפשוטה ביותר. אם תרצה, תוכל לכתוב כמעט בכל שפה, לאחר שהכרת את תכונותיה ותכליתה.