ಕಂಪ್ಯೂಟರ್ಪ್ರೋಗ್ರಾಮಿಂಗ್

ಪ್ರಸಾರ - ಜೋಡಕಗಳ ವಿಧಗಳು ಆಗಿದೆ .... ಪರಿವರ್ತಿಸಿ ಮತ್ತು ಪ್ರಸಾರ ಕಾರ್ಯಕ್ರಮವನ್ನು

ಪ್ರೋಗ್ರಾಂಗಳು, ಹಾಗೂ ಜನರು ಒಂದು ಇಂಟರ್ಪ್ರಿಟರ್ ಅಥವಾ ಭಾಷಾಂತರಕಾರ ಅಗತ್ಯವಿದೆ ಒಂದು ಭಾಷೆಯಿಂದ ಮತ್ತೊಂದು ಭಾಷಾಂತರಿಸಲು.

ಮೂಲಭೂತ ಪರಿಕಲ್ಪನೆಗಳನ್ನು

ಪ್ರೋಗ್ರಾಂ ಲೆಕ್ಕಾಚಾರದಿಂದ ಭಾಷಾ ಪ್ರತಿನಿಧಿಸುತ್ತದೆ: ನಾನು → ಪಿ → ಪಿ (ನಾನು). ಇಂಟರ್ಪ್ರೆಟರ್ ಇನ್ಪುಟ್ ಪ್ರೋಗ್ರಾಂ ಪಿ ಮತ್ತು ಕೆಲವು ಇನ್ಪುಟ್ x ಪೂರೈಸಲಾಗುತ್ತದೆ ಒಂದು ಕಾರ್ಯಕ್ರಮ. ಇದು ಪಿ x ನಲ್ಲಿ ನಿರ್ವಹಿಸುತ್ತದೆ: ನಾನು (ಪಿ, X) = ಪಿ (X). ಕೇವಲ ಒಂದು ಭಾಷಾಂತರಕಾರ ಎಲ್ಲಾ ಸಂಭಾವ್ಯ ಕಾರ್ಯಕ್ರಮಗಳು (ಇದು ಮಾಡಬಹುದು ಔಪಚಾರಿಕ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ನಿರೂಪಿಸಲಾಗಿದೆ) ಪ್ರದರ್ಶನ ಸಾಮರ್ಥ್ಯ ಇಲ್ಲ ಎನ್ನುವ ಬಹಳ ಆಳವಾದ ಮತ್ತು ಗಮನಾರ್ಹ ಡಿಸ್ಕವರಿ ಟ್ಯೂರಿಂಗ್ ಆಗಿದೆ.

ಪ್ರೊಸೆಸರ್ ಯಂತ್ರಭಾಷೆ ಕಾರ್ಯಕ್ರಮಗಳನ್ನು ಇಂಟರ್ಪ್ರೆಟರ್ ಆಗಿದೆ. ಅವರು ಅರ್ಥೈಸಲು ಸುಲಭ ಒಂದು ರೂಪಕ್ಕೆ ಭಾಷಾಂತರಿಸಲು ಆದ್ದರಿಂದ, ಉನ್ನತ ಮಟ್ಟದ ಭಾಷೆಗಳಿಗೆ ವ್ಯಾಖ್ಯಾನಕಾರರು ಬರೆಯಲು ಸಾಮಾನ್ಯವಾಗಿ ತುಂಬಾ ದುಬಾರಿ.

ಅನುವಾದಕರು ಅಂಶಗಳು ಬಹಳ ವಿಚಿತ್ರ ಹೆಸರುಗಳನ್ನು ಹೊಂದಿವೆ

  • ಅಸೆಂಬ್ಲರ್ ಯಂತ್ರ ಭಾಷೆಗಳಿಗೆ ಭಾಷಾಂತರಿಸುವ ಅಸೆಂಬ್ಲಿ ಭಾಷೆ ಕಾರ್ಯಕ್ರಮಗಳು.
  • ಕಂಪೈಲರ್ ಕಡಿಮೆ ಭಾಷೆಗೆ ಉನ್ನತ ಮಟ್ಟದ ಭಾಷೆಯಲ್ಲಿ ಭಾಷಾಂತರಿಸುತ್ತದೆ.

ಪಿ → ಎಕ್ಸ್ → ಪ್ರ ಅಂದರೆ, ∀x: - ಪ್ರಸಾರ ಇಬ್ಬರೂ ಅದೇ ಶಬ್ದಾರ್ಥ ಹೊಂದಿರುವ ರೀತಿಯಲ್ಲಿ ಕೆಲವು ಭಾಷೆ ಎಸ್ ಪ್ರೋಗ್ರಾಂ ಇನ್ಪುಟ್ ಮಾಹಿತಿ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಟಿ ಪ್ರೋಗ್ರಾಂ ತಯಾರಿಸುವ ಒಂದು ಕಾರ್ಯಕ್ರಮ. ಪಿ (X) = ಪ್ರಶ್ನೆ (X).

ಅರ್ಥವಿವರಣೆ ಏನೋ ಇಡೀ ಕಾರ್ಯಕ್ರಮದ ಪ್ರಸಾರ ಮಾಡಿದರೆ, ಇದು ನಿರ್ವಹಣೆಯಿಲ್ಲದೇ ಅಥವಾ .ಟಾಪ್ ಸಂಕಲನ ಮೊದಲು ಒಂದು ಸಂಕಲನ ಕರೆಯಲಾಗುತ್ತದೆ. .ಟಾಪ್ ಕಂಪೈಲರ್ ಸರಣಿಯಲ್ಲಿ ಬಳಸಬಹುದು, ಎರಡನೆಯದು ಅನೇಕವೇಳೆ ಉದಾಹರಣೆಗೆ ಅಸೆಂಬ್ಲರ್, ಆಗಿದೆ:

ಮೂಲ ಕೋಡ್ ಕಂಪೈಲರ್ → (ಅನುವಾದಕ) → → ವಿಧಾನಸಭೆ ಕೋಡ್ ಅಸೆಂಬ್ಲರ್ (ಕಂಪೈಲರ್) → → ಸಿಪಿಯು ಯಂತ್ರದ ಕೋಡ್ (ಇಂಟರ್ಪ್ರಿಟರ್).

ಇತರ ಈ ಹಿಂದೆ ಸಂಗ್ರಹಿಸಿದ ಭಾಗವಾದ ಕಾರ್ಯರೂಪಕ್ಕೆ ಯಾವಾಗ ಪ್ರೋಗ್ರಾಂ, ಪ್ರಸಾರ ವೇಳೆ ನಡೆಸುವ ಅಥವಾ ಕ್ರಿಯಾತ್ಮಕ ಸಂಕಲನ ಸಂಭವಿಸುತ್ತದೆ. ಜೆಐಟಿ-ಜೋಡಕಗಳು ಮತ್ತೆ ಮತ್ತೆ ಮೂಲ ಕೋಡ್ ಪುನರಾವರ್ತಿಸಲು ಇದರಿಂದಾಗಿ ಅವರು ಆಗಲೇ ಎಂಬುದನ್ನು ನೆನಪಿಡಿ. ಅವರು ಪ್ರೋಗ್ರಾಮ್ ಪರಿಸರದ ನಡವಳಿಕೆಯನ್ನು ಆಧರಿಸಿ ಹೊಂದಿಕೊಳ್ಳಬಲ್ಲ ಸಂಕಲನ ಮತ್ತು ಮರುಸಂಕಲಿಕೆಯನ್ನು ಉಂಟುಮಾಡಬಹುದು.

ಹಲವು ಭಾಷೆಗಳು ಕಂಪೈಲ್ ಸಮಯದಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಚಾಲನಾ ಸಮಯದಲ್ಲಿ ಹೊಸ ಕೋಡ್ ಕಂಪೈಲ್ ಅವಕಾಶ.

ಅನುವಾದದ ಹಂತ

ಬ್ರಾಡ್ಕಾಸ್ಟ್ ವಿಶ್ಲೇಷಿಸುವ ಮತ್ತು ರೆವುಲುಶನ್ ಮೆಟ್ಟಿಲುಗಳ ಹೊಂದಿದೆ:

ಮೂಲ ಕೋಡ್ ವಿಶ್ಲೇಷಕದ → → → ಪರಿಕಲ್ಪನಾ ಪ್ರಾತಿನಿಧ್ಯ ಜನರೇಟರ್ (ಸಂಯೋಜಕ) → ಟಾರ್ಗೆಟ್ ಕೋಡ್.

ಈ ಈ ಕಾರಣಗಳಿಗಾಗಿ ಕಾರಣ:

  • ಯಾವುದೇ ವಿಧಾನವನ್ನು ಸೂಕ್ತವಲ್ಲ. ಪದಗಳ ಅನುವಾದ ಕೇವಲ ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ.
  • ಗುಡ್ ಎಂಜಿನಿಯರಿಂಗ್ ಪರಿಹಾರ: ನೀವು ಬದಲಿಗೆ ಎಂ × ಎನ್ ಸಂಕೀರ್ಣ ಹೆಚ್ಚು ಗುರಿ ಮಾತ್ರ ಎಂ + ಎನ್ ಸರಳವಾದ ಕಾರ್ಯಕ್ರಮಗಳನ್ನು (polukompilyatorov) ಬರೆಯಲು ಅಗತ್ಯವಿಲ್ಲ M ಮತ್ತು N ಮೂಲ ಭಾಷೆಗಳಿಗೆ ಅನುವಾದಕರು (ಅನುವಾದಕರು ಒಟ್ಟು) ಬರೆಯಲು ಬಯಸಿದಲ್ಲಿ.

ಆದಾಗ್ಯೂ ಬಳಕೆಯಲ್ಲಿ, ಬಹಳ ವಿರಳವಾಗಿ ಸಾಕಷ್ಟು ಅಭಿವ್ಯಕ್ತಿಗೆ ಮತ್ತು ಸಾಕಷ್ಟು ಪ್ರಬಲ ಬಗೆಗಿನ ಕಾಲ್ಪನಿಕ ವೀಕ್ಷಿಸಿ ಸಂಭಾವ್ಯ ಮೂಲ ಮತ್ತು ಗುರಿ ಭಾಷೆಗಳನ್ನಷ್ಟೆ. ಕೆಲವು ಈ ಹತ್ತಿರ ಬರಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ ಕೆಲವರಿದ್ದರು.

ರಿಯಲ್ ಸಂಕಲನಕಾರರ ಅನೇಕ ಹಂತಗಳಲ್ಲಿ ಮೂಲಕ ಹಾದುಹೋಗುತ್ತವೆ. ನಿಮ್ಮ ಸ್ವಂತ ಕಂಪೈಲರ್ ರಚಿಸುವಾಗ ಜನರು ನಿರೂಪಣೆಗಳು ಮತ್ತು ಉತ್ಪಾದಕಗಳು ರಚಿಸಲು ಮಾಡಿದ ಎಲ್ಲಾ ಹಾರ್ಡ್ ಕೆಲಸ ಪುನರಾವರ್ತಿಸಲು ಅಗತ್ಯವಿಲ್ಲ. ನೀವು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಅಥವಾ ಸಿ ನೇರವಾಗಿ ನಿಮ್ಮ ಭಾಷೆ ಭಾಷಾಂತರಿಸಲು ಮತ್ತು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಎಂಜಿನ್ ಮತ್ತು ಉಳಿದ ಮಾಡಲು C ಕಂಪೈಲರ್ ಅನುಕೂಲಗಳನ್ನು ಪಡೆಯಲು. ನೀವು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಮಧ್ಯಂತರ ಪ್ರಾತಿನಿಧ್ಯ ಮತ್ತು ಬಳಸಬಹುದು ಭ್ರಾಮಕ ಯಂತ್ರಗಳು.

ದಾಖಲೆ ಭಾಷಾಂತರಕಾರ

ಮೂಲ, ಗಮ್ಯಸ್ಥಾನ ಮತ್ತು ಬೇಸ್: - ಪ್ರಸಾರ ಮೂರು ಭಾಷೆಗಳಲ್ಲಿ ತೊಡಗುತ್ತಾ, ಪ್ರೋಗ್ರಾಂ ಅಥವಾ ಯಂತ್ರಾಂಶವನ್ನು ಆಗಿದೆ. ಅವರು ಕೆಳಗೆ ಮೂಲ ಎಡ, ಬಲ ಮತ್ತು ಗುರಿ ಆಧಾರವು ಸದಾ ಟಿ ಆಕಾರದಲ್ಲಿ ಬರೆಯಬಹುದು.

ಸಂಕಲನಕಾರರ ಮೂರು ವಿಧಗಳಿವೆ:

  • ಪ್ರಸಾರ - ಇದು ಮೂಲ ಮೂಲ ಭಾಷೆ ಅನುರೂಪವಾಗಿದೆ ವೇಳೆ samokompilyator ಆಗಿದೆ.
  • ಭಾಷೆಯನ್ನು ಗುರಿಯಾಗಿರಿಸಿದ ಕಂಪೈಲರ್ ಬೇಸ್ಲೈನ್, samorezidentnym ಕರೆಯಲಾಗುತ್ತದೆ.
  • ಪ್ರಸಾರ - ಒಂದು ಅಡ್ಡ-ಜೋಡಕ, ಅವರು ಗುರಿ ವೇಳೆ ಮತ್ತು ಮೂಲಭೂತ ವಿವಿಧ ಭಾಷೆಗಳಲ್ಲಿ.

ಏಕೆ ಈ ಮುಖ್ಯ?

ಸಹ ಈ ಉದ್ದೇಶಕ್ಕಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ ಪರಿಕಲ್ಪನೆ, ಉದಾಹರಣೆಗೆ, ವ್ಯಾಪಕವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ ನೀವು ನಿಜವಾದ ಕಂಪೈಲರ್, ಅದರ ಸೃಷ್ಟಿಯ ತಂತ್ರಜ್ಞಾನ ಉತ್ತಮ ಜ್ಞಾನ ಮಾಡಲು ಎಂದಿಗೂ ವೇಳೆ:

  • ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಪಠ್ಯ;
  • ಭಾಷೆಯಲ್ಲಿಲ್ಲದ ಪ್ರಶ್ನೆಗಳನ್ನು ದತ್ತಾಂಶ;
  • ಮುಂದುವರಿದ ಕಂಪ್ಯೂಟರ್ ವಿನ್ಯಾಸ;
  • ಸಾಮಾನ್ಯೀಕರಿಸಿದ ಅನುಕೂಲತೆಯ ಸಮಸ್ಯೆಗಳು;
  • ಜಿಯುಐ;
  • ಲಿಪಿಗಳ;
  • ನಿಯಂತ್ರಕಗಳು;
  • ಭ್ರಾಮಕ ಯಂತ್ರಗಳು;
  • ಯಂತ್ರ ಭಾಷಾಂತರ.

ಜೊತೆಗೆ, ನೀವು preprocessors, ಲಿಂಕರ್ಸ್, ಲೋಡರುಗಳು, ದೋಷ ಮತ್ತು ಪ್ರೊಫೈಲರ್ಗಳಂತಹ ಬರೆಯಲು ಬಯಸಿದರೆ, ನೀವು ಕಂಪೈಲರ್ ಬರೆಯುವಾಗ ಅದೇ ಕ್ರಮಗಳನ್ನು ಮೂಲಕ ಹೋಗಬೇಕು.

ನೀವು ಭಾಷೆಗೆ ಅನುವಾದಕರ ಸೃಷ್ಟಿ ತನ್ನ ತಲೆಯೆತ್ತಿದವು ಮತ್ತು ಅಸ್ಪಷ್ಟತೆಯನ್ನು ಉತ್ತಮ ತಿಳುವಳಿಕೆಯನ್ನು ಅಂದರೆ, ಉತ್ತಮ ಕಾರ್ಯಕ್ರಮಗಳು ಬರೆಯಲು ಹೇಗೆ ಕಲಿಯಬಹುದು. ಪ್ರಸಾರ ಸಾಮಾನ್ಯ ತತ್ವಗಳನ್ನು ಅಧ್ಯಯನವು ನೀವು ಉತ್ತಮ ಡಿಸೈನರ್ ಭಾಷೆಯಾಯಿತು ಅನುಮತಿಸುತ್ತದೆ. ಆದ್ದರಿಂದ ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಜಾರಿಗೊಳಿಸಿಲ್ಲ ಸಾಧ್ಯವಾದರೆ ಭಾಷೆಯನ್ನು ಹೇಗೆ ಕಡಿದಾದ ಮುಖ್ಯವಾಗುತ್ತದೆ?

ಸಮಗ್ರ ತಂತ್ರಜ್ಞಾನ

ಕಂಪೈಲರ್ ತಂತ್ರಜ್ಞಾನದ ಕಂಪ್ಯೂಟರ್ ವಿಜ್ಞಾನದ ವಿವಿಧ ವಿಷಯಗಳನ್ನು ಒಳಗೊಂಡಿದೆ:

  • ಭಾಷೆಯ ಫಾರ್ಮಲ್ ಸಿದ್ಧಾಂತ: ವ್ಯಾಕರಣ, ಪಾರ್ಸಿಂಗ್, ಕಾಂಪ್ಯುಟಬಿಲಿಟಿ;
  • ಕಂಪ್ಯೂಟರ್ ವಿನ್ಯಾಸ. ಬೊಧನಾ ಆರ್ಐಎಸ್ಸಿ ಅಥವಾ CISC, ಕೋಶಗಳ ಸರಣಿಯ ಪ್ರಕ್ರಿಯೆಗೆ ಕೋರ್ ಗಡಿಯಾರ ಚಕ್ರಗಳನ್ನು, ಇತ್ಯಾದಿ;
  • ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳ ಪರಿಕಲ್ಪನೆಗಳು, ಉದಾಹರಣೆಗೆ, ಒಂದು ಅನುಕ್ರಮ ನಿಯಂತ್ರಣ, ಷರತ್ತುಬದ್ಧ ಮರಣದಂಡನೆ, ಪುನರಾವರ್ತನೆ, ಪುನರಾವರ್ತನ, ಕ್ರಿಯಾತ್ಮಕ ವಿಭಜನೆಯು ಮಾಡ್ಯುಲಾರಿಟಿ ಸಿಂಕ್ರೊನೈಸೇಶನ್, ಮೆಟಾ-ಪ್ರೋಗ್ರಾಮಿಂಗ್, ವ್ಯಾಪ್ತಿ, ನಿರಂತರ ಉಪ ವಿಧಗಳು, ಟೆಂಪ್ಲೇಟ್ಗಳು, ಔಟ್ಪುಟ್ ಮಾದರಿ, ಮೂಲಮಾದರಿಗಳ, ಟಿಪ್ಪಣಿಗಳು, ಹರಿವು, monads, ಮೇಲ್ಬಾಕ್ಸ್ಗಳು ಪ್ರದರ್ಶನ, ಮುಂದುವರೆಯಲು , ವೈಲ್ಡ್ಕಾರ್ಡ್ಗಳನ್ನು, ಸಾಮಾನ್ಯ ನಿರೂಪಣೆಯ, ವ್ಯವಹಾರ್ಯ ಸ್ಮರಣೆ ಪಿತ್ರಾರ್ಜಿತ ಬಹುಅಸ್ಫಾಟಿಕತೆಯನ್ನು, ಮೋಡ್ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು, ಹೀಗೆ ಇತ್ಯಾದಿ..;
  • ಅಮೂರ್ತ ಭಾಷೆಗಳ ಮತ್ತು ವಾಸ್ತವ ಯಂತ್ರಗಳ;
  • ಕ್ರಮಾವಳಿಗಳು ಮತ್ತು ಮಾಹಿತಿ ವಿನ್ಯಾಸಗಳನ್ನು: ನಿರೂಪಣೆಗಳಿಂದ, ಪಾರ್ಸಿಂಗ್ ಕ್ರಮಾವಳಿಗಳು, ಗ್ರಾಫಿಕ್ಸ್ ಕ್ರಮಾವಳಿಗಳು ಡೈನಾಮಿಕ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್, ತರಬೇತಿ;
  • ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು: ವಾಕ್ಯರಚನೆ, ಶಬ್ದಾರ್ಥ (ಸ್ಥಿರ ಮತ್ತು ಕ್ರಿಯಾಶೀಲ), ಬೆಂಬಲ ಪ್ಯಾರಾಡೈಮ್ಸ್ (ಸ್ಟ್ರಕ್ಚರಲ್, ಓಪ್, ಕ್ರಿಯಾತ್ಮಕ, ತಾರ್ಕಿಕ, ಸ್ಟಾಕ್, ಏಕಕಾಲಿಕ, ಮೆಟಾ-ಪ್ರೋಗ್ರಾಮಿಂಗ್);
  • ಸೃಷ್ಟಿ ತಂತ್ರಾಂಶ (ಸಂಕಲನಕಾರರ, ಸಾಮಾನ್ಯವಾಗಿ ದೊಡ್ಡ ಮತ್ತು ಸಂಕೀರ್ಣ): ಸ್ಥಳೀಕರಣ, ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳುವ, componentize, ಎಪಿಐ-ಸಂಪರ್ಕಸಾಧನಗಳನ್ನು, ಮರು ಬಳಕೆ, ಸಿಂಕ್ರೊನೈಸೇಶನ್.

ಕಂಪೈಲರ್ ವಿನ್ಯಾಸ

ನಿಜವಾದ ಭಾಷಾಂತರಕಾರ ಅಭಿವೃದ್ಧಿಯಲ್ಲಿ ಎದುರಾಗುವ ಕೆಲವು:

  • ಮೂಲ ಭಾಷೆ ತೊಂದರೆಗಳು. ಇದು ಕಂಪೈಲ್ ಸುಲಭ? ಒಂದು ಪ್ರಿಪ್ರೊಸೆಸರ್ ಇಲ್ಲ? ಹೇಗೆ ಪ್ರಕಾರಗಳು? ಗ್ರಂಥಾಲಯದ ಇಲ್ಲ?
  • ಕಂಪೈಲರ್ ಪಾಸ್ಗಳನ್ನು ಗುಂಪು: ಒಂದು ಅಥವಾ ಬಹು ರೀತಿಯಲ್ಲಿ?
  • ಆಪ್ಟಿಮೈಜೇಷನ್ ಮಟ್ಟವನ್ನು ಬಯಸಿದ. ಕಡಿಮೆ ಅಥವಾ ಯಾವುದೇ ಆಪ್ಟಿಮೈಸೇಶನ್ ಫಾಸ್ಟ್ ಮತ್ತು ಅಶುಚಿಯಾದ ಪ್ರಸಾರ ಕಾರ್ಯಕ್ರಮವನ್ನು ಸಹಜವಾಗಿರಬಹುದು. ಅತಿ ಆಪ್ಟಿಮೈಜೇಷನ್ ಕಂಪೈಲರ್ ಇಳಿಮುಖವಾಗುತ್ತದೆ, ಆದರೆ ಚಾಲನಾ ಸಮಯದಲ್ಲಿ ಉತ್ತಮ ಕೋಡ್ ಮೌಲ್ಯದ ಇರಬಹುದು.
  • ದೋಷ ಪತ್ತೆ ಅಗತ್ಯವಿರುವ ಪದವಿಯನ್ನು. ಒಂದು ಭಾಷಾಂತರಕಾರ ಕೇವಲ ಮೊದಲ ದೋಷ ನಿಲ್ಲಿಸಬಹುದು? ಅದು ಯಾವಾಗ ನಿಲ್ಲಿಸಲು? ಕಂಪೈಲರ್ ದೋಷ ತಿದ್ದುಪಡಿ ನಂಬಲು ಎಂದು?
  • ಲಭ್ಯತೆ ಸಲಕರಣೆಗಳು. ಮೂಲ ಭಾಷೆಯನ್ನು ಸಣ್ಣ ಇದ್ದರೆ, ಸ್ಕ್ಯಾನರ್ ಮತ್ತು ಜನರೇಟರ್ ವಿಶ್ಲೇಷಕರು ಅಗತ್ಯವಿದೆ. ಉತ್ಪಾದಕಗಳು, ಕೋಡ್ ಉತ್ಪಾದಕಗಳು ಇವೆ, ಆದರೆ ಅಷ್ಟಾಗಿ ಬಳಕೆಯಲ್ಲಿಲ್ಲ.
  • ಗುರಿ ಕೋಡ್ ಪ್ರಕಾರ ಉತ್ಪಾದಿಸಲು ಅಗತ್ಯವಿರುವ. ಶುದ್ಧ ಪೂರಕವಾದ ಅಥವಾ ವರ್ಚುವಲ್ ಗಣಕ ಕೋಡ್ ಆಯ್ಕೆ. ಅಥವಾ ಕೇವಲ ಇಂತಹ LLVM, ಆರ್ಟಿಎಲ್, ಅಥವಾ ರಲ್ಲಿ JVM ಒಂದು ಜನಪ್ರಿಯ ಮಧ್ಯಂತರ ಪ್ರಾತಿನಿಧ್ಯ ಸೃಷ್ಟಿಸುವ ಒಂದು ನಮೂದನ್ನು ಭಾಗವನ್ನು ಬರೆಯಲು. ಅಥವಾ C ಅಥವಾ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮೂಲ ಸಂಕೇತ ಮೂಲ ಭಾಷಾಂತರವನ್ನು ಮಾಡಲು.
  • ರೂಪದಲ್ಲಿ ಗುರಿ ಕೋಡ್. ನೀವು ಆಯ್ಕೆ ಮಾಡಬಹುದು ಜೋಡಣೆ ಭಾಷೆ, ಪೋರ್ಟಬಲ್ ಯಂತ್ರ ಕೋಡ್ ಯಂತ್ರದ ಕೋಡ್ ಮೆಮೊರಿ ಚಿತ್ರ.
  • Retargeting. ಯಾವಾಗ ಉತ್ಪಾದಕಗಳ ಸೆಟ್ ಒಳ್ಳೆಯದು ಸಾಮಾನ್ಯ ಪ್ರವೇಶದ್ವಾರ ಭಾಗವನ್ನು ಹೊಂದಲು. ಈ ಕಾರಣಕ್ಕಾಗಿ ಇದು ಅನೇಕ ಭಾಗಗಳನ್ನು ಇನ್ಪುಟ್ ಒಂದಕ್ಕಿಂತ ಜನರೇಟರ್ ಹೊಂದಲು ಉತ್ತಮ.

ಕಂಪೈಲರ್ ಆರ್ಕಿಟೆಕ್ಚರ್: ಘಟಕಗಳನ್ನು

ಈ ಸ್ಥಳೀಯ ಕೋಡ್ ರಚಿಸುವ (ಉತ್ಪಾದನೆಯ ಕಾರ್ಯಕ್ರಮದಲ್ಲಿ ಸಿ ಅಥವಾ ವರ್ಚ್ಯುವಲ್ ಯಂತ್ರದಲ್ಲಿ ಒಂದು ಪ್ರೋಗ್ರಾಂ ವೇಳೆ, ನೀವು ಅನೇಕ ಹಂತಗಳಲ್ಲಿ ಅಗತ್ಯವಿದೆ) ಒಂದು ಕಂಪೈಲರ್ ಪ್ರಮುಖ ಕ್ರಿಯಾತ್ಮಕ ಘಟಕಗಳಾಗಿದ್ದು:

  • ಇನ್ಪುಟ್ ಕಾರ್ಯಕ್ರಮ (ಹರಿವು ಅಂಕಗಳನ್ನು) ಇದು ಸಂಕೇತಗಳನ್ನು ಒಂದು ಪ್ರವಾಹಕ್ಕೆ ಪರಿವರ್ತಿಸುತ್ತದೆ ಇದು ವಿಶ್ಲೇಷಕದ (ನಿಘಂಟಿನ ವಿಶ್ಲೇಷಕ), ತಿನ್ನಿಸಲಾಗುತ್ತದೆ.
  • ಪಾರ್ಸರ್ (ಪಾರ್ಸರ್) ಒಂದು ಅಮೂರ್ತ ವಾಕ್ಯ ಮರ ನಿರ್ಮಿಸುವ.
  • ಲಾಕ್ಷಣಿಕ ವಿಶ್ಲೇಷಕದ ಸಂಜ್ಞಾ ಮಾಹಿತಿ ಚದುರಿಸಿ ಮತ್ತು ದೋಷಗಳನ್ನು ಮರದ ಗ್ರಂಥಿಗಳು ಪರಿಶೀಲಿಸುತ್ತದೆ. ಹೆಚ್ಚುವರಿ ಲಕ್ಷಣಗಳನ್ನು ಮತ್ತು ಸ್ಥಾಪಿತ ಕೊಂಡಿಗಳು ಅಮೂರ್ತ ವಾಕ್ಯ ಮರ - ಪರಿಣಾಮವಾಗಿ, ಸಂಜ್ಞಾ ಗ್ರಾಫ್ ನಿರ್ಮಿಸಿದ.
  • ಮಧ್ಯಕಾಲೀನ ಕೋಡ್ ಜನರೇಟರ್ ಒಂದು ಹರಿವು ಗ್ರಾಫ್ ನಿರ್ಮಿಸುತ್ತದೆ (tuples ಮುಖ್ಯ ಗುಂಪುಗಳಿವೆ ವಿಂಗಡಿಸಲಾಗಿದ್ದು).
  • ಯಂತ್ರ-ಸ್ವತಂತ್ರ ಕೋಡ್ ಆಪ್ಟಿಮೈಜರ್ ಎರಡೂ ಸ್ಥಳೀಯ (ಘಟಕ ನೆಲೆಯನ್ನು ಒಳಗೆ) ಮತ್ತು ಜಾಗತಿಕ (ಎಲ್ಲಾ ಬ್ಲಾಕ್ಗಳನ್ನಾಗಿ) ಆಪ್ಟಿಮೈಜೇಷನ್ ವಾಡಿಕೆಯ ಒ ಮೂಲತಃ ಉಳಿದ ನಡೆಸುತ್ತದೆ. ಅಧಿಕ ಕೋಡ್ ಕಡಿಮೆ ಮತ್ತು ಲೆಕ್ಕಾಚಾರಗಳು ಸುಲಭಗೊಳಿಸುತ್ತದೆ. ಪರಿಣಾಮವಾಗಿ ಒಂದು ಪರಿವರ್ತಿತ ಹರಿವು ರೇಖಾನಕ್ಷೆ.
  • ಜನರೇಟರ್ (ಬಹುಶಃ ಪರಿಣಾಮಕಾರಿಯಲ್ಲದ) ಆಬ್ಜೆಕ್ಟ್ ಫೈಲ್ ಅಸೆಂಬ್ಲರ್ ವಾಸ್ತವ ರೆಜಿಸ್ಟರ್ಗಳನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ ಒಂದು ಸರಳರೇಖಾಕೃತಿಯ ಪ್ರಸರಣ ನಿಯಂತ್ರಣ ಕೋಡ್ಗೆ ಗುರಿ ಕೋಡ್ ಮೂಲ ಬ್ಲಾಕ್ಗಳನ್ನು ಬಂಧಿಸುತ್ತದೆ.
  • ಕಂಪ್ಯೂಟರ್-ಅವಲಂಬಿತ ಆಪ್ಟಿಮೈಜರ್, ಲಿಂಕರ್ ರೆಜಿಸ್ಟರ್ಗಳನ್ನು ನಡುವೆ ಮೆಮೊರಿ ಗೊತ್ತುಪಡಿಸುತ್ತದೆ ಮತ್ತು ಯೋಜನೆ ತಂಡಗಳು ಎಂದು. ಇದು ಪೈಪ್ಲೈನಿಂಗ್ ಉತ್ತಮ ಬಳಕೆ ಈ ವಿಧಾನ ಸಭೆಯಲ್ಲಿ ವಿಧಾನಸಭಾ ಭಾಷೆಯಲ್ಲಿ ಪರಿವರ್ತನೆ ಪ್ರೋಗ್ರಾಂ ನಿರ್ವಹಿಸುತ್ತದೆ.

ಜೊತೆಗೆ, ದೋಷ ಪತ್ತೆ ಉಪ ವಿಭಾಗ ಮ್ಯಾನೇಜರ್ ಮತ್ತು ಚಿಹ್ನೆ ಕೋಷ್ಟಕಗಳು ಬಳಕೆ.

ನಿಘಂಟಿನ ವಿಶ್ಲೇಷಣೆ (ಸ್ಕ್ಯಾನಿಂಗ್)

ಸ್ಕ್ಯಾನರ್ ಸಂಕೇತಗಳನ್ನು ತೆಗೆದು ಜಾಗಗಳನ್ನು, ಕಾಮೆಂಟ್ಗಳನ್ನು ಮತ್ತು ವಿಸ್ತರಿಸುವ ಮ್ಯಾಕ್ರೋಸುಗಳನ್ನು ಸ್ಟ್ರೀಮ್ನಂತೆ ಸ್ಟ್ರೀಮ್ ಮೂಲವನ್ನು ಪಾತ್ರಗಳು ಪರಿವರ್ತಿಸುತ್ತದೆ.

ಸ್ಕ್ಯಾನರ್ಗಳು ಸಾಮಾನ್ಯವಾಗಿ ತೆಗೆದುಕೊಳ್ಳಲು ಎಂಬುದನ್ನು ಸಂದರ್ಭದಲ್ಲಿ, ಅಂಚು, ಸಾಲು ವಿರಾಮಗಳನ್ನು ಮತ್ತು ಎಂಬೆಡೆಡ್ ಕಾಮೆಂಟ್ಗಳನ್ನು ಗಣನೆಗೆ ಸಮಸ್ಯೆಯನ್ನು ಎದುರಿಸಬಹುದು.

ಸ್ಕ್ಯಾನಿಂಗ್ ಸಮಯದಲ್ಲಿ ಉಂಟಾಗುವ ದೋಷಗಳು ಭಾಷಾ ಕರೆದು ಸೇರಿವೆ:

  • ವರ್ಣಮಾಲೆಯ ಎಂದು ಅಕ್ಷರ;
  • ಒಂದು ಪದ ಅಥವಾ ಸಾಲಿನಲ್ಲಿ ಅಕ್ಷರಗಳ ಸಂಖ್ಯೆ ಮೀರಿದ;
  • ಒಂದು ಮುಚ್ಚಿದ ಚಿಹ್ನೆ ಅಥವಾ ಒಂದು ಸ್ಟ್ರಿಂಗ್ ಅಕ್ಷರ;
  • ಕಾಮೆಂಟ್ನಲ್ಲಿ ಕಡತದ ಕೊನೆಯಲ್ಲಿ.

ಪಾರ್ಸಿಂಗ್ (ಪಾರ್ಸಿಂಗ್)

ಪಾರ್ಸರ್ ಟೋಕನ್ಗಳ ಅನುಕ್ರಮ ಒಂದು ಅಮೂರ್ತ ವಾಕ್ಯ ಮರ ಪರಿವರ್ತಿಸುತ್ತದೆ. ಮರದ ಪ್ರತಿಯೊಂದು ನೋಡ್ ತಮ್ಮನ್ನು ಮರದ ಗ್ರಂಥಿಗಳು, ಅವುಗಳಲ್ಲಿ ಅನೇಕವು ಎಂಬ ಜಾಗ, ವಸ್ತುವಿಗೆ ಸಂಗ್ರಹಗೊಳ್ಳುತ್ತದೆ. ಈ ಹಂತದಲ್ಲಿ ಯಾವುದೇ ಚಕ್ರಗಳನ್ನು ಇವೆ. ನೀವು ರಚಿಸಲು ಒಂದು ಪಾರ್ಸರ್ ವ್ಯಾಕರಣ (ಎಲ್ಎಲ್ ಅಥವಾ ಎಲ್ಆರ್) ಸಂಕೀರ್ಣತೆಯ ಮಟ್ಟದ ಗಮನ ಪಾವತಿಸಲು ಮತ್ತು ಯಾವುದೇ ನಿಯಮಗಳನ್ನು ದ್ವಂದ್ವ ನಿವಾರಣೆ ಇವೆ ಎಂಬುದನ್ನು ಕಂಡುಹಿಡಿಯಲು ಅಗತ್ಯ. ಕೆಲವು ಭಾಷೆಗಳಲ್ಲಿ ಲಾಕ್ಷಣಿಕ ವಿಶ್ಲೇಷಣೆಯ ಅಗತ್ಯವಿರುತ್ತದೆ.

ಈ ಹಂತದಲ್ಲಿ ದೋಷಗಳು ಕಂಡುಬಂದಿವೆ ವಾಕ್ಯ ಕರೆಯಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ:

  • ಕೆ = 5 * (7 - ವೈ;
  • ಜೆ = / 5;
  • 56 = X * 4.

ಲಾಕ್ಷಣಿಕ ವಿಶ್ಲೇಷಣೆಯ

ಸಮಯದಲ್ಲಿ ಲಾಕ್ಷಣಿಕ ವಿಶ್ಲೇಷಣೆಯ ಪಾರ್ಸ್ ಮರದ ನಿಯಮಗಳು ಮತ್ತು ಸಹಾಯಕ ಭಾಗಗಳ permissibility ಚೆಕ್ (ಅಂತರ್ಗತ ರೀತಿಯ ಪರಿವರ್ತನೆಗಾಗಿ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಸೇರಿಸುವ ಉಲ್ಲೇಖ ಹೆಸರುಗಳು ಅವಕಾಶ, ಹೀಗೆ. ಡಿ) ಸಂಜ್ಞಾ ಗ್ರಾಫ್ ರೂಪಿಸುವ ಫಾರ್.

ನಿಸ್ಸಂಶಯವಾಗಿ, ವಿವಿಧ ವಿವಿಧ ಭಾಷೆಗಳಲ್ಲಿ ನಿಯಮಗಳ ಸ್ವೀಕರಿಸಲು ನ ಸೆಟ್. ನೀವು ಜಾವಾ ತರಹದ ಭಾಷೆಗಳ ಕಂಪೈಲ್ ಸಂಕಲನಕಾರರ ಕಾಣಬಹುದು:

  • ಅದರ ವ್ಯಾಪ್ತಿಯಲ್ಲಿ ಅನೇಕ ವೇರಿಯೇಬಲ್ ಘೋಷಣೆ;
  • ಅದರ ಮೊದಲಷ್ಟೇ ಒಂದು ವೇರಿಯೇಬಲ್ ಒಂದು ಉಲ್ಲೇಖ;
  • ಘೋಷಿಸಲ್ಪಡದ ಹೆಸರು ಉಲ್ಲೇಖಗಳು;
  • ಪೇಟೆಂಟ್ ಹಕ್ಕುಗಳ ಉಲ್ಲಂಘನೆಯನ್ನು;
  • ವಿಧಾನ ಕರೆ ವಾದಗಳಲ್ಲಿ ಮಿತಿಮೀರಿದ ಅಥವಾ ಸಾಕಷ್ಟು ಸಂಖ್ಯೆ;
  • ಪ್ರಕಾರ ಹೊಂದುತ್ತಿಲ್ಲ.

ಪೀಳಿಗೆಯ

ಮಧ್ಯಕಾಲೀನ ಕೋಡ್ ಪೀಳಿಗೆಯ tuples ಕೂಡಿದೆ ಹರಿವು ಗ್ರಾಫ್, ಮೂಲ ಬ್ಲಾಕ್ಗಳನ್ನು ಗುಂಪು ಉತ್ಪಾದಿಸುತ್ತದೆ.

ಕೋಡ್ ಪೀಳಿಗೆಯ ನಿಜವಾದ ಯಂತ್ರದ ಕೋಡ್ ಉತ್ಪಾದಿಸುತ್ತದೆ. ಮೊದಲ ಹಂತದ ಮೇಲೆ ಆರ್ಐಎಸ್ಸಿ-ಯಂತ್ರಗಳು ಸಾಂಪ್ರದಾಯಿಕ ಸಂಕಲನಕಾರರ, ನೀವು ವಾಸ್ತವ ರೆಜಿಸ್ಟರ್ಗಳನ್ನು ಅಪರಿಮಿತ ಸಂಖ್ಯೆಯ ಒಂದು ಅಸೆಂಬ್ಲರ್ ರಚಿಸಿ. CISC-ಯಂತ್ರಗಳು ಬಹುಶಃ ನಡೆಯುತ್ತಿಲ್ಲ.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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