[Powered by Google Translate] באַגאַזלענען באָודאַן: זאל ס רעדן וועגן קאַמפּיילערז. ביז דעם פונט, איר ווע נאָר טייפּט אַרויף דיין מקור קאָד אין עטלעכע טעקעס, געשיקט זיי דורך דעם גרויס שוואַרץ קעסטל וואָס איז קלאַנג, און אויס קומט דיין עקסעקוטאַבלע טעקע וואָס טוט פּונקט וואָס איר געשריבן אין דיין מקור קאָד. ווי מאַדזשיקאַל ווי אַז ס 'שוין, מיר רע געגאנגען צו נעמען אַ נעענטער קוק אין וואָס ס 'פאקטיש געשעעניש ווען מיר צונויפנעמען אַ טעקע. אַזוי וואָס טוט עס מיינען צו צונויפנעמען עפּעס? נו, אין דער רובֿ גענעראַל זינען, עס נאָר מיטל טראַנספאָרמינג קאָד געשריבן אין איין פּראָגראַממינג שפּראַך צו אנדערן. אבער יוזשאַוואַלי ווען מענטשן זאָגן זיי צונויפנעמען עפּעס, זיי מיינען זיי ניטאָ גענומען עס פון אַ העכער מדרגה פּראָגראַממינג שפּראַך צו אַ נידעריקער מדרגה פּראָגראַממינג שפּראַך. דאס קען ויסקומען ווי זייער סאַבדזשעקטיוו טערמינען. פֿאַר בייַשפּיל, איר מיסטאָמע טאָן נישט טראַכטן פון C ווי אַ הויך מדרגה פּראָגראַממינג שפּראַך, אָבער איר טאָן צונויפנעמען עס. אבער עס ס אַלע קאָרעוו. ווי מיר וועט זען, דער פֿאַרזאַמלונג קאָד און יווענטשאַוואַלי מאַשין קאָד וואָס מיר צונויפנעמען אַראָפּ צו איז אַנדינייאַבלי אַ נידעריקער מדרגה ווי סי כאָטש מיר וועט זייַן ניצן קלאַנג אין הייַנט ס דעמאַנסטריישאַן, אַ פּלאַץ פון די געדאנקען דאָ פירן איבער צו אנדערע קאַמפּיילערז. פֿאַר קלאַנג, עס זענען פיר הויפּט טריט אין די קוילעלדיק זאַמלונג. די ביסט איינער, פּרעפּראָסעססינג געטאן דורך די פּרעפּראָסעססאָר; צוויי, זאַמלונג געטאן דורך דער קאַמפּיילער; דרייַ, אַסעמבאַלינג געטאן דורך די אַסעמבלער; און פיר, פֿאַרבינדונג געטאן דורך דער לינקער. עס קען זייַן קאַנפיוזינג אַז איינער פון די סובסטעפּס פון די קוילעלדיק קלאַנג קאַמפּיילערז איז גערופן דער קאַמפּיילער, אָבער מיר וועט באַקומען צו וואָס. מיר וועט זייַן ניצן אַ פּשוט העלא וועלט פּראָגראַם ווי אונדזער בייַשפּיל איבער דעם ווידעא. זאל ס נעמען אַ קוק. דער ערשטער שריט איז פּרעפּראָסעססינג. וואָס טוט דער פּרעפּראָסעססאָר טאָן? אין שיין פיל יעדער C פּראָגראַם איר ווע אלץ לייענען אָדער געשריבן, איר ווע געניצט שורות פון קאָד וואָס אָנהייבן מיט אַ האַש. איך וועט רופן עס האַש, אָבער איר זאלט ​​אויך רופן עס פונט, נומער צייכן, אָדער שאַרף. קיין אַזאַ שורה איז אַ פּרעפּראָסעססאָר דירעקטיוו. איר ווע מיסטאָמע געזען # דעפינירן און # אַרייַננעמען פריער, אָבער עס זענען עטלעכע מער אַז די פּרעפּראָסעססאָר אנערקענט. זאל ס לייגן אַ # דעפינירן צו אונדזער העלא וועלט בייַשפּיל. איצט לאָזן ס לויפן נאָר די פּרעפּראָסעססאָר אויף דעם טעקע. דורך גייט פארביי קלאַגע דער-E פאָן, איר ניטאָ ינסטראַקטינג עס צו לויפן נאָר די פּרעפּראָסעססאָר. זאל ס זען וואָס כאַפּאַנז. עס קוקט ווי קלאַנג נאָר ספּיץ אויס אַלץ בייַ די באַפֿעל שורה. אין סדר צו ראַטעווען אַלע פון ​​דעם רעזולטאַט צו אַ נייַ טעקע גערופן העללאָ2.ק, מיר וועט צוגעבן> העללאָ2.ק צו אונדזער באַפֿעל. איצט לאָזן ס נעמען אַ קוק אין אונדזער פּרעפּראָסעססעד טעקע. וואָו, וואָס געטראפן צו אונדזער קליין ביסל פּראָגראַם? אויב מיר גיין אַלע די וועג צו די דנאָ פון דעם טעקע, מיר וועט זען עטלעכע פון ​​די קאָד וואָס מיר פאקטיש געשריבן. נאָטיץ אַז די # דעפינירן איז ניטאָ און אַלע ינסטאַנסיז פון נאָמען האָבן שוין ריפּלייסט מיט פּונקט וואָס מיר ספּעסאַפייד אין דער # דעפינירן שורה. אַזוי וואָס זענען אַלע די טיפּעדעפס און פונקציאָנירן דעקלעריישאַנז בייַ דער שפּיץ פון דער טעקע? נאָטיץ אַז די # דעפינירן איז נישט דער בלויז פּרעפּראָסעססאָר דירעקטיוו וואָס מיר ספּעסאַפייד. מיר אויך האָבן # אַרייַננעמען סטדיאָ.ה. אַזוי אַלע פון ​​די משוגע שורות זענען פאקטיש פּונקט סטדיאָ.ה קאַפּיד און פּייסטיד אין די שפּיץ פון דעם טעקע. אַז ס וואָס כעדער טעקעס זענען אַזוי נוציק פֿאַר פֿונקציע דעקלעריישאַנז. אַנשטאָט פון נידינג צו צייכענען און פּאַפּ אַלע פון ​​די פֿונקציע דעקלעריישאַנז איר פּלאַן אויף ניצן בייַ די שפּיץ פון דיין טעקע, די פּרעפּראָסעססאָר וועט קאָפּיע און פּאַפּ זיי פון די כעדער טעקע פֿאַר איר. איצט אַז מיר רע געטאן פּרעפּראָסעססינג, מיר מאַך אַנטו זאַמלונג. די סיבה מיר רופן דעם שריט זאַמלונג איז ווייַל דאָס איז די שריט ווו קלאַנג פאקטיש טוט זייַן קאַמפּיילינג פון C צו פֿאַרזאַמלונג קאָד. אין סדר צו האָבן קלאַנג צונויפנעמען אַ טעקע אַראָפּ צו פֿאַרזאַמלונג, אָבער פאָרזעצן קיין ווייַטער, פאָרן עס דער-ד פאָן בייַ די באַפֿעל שורה. זאל ס נעמען אַ קוק אין דער פֿאַרזאַמלונג טעקע וואָס איז געווען אָוטפּוטטעד. עס קוקט ווי גאַנץ אַ פאַרשידענע שפּראַך. פֿאַרזאַמלונג קאָד איז זייער פּראַסעסער ספּעציפיש. אין דעם פאַל, זינט די קס50 אַפּפּליאַנסע איז פליסנדיק אויף אַ ווירטואַל קס 86 פּראַסעסער, דאָס איז קס 86 פֿאַרזאַמלונג קאָד. זייער ווייניק מענטשן שרייַבן גלייַך אין פֿאַרזאַמלונג קאָד די טעג, אָבער יעדער C פּראָגראַם איר אלץ שרייַבן געץ פארוואנדלען אַראָפּ אין פֿאַרזאַמלונג. ווידער, מיר רופן דעם שריט קאַמפּיילינג די C אין פֿאַרזאַמלונג זינט מיר זענען געגאנגען פון אַ העכער גלייַך צו אַ נידעריקער מדרגה פּראָגראַממינג שפּראַך. וואָס מאכט פֿאַרזאַמלונג נידעריקער מדרגה ווי C? נו, אין פֿאַרזאַמלונג, מיר זענען זייער באגרענעצט אין וואָס מיר קענען טאָן. עס זענען נישט אויב ס, בשעת ס, פֿאַר ס, אָדער לופּס פון קיין מין. אבער איר קענען ויספירן די זעלבע זאכן וואָס די קאָנטראָל סטראַקטשערז פאָרשלאָגן ניצן די לימיטעד אַפּעריישאַנז אַז פֿאַרזאַמלונג טוט צושטעלן. אבער צו זען נאָר ווי נידעריק מדרגה פֿאַרזאַמלונג טאַקע איז, לאָזן ס גיין איין שריט ווייַטער אין אונדזער זאַמלונג, אַסעמבאַלינג. עס ס די אַסעמבלער ס אַרבעט צו יבערמאַכן די פֿאַרזאַמלונג קאָד אין כייפעץ אָדער מאַשין קאָד. געדענקען אַז די אַסעמבלער טוט נישט רעזולטאַט פֿאַרזאַמלונג; אלא, עס נעמט אין פֿאַרזאַמלונג און אַוטפּוץ מאַשין קאָד. מאַשין קאָד איז די פאַקטיש 1 ס און 0 ס אַז אַ קפּו קענען פֿאַרשטיין, כאָטש מיר נאָך האָבן אַ קליינטשיק ביסל פון אַרבעט לינקס איידער מיר קענען לויפן אונדזער פּראָגראַם. זאל ס אַסעמבאַל אונדזער פֿאַרזאַמלונג קאָד דורך גייט פארביי קלאַנג דער-C פאָן. איצט לאָזן ס זען וואָס ס אין די פארזאמלט טעקע. נו, וואָס טוט ניט העלפן אונדז זייער פיל. געדענקען אַז די מאַשין קאָד איז די אָנעס און זעראָס אַז דיין קאָמפּיוטער קענען פֿאַרשטיין. וואָס טוט נישט מיינען עס ס גרינג פֿאַר אונדז צו פֿאַרשטיין. אַזוי פּונקט ווי נידעריק מדרגה איז פֿאַרזאַמלונג? עס ס קימאַט יידעניקאַל צו כייפעץ קאָד. געגאנגען פון פֿאַרזאַמלונג צו כייפעץ קאָד איז פיל מער פון אַ איבערזעצונג ווי אַ טראַנספאָרמאַציע, וואָס איז וואָס איינער זאל נישט באַטראַכטן די אַסעמבלער צו טאָן קיין פאַקטיש קאַמפּיילינג. אין פאַקט, עס ס שיין גרינג צו מאַניואַלי איבערזעצן פון פֿאַרזאַמלונג צו מאַשין קאָד. קוקן בייַ דער פֿאַרזאַמלונג פֿאַר אַ הויפּט פֿונקציע, אַז ערשטער שורה כאַפּאַנז צו שטימען צו העקסאַדעסימאַל 0קס55. אין ביינערי, אַז ס 1,010,101. די רגע שורה כאַפּאַנז צו שטימען העקסאַדעסימאַל 0קס895. און די ווייַטער, 0קס56. געגעבן אַ לעפיערעך פּשוט טיש, איר געקענט איבערזעצן פֿאַרזאַמלונג אין דעם קאָד וואָס מאשינען קענען פֿאַרשטיין אויך. אַזוי דאָרט ס איינער רוען שריט אין זאַמלונג, וואָס איז פֿאַרבינדונג. פֿאַרבינדונג קאַמביינז אַ בינטל פון כייפעץ טעקעס אין איין גרויס טעקע אַז איר קענען פאקטיש ויספירן. פֿאַרבינדונג איז זייער סיסטעם אָפענגיק. אַזוי די יזיאַסט וועג צו באַקומען קלאַנג צו נאָר לינק כייפעץ טעקעס צוזאַמען איז צו רופן קלאַנג אויף אַלע פון ​​די טעקעס אַז איר ווילן צו לינק צוזאַמען. אויב איר ספּעציפיצירן. אָ טעקעס, דעמאָלט עס וועט נישט דאַרפֿן צו ריפּראָסעס, צונויפנעמען, און אַסעמבאַל אַלע פון ​​דיין מקור קאָד. זאל ס וואַרפן אַ מאַט פונקציאָנירן אין אונדזער טעקע, אַזוי מיר האָבן עפּעס צו לינק ין איצט לאָזן ס צונויפנעמען עס צוריק אַראָפּ צו כייפעץ קאָד און רופן קלאַנג אויף עס. אָאָפּס. זינט מיר אַרייַנגערעכנט אַ מאַט פונקציאָנירן, מיר דאַרפֿן צו לינק אין די מאַט ביבליאָטעק מיט-לם. אויב מיר געוואלט צו לינק צוזאַמען בינטל פון. אָ טעקעס אַז מיר געשריבן אויף אונדזער אייגן, מיר 'ד נאָר ספּעציפיצירן זיי אַלע אין די באַפֿעל שורה. די ריסטריקשאַן איז אַז בלויז איינער פון די טעקעס מוזן פאקטיש ספּעציפיצירן אַ הויפּט פֿונקציע, אָדער אַנדערש די ריזאַלטינג עקסעקוטאַבלע וואָלט ניט וויסן ווו צו אָנהייבן פליסנדיק דיין קאָד. וואָס ס די חילוק צווישן ספּעסאַפייינג אַ טעקע צו לינק אין מיט-ל און נאָר ספּעסאַפייינג אַ טעקע גלייַך? גאָרנישט. עס ס נאָר אַז קלאַנג כאַפּאַנז צו וויסן פּונקט וואָס טעקע עפּעס ווי-לם כאַפּאַנז צו אָפּשיקן צו. אויב איר געוואוסט אַז טעקע זיך, איר קען ספּעציפיצירן עס בפירוש. נאָר געדענקען אַז אַלע-ל פלאַגס האָבן צו קומען אין די סוף פון דיין קליענט פאָדערונג. און אַז ס אַלע דאָרט איז צו אים. ווען איר נאָר לויפן קלאַנג אויף עטלעכע טעקעס, דאָס איז וואָס עס ס פאקטיש טאן. מייַן נאָמען איז ראָב באָוודען, און דאָס איז קס50.