קאָמפּיוטערספּראָגראַממינג

בראָאַדקאַסטער - איז ... טייפּס פון זאַמלערס. גער און בראָדקאַסט מגילה

מגילה, ווי געזונט ווי מענטשן צו איבערזעצן פון איין שפּראַך צו אן אנדער דאַרפֿן אַ יבערזעצער אָדער איבערזעצער.

יקערדיק קאַנסעפּס

די פּראָגראַם איז אַ לינגגוויסטיק פאַרטרעטונג פון חשבונות: איך → פּ → פּ (איך). אַ יבערזעצער איז אַ פּראָגראַם וואָס איז סאַפּלייד צו די ינפּוט פּראָגראַם פּ און עטלעכע ינפּוט רענטגענ. עס פּערפאָרמס ביי פּ רענטגענ: איך (פּ, רענטגענ) = פּ (X). די פאַקט אַז עס איז בלויז איין יבערזעצער איז טויגעוודיק פון Performing אַלע מעגלעך מגילה (וואָס קענען זיין רעפּריזענטיד אין די פאָרמאַל סיסטעם) איז אַ זייער טיף און באַטייַטיק ופדעקונג טורינג.

די פּראַסעסער איז אַ יבערזעצער פון מגילה אין מאַשין שפּראַך. בכלל אויך טייַער צו שרייַבן ינטערפּראַטערז פֿאַר הויך-מדרגה שפּראַכן, אַזוי זיי איבערזעצן אין אַ פאָרעם וואס איז גרינגער צו טייַטשן.

עטלעכע מינים פון טראַנסלייטערז האָבן זייער מאָדנע נעמען:

  • די אַססעמבלער טראַנזלייץ פֿאַרזאַמלונג שפּראַך מגילה אין מאַשין שפּראַך.
  • די קאַמפּיילער טראַנסלייץ אַ הויך-מדרגה שפּראַך צו אַ נידעריקער שפּראַך.

בראָאַדקאַסטער - איז אַ פּראָגראַם וואס נעמט ווי ינפּוט דאַטן די פּראָגראַם אין עטלעכע שפּראַך ד און טראגט ה פּראָגראַם אין אַזאַ אַ וועג אַז זיי ביידע האָבן די זעלבע סעמאַנטיקס: פּ → רענטגענ → קיו אַז איז, ∀קס. פּ (X) = ק (X).

אויב בראָדקאַסט די גאנצע פּראָגראַם אין עפּעס ינטערפּרעטאַבלע, עס איז גערופֿן אַ זאַמלונג איידער דורכפירונג, אָדער אַאָט זאַמלונג. אַאָט קאַמפּיילער קענען ווערן געניצט אין סעריע, די יענער פון וואָס איז אָפֿט דער אַססעמבלער, למשל:

דער מקור קאָד קאַמפּיילער → (יבערזעצער) → → פֿאַרזאַמלונג קאָד אַססעמבלער (קאַמפּיילער) → → קפּו מאַשין קאָד (יבערזעצער).

אָפּעראַטיאָנאַל אָדער דינאַמיש זאַמלונג אַקערז אויב דער פּראָגראַם איז בראָדקאַסט, ווען עקסאַקיוטאַד דורך אנדערע ביז אַהער קאָמפּילעד טייל. דזשיט-זאַמלערס געדענקען וואָס זיי האָבן שוין געטאן אַזוי ווי נישט צו איבערחזרן די מקור קאָד ווידער און ווידער. זיי קענען אַפֿילו פּראָדוצירן אַדאַפּטיוו זאַמלונג און רעקאָמפּילאַטיאָן באזירט אויף די נאַטור פון די פּראָגראַם דורכפירונג סוויווע.

פילע שפּראַכן לאָזן צו ויספירן קאָד ביי צונויפנעמען צייַט און צונויפנעמען די נייַ קאָד ביי רונטימע.

איבערזעצונג בינע

בראָאַדקאַסט קאַמפּרייזיז די טריט פון אַנאַלייזינג און סינטעז:

דער מקור קאָד אַנאַליזער → → → קאַנסעפּטשואַל פאַרטרעטונג גענעראַטאָר (סינטאַסייזער) → ציל קאָד.

דעם איז רעכט צו די סיבות:

  • קיין אנדערע אופֿן איז ניט פּאַסיק. וואָרט איבערזעצונג נאָר טוט נישט אַרבעטן.
  • גוט ינזשעניעריע לייזונג: אויב איר ווילן צו שרייַבן טראַנסלייטערז פֿאַר ב און ן מקור שפּראַכן טאַרגעטעד דאַרפֿן שרייַבן בלויז ב + ען פּשוט מגילה (פּאָלוקאָמפּיליאַטאָראָוו) אלא ווי ב × ען קאָמפּלעקס (גאַנץ פון טראַנסלייטערז).

אָבער, אין פיר, אַ קאַנסעפּטשואַל מיינונג פון אַ זייער זעלטן יקספּרעסיוו גענוג און שטאַרק גענוג צו דעקן יעדער קאַנסיוואַבאַל מקור און ציל שפּראַכן. בשעת עטלעכע זענען ביכולת צו קומען נאָענט צו דעם.

פאַקטיש זאַמלערס פאָרן דורך פילע סטאַגעס. ווען קריייטינג דיין אייגן קאַמפּיילער טוט ניט דאַרפֿן צו איבערחזרן אַלע די שווער אַרבעט אַז מענטשן האָבן געטאן צו מאַכן רעפּראַזאַנטיישאַנז און גענעראַטאָרס. איר קענען איבערזעצן דיין שפּראַך גלייַך אין דזשאַוואַסקריפּט אָדער C און נעמען מייַלע פון יגזיסטינג דזשאַוואַסקריפּט-מאָטאָר און די C קאַמפּיילער צו טאָן די מנוחה. איר קענען אויך נוצן די יגזיסטינג ינטערמידייט פאַרטרעטונג און ווירטואַל מאשינען.

רעקאָרד יבערזעצער

בראָאַדקאַסטער - איז אַ פּראָגראַם אָדער ייַזנוואַרג, וואָס ינוואַלווד דרייַ שפּראַכן: דער מקור, די דעסטיניישאַן און די באַזע. זיי קענען זיין געשריבן אין אַ ה-פאָרעם, פּלייסינג די אָריגינעל לינקס, רעכט און ציל באַזע אונטן.

עס זענען דרייַ טייפּס פון זאַמלערס:

  • בראָאַדקאַסטער - איז סאַמאָקאָמפּיליאַטאָר אויב עס קאָראַספּאַנדז צו די גרונט מקור שפּראַך.
  • קאַמפּיילער וואָס ציל שפּראַך איז די באַסעלינע, גערופֿן סאַמאָרעזידענטנים.
  • בראָאַדקאַסטער - אַ קרייַז-קאַמפּיילער, אויב ער טאַרגעטעד און יקערדיק פאַרשידן שפּראַכן.

וואָס איז דאָס וויכטיק?

אַפֿילו אויב איר קיינמאָל מאַכן אַ פאַקטיש קאַמפּיילער, אַ גוט וויסן פון די טעכנאָלאָגיע פון זייַן שאַפונג, ווייַל דער באַגריף געניצט פֿאַר דעם צוועק זענען געניצט וויידלי, למשל:

  • formatting טעקסט;
  • שפּראַך קוויריז צו דאַטאַבייסיז;
  • אַוואַנסירטע קאָמפּיוטער אַרקאַטעקטשער;
  • דזשענראַלייזד אַפּטאַמאַזיישאַן פּראָבלעמס;
  • גויס;
  • סקריפּטינג שפּראַכן;
  • קאַנטראָולערז;
  • ווירטואַל מאשינען;
  • מאַשין איבערזעצונג.

אין דערצו, אויב איר ווילן צו שרייַבן פּרעפּראָסעססאָרס, לינקערס, לאָודערז, דעבוגגערס און פּראָפילערס, איר מוזן גיין דורך די זעלבע טריט ווי ווען שרייבן אַ קאַמפּיילער.

איר קענען אויך לערנען ווי צו שרייַבן בעסער מגילה, זינט די שאַפונג פון די יבערזעצער פֿאַר די שפּראַך מיטל אַ בעסער שכל פון זייַן ינטראַקאַסיז און אַמביגויטיעס. די לערנען פון די אַלגעמיינע פּרינציפּן פון בראָדקאַסטינג אויך אַלאַוז איר צו ווערן אַ גוט דיזיינער שפּראַך. אַזוי טוט עס ענין ווי אַראָפאַנג די שפּראַך אויב עס קענען ניט זיין ימפּלאַמענאַד Effectively?

פולשטענדיק טעכנאָלאָגיע

קאַמפּיילער טעכנאָלאָגיע קאָווערס פילע פאַרשידענע געביטן פון קאָמפּיוטער וויסנשאַפֿט:

  • פאָרמאַל טעאָריע פון שפּראַך: גראַמאַטיק, פּאַרסינג, קאָמפּוטאַביליטי;
  • קאָמפּיוטער אַרקאַטעקטשער: לימעד שטעלט, ריסק אָדער סיסק, פּיפּעלינעד פּראַסעסינג האַרץ זייגער סייקאַלז, אאז"ו ו.;
  • קאַנסעפּס פון פּראָגראַממינג שפּראַכן, למשל, Performing אַ סיקוואַנס קאָנטראָל, קאַנדישאַנאַל דורכפירונג, יטעראַטיאָן, רעקורסיאָן, פונקטיאָנאַל דיקאַמפּאָוזישאַן, מאָדולאַריטי, סינגקראַנאַזיישאַן, מעטאַ-פּראָגראַממינג, פאַרנעם, קעסיידערדיק סאַב-טייפּס, טעמפּלאַטעס, רעזולטאַט טיפּ, פּראָוטאַטייפּס, אַנאַטיישאַנז, שטראָם, מאָנאַדס, מיילבאַקסיז, פאָרזעצן , ווילדקאַרדס, רעגולער אויסדרוק, טראַנסאַקטיאָנאַל זכּרון, ירושה, פּאָלימאָרפיסם, מאָדע סעטטינגס, און אַזוי אויף. עטק.;
  • אַבסטראַקט שפּראַכן און ווירטואַל מאשינען;
  • אַלגערידאַמז און דאַטן סטראַקטשערז: רעגולער אויסדרוקן, פּאַרסינג אַלגערידאַמז, graphics אַלגערידאַמז, דינאַמיש פּראָגראַממינג, טריינינג;
  • פּראָגראַממינג שפּראַכן: סינטאַקס, סעמאַנטיקס (סטאַטיק און דינאַמיש), שטיצן פּעראַדיימז (סטראַקטשעראַל, ופּ, פונקטיאָנאַל, לאַדזשיקאַל, אָנלייגן, פּאַראַללעליסם, מעטאַ-פּראָגראַממינג);
  • שאַפונג ווייכווארג (זאַמלערס, יוזשאַוואַלי גרויס און קאָמפּליצירט): לאָוקאַלאַזיישאַן, קאַטשינג, קאָמפּאָנענטיזע, אַפּי-Interfaces, שייַעך-נוצן, סינגקראַנאַזיישאַן.

קאַמפּיילער פּלאַן

עטלעכע פון די פּראָבלעמס געפּלאָנטערט אין דער אַנטוויקלונג פון דער עמעס יבערזעצער:

  • פּראָבלעמס מיט די מקור שפּראַך. איז עס גרינג צו צונויפנעמען עס? איז עס אַ פּרעפּראָסעססאָר? ווי זענען די טייפּס? איז עס אַ ביבליאָטעק?
  • גראָופּינג קאַמפּיילער פּאַסיז: איין אָדער מאַלטי-וועג?
  • דער גראַד פון אַפּטאַמאַזיישאַן געוואלט. שנעל און טמא בראָדקאַסט מגילה מיט קליין אָדער קיין אַפּטאַמאַזיישאַן קענען זיין נאָרמאַל. איבער-אַפּטאַמאַזיישאַן קאַמפּיילער וועט לאַנגזאַם, אָבער בעסער קאָד ביי רונטימע זאל זיין ווערט עס.
  • די required גראַד פון טעות דיטעקשאַן. קענען אַ יבערזעצער נאָר האַלטן אין דער ערשטער טעות? ווען עס זאָל האַלטן? צי צו געטרויען די קאַמפּיילער טעות קערעקשאַן?
  • די אַוויילאַביליטי פון מכשירים. אויב דער אָריגינעל שפּראַך איז ניט זייער קליין, די סקאַננער און גענעראַטאָר אַנאַלייזערז are required. עס זענען אויך גענעראַטאָרס, קאָד גענעראַטאָרס, אָבער זיי זענען נישט אַזוי פּראָסט.
  • טיפּ פון ציל קאָד צו זיין דזשענערייטאַד. ווערן אויסגעקליבן פון ריין סאַפּלאַמענטאַד אָדער ווירטואַל מאַשין קאָד. אָדער נאָר שרייַבן אַ פּאָזיציע חלק אַז קריייץ אַ פאָלקס ינטערמידייט פאַרטרעטונג אַזאַ ווי ללוום, רטל, אָדער דזשוום. אָדער מאַכן אַ איבערזעצונג פון דער אָריגינעל אין די מקור קאָד אין C אָדער דזשאַוואַסקריפּט.
  • די פֿאָרמאַט פון די ציל קאָד. איר קענען קלייַבן אַ פֿאַרזאַמלונג שפּראַך, אַ פּאָרטאַטיוו מאַשין קאָד, מאַשין קאָד זיקאָרן בילד.
  • רעטאַרגעטינג. ווען די שטעלן פון גענעראַטאָרס איז גוט צו האָבן אַ פּראָסט ינלעט חלק. פֿאַר דעם סיבה עס איז בעסטער צו האָבן איין גענעראַטאָר פֿאַר די ינפּוט פון פילע טיילן.

קאַמפּיילער אַרטשיטעקטורע: קאַמפּאָונאַנץ

דאס זענען די הויפּט פונקטיאָנאַל קאַמפּאָונאַנץ פון אַ קאַמפּיילער אַז דזשענערייץ געבוירן קאָד (אויב די רעזולטאַט פּראָגראַם איז אַ פּראָגראַם אין C אָדער אַ ווירטואַל מאַשין, איר דאַרפֿן נישט אַזוי פילע סטאַגעס):

  • די ינפּוט פּראָגראַם (לויפן מאַרקס) איז געפֿיטערט זיך די סקאַננער (לעקסיש אַנאַליזער), וואָס קאַנווערץ עס אין אַ טייַך פון טאָקענס.
  • פּאַרסער (פּאַרסער) קאַנסטראַקטינג איין אַבסטראַקט סינטאַקס בוים.
  • סעמאַנטיק אַנאַליזער דיקאַמפּאָוזיז די סעמאַנטיק אינפֿאָרמאַציע און טשעקס די בוים נאָודז פֿאַר ערראָרס. ווי אַ רעזולטאַט, געבויט סעמאַנטיק גראַפיק - אַבסטראַקט סינטאַקס בוים מיט נאָך פּראָפּערטיעס און די געגרינדעט לינקס.
  • ינטערמידייט קאָד גענעראַטאָר טוט בויען אַ לויפן גראַפיק (טופּלעס זענען גרופּט אין הויפּט בלאַקס).
  • מאַשין-זעלבשטענדיק קאָד אָפּטימיזער קאַנדאַקץ ביידע היגע (ין דער באַזע אַפּאַראַט) און גלאבאלע (צו אַלע בלאַקס) אַפּטאַמאַזיישאַן בייסיקלי רוען ין רוטינז. ראַדוסאַז יבעריק קאָד און סימפּליפיעס די חשבונות. דער רעזולטאַט איז אַ modified לויפן גראַפיק.
  • גענעראַטאָר ביינדז ציל קאָד יקערדיק בלאַקס אין אַ רעקטילינעאַר טראַנסמיסיע קאָנטראָל קאָד, קריייטינג אַ כייפעץ טעקע אַססעמבלער ווירטואַל רעגיסטערס (עפשער ינעפפעקטיווע).
  • מאַשין-אָפענגיק אָפּטימיזער, לינקס אַלאַקייץ זיקאָרן צווישן רעדזשאַסטערז און מאכט פּלאַנירונג טימז. עס פּערפאָרמס די קאַנווערזשאַן פּראָגראַם אין פֿאַרזאַמלונג שפּראַך אין דעם פֿאַרזאַמלונג מיט אַ גוט נוצן פון פּיפּעלינינג.

אין נאך, די נוצן פון טעות דיטעקשאַן סאַבסיסטאַם פאַרוואַלטער און סימבאָל טישן.

לעקסיש אַנאַליסיס (סקאַנינג)

די סקאַננער קאַנווערץ די טייַך מקור אותיות זיך אַ טייַך פון טאָקענס, רימוווינג ווהיטעספּאַסע, באַמערקונגען און יקספּאַנדינג מאַקראָס.

סקאַנערז אָפֿט טרעפן פּראָבלעמס, אַזאַ ווי צי אָדער ניט צו נעמען אין חשבון די פאַל, מאַרדזשאַנז, שורה ברייקס און עמבעדיד באַמערקונגען.

ערראָרס אַז קען פּאַסירן בעשאַס סקאַנינג, גערופֿן לעקסיש און אַרייַננעמען:

  • אותיות וואָס זענען נישט אין די Alphabet;
  • וידעפדיק פון די נומער פון אותיות אין אַ וואָרט אָדער שורה;
  • נישט אַ פֿאַרמאַכט צייכן אָדער אַ שטריקל פּשאַט;
  • סוף פון טעקע אין באַמערקונג.

פּאַרסינג (פּאַרסינג)

די פּאַרסער קאַנווערץ די סיקוואַנס פון טאָקענס אין אַ אַבסטראַקט סינטאַקס בוים. יעדער נאָדע אין דער בוים איז סטאָרד ווי אַ כייפעץ מיט געהייסן fields, פילע פון וואָס זענען זיך די בוים נאָודז. אין דעם בינע עס זענען קיין סייקאַלז. ווען איר מאַכן אַ פּאַרסער איז נייטיק צו באַצאָלן ופמערקזאַמקייַט צו דער מדרגה פון קאַמפּלעקסיטי פון גראַמאַטיק (לל אָדער לר) און געפינען אויס צי עס זענען קיין כּללים דיסאַמביגואַטיאָן. עטלעכע שפּראַכן טאָן דאַרפן סעמאַנטיק אַנאַליסיס.

ערראָרס געפֿונען אין דעם בינע זענען גערופֿן סינטאַקס. למשל:

  • ק = 5 * (7 - י;
  • דזש = / 5;
  • 56 = X * 4.

סעמאַנטיק אַנאַליסיס

בעשאַס די סעמאַנטיק אַנאַליסיס צו קאָנטראָלירן די פּערמיססיביליטי פון כּללים און מיטאַרבעטער פּאַרץ פון די פּאַרס בוים (אַלאַוינג דערמאָנען נעמען ינסערטינג אָפּעראַציע פֿאַר ימפּליסאַט טיפּ קאַנווערזשאַנז, און אַזוי אויף. ד) פֿאַר מאָלדינג די סעמאַנטיק גראַפיק.

דאָך, דער שטעלן פון אַדמיססיביליטי פון כּללים אין פאַרשידענע שפּראַכן אַנדערש. אויב איר צונויפנעמען די ז'אבא-ווי שפּראַכן, זאַמלערס זאל געפינען:

  • קייפל בייַטעוודיק דעקלאַראַציע ין זייַן פאַרנעם;
  • אַ דערמאָנען צו אַ בייַטעוודיק איידער זייַן דעקלאַראַציע;
  • רעפֿערענצן צו דעם נאָמען פון די ונדעקלאַרעד;
  • ינפרינגעמענט פון פּאַטענט רעכט;
  • יבעריק אָדער ניט גענוגיק נומער פון טענות אין אַ אופֿן רופן;
  • טיפּ מיסמאַטש.

דור

ינטערמידייט קאָד דור טראגט לויפן גראַפיק קאַמפּאָוזד פון טופּלעס, גרופּט אין יקערדיק בלאַקס.

קאָד דור טראגט אַ פאַקטיש מאַשין קאָד. אין טראדיציאנעלן זאַמלערס פֿאַר די ריסק-מאשינען אויף די ערשטער שריט, איר מאַכן אַ אַססעמבלער מיט אַ Infinite נומער פון ווירטואַל רעגיסטערס. פֿאַר סיסק-מאשינען מיסטאָמע וועט נישט פּאַסירן.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 yi.delachieve.com. Theme powered by WordPress.