מושג בהגדרה ABC
Miscellanea / / July 04, 2021
מאת גוילם אלסינה גונזלס, בספטמבר. 2017
איך נוכל להסתדר עם מישהו שאין לנו שפה משותפת איתו? דרך מתרגם. פונקציית תרגום זו היא זו שמבצעת א מַהְדֵר להפוך ל קוד קוד מקור הפעלה שנכתב על ידי מתכנת.
קומפילציה היא התהליך שבו תוכנית כתובה בשפה ברמה גבוהה היא תורגם לקוד המכונה שמשמש ארכיטקטורת מחשבים מסוימת, לצורך ביצועו ישיר.
לכן, ולפי ההסבר שהצענו זה עתה, מערכת זו מחייבת בחירה בא ארכיטקטורה יעד, שעשוי להיות שונה בכל אחד מהמקרים ויאלץ אותנו להרכיב בנפרד עבור כל אחת מהארכיטקטורות השונות בהן אנו רוצים שהתוכנית שלנו תפעל.
כך, למשל, נוכל להתקדם בתוכנית מסוימת לארכיטקטורת x86 של 32 סיביות, x86 של 64 סיביות, ה- PowerPC או ה- ARM מבדילים גם בין 32 ל -64 ביט, תלוי בסוג המכשיר בו אנו רוצים תריץ את זה.
בנוסף, עלינו לקחת בחשבון גם את מערכות ההפעלה השונות, גם אם אנו עובדים עבור אותה פלטפורמה חוּמרָהמכיוון שלכל אחד מהם יש דרך אחרת לתקשר עם המכונה הפיזית
ניקח כדוגמה את פלטפורמת x86 64 סיביות. אולי נרצה להרכיב עבור חלונות, GNU / Linux או macOS, או לכל אחד ואחת מהם, מה שמרמז על שלושה תהליכי אוסף נפרדים.
לפעמים זה מכריח אותנו לשנות את קוד המקור, ולעתים קרובות לשמור על שלוש גרסאות נפרדות (או יותר, תלוי המקרה) על מנת שיוכלו לקיים אינטראקציה נכונה עם המוזרויות וההבדלים של פלטפורמת היעד.
תהליך האוסף עוקב אחר סדרת שלבים, כמו גילוי שגיאות תחביריות בקוד המקור, ואז א מעובד מראש בכדי לדעת מה המשאבים שהתוכנית זקוקה להם, ולבסוף הקשר עם הספריות והמשאבים הדרושים לה ביצוע.
באופן זה, א קוֹבֶץ הפעלה המכילה הכל אֶמְצָעִי הדרושים לביצועו, וההוראות הדרושות לגישה למשאבים חיצוניים, כגון ספריות קוד משותפות (מְשׁוּתָף).
תהליך האוסף נעשה בעזרת כלי ספציפי או כלים (מהדר), למרות שמקובל לשלב זאת בסביבות פיתוח (IDE) ובכך להקל השימוש של זה.
כל שפה של תִכנוּת יש לו מהדר משלו, אם כי במשך זמן רב, המהדר המתאים לשפה וסביבה הצליח ליצור הפעלות עבור פלטפורמות שונות. תוֹכנָה שונה.
האם יש אפשרות חלופית לתהליך הבנייה? כן, והן מתפרשות לשפות.
שפות פרשניות הן אלה שמתורגמות בזמן ריצה, ולא מלוקטות.
לכן, קוד המקור שלהם תמיד זמין, ומה שהם צריכים זה ב- מערכת הפעלה עליהם הם מוציאים להורג, יש מתורגמן.
על ידי הימנעות מתהליך האוסף, אם המתורגמן זמין למספר פלטפורמות, ניתן יהיה להפעיל את התוכנית ישירות על כל אחת ואחת מהן, בדרך כלל ללא שינויים.
אַחֵר מוֹקֵד אלטרנטיבית, באמצע הדרך בין שפות מלוקטות ומתפרשות, הן אלה הדורשות מכונה וירטואלית להפעלת, למשל, ג'אווה.
שפות תכנות הפועלות על גבי שכבת וירטואליזציה (מכונה וירטואלית) דורשות תהליך ביניים דומה לזה של אוסף, אך התוצאה היא קוד שאינו ניתן להפעלה ישירה, אם כי מותאם יותר מזה שמבוצע על ידי שפה פירשתי.
במקרים אלה, אכן נדרש תהליך דומה לזה של אוסף, אך נותן תוצאה אחרת וזה עדיין מחייב, בכל מקרה, הַתקָנָה של א זמן ריצה במערכת ההפעלה בה אנו רוצים להפעיל את התוכנית שלנו.
צילומים: פוטוליה - אלכסנדר פוקוסיי / אונו
נושאים בקומפילציה