Syntax (programming languages)
ಕಂಪ್ಯೂಟರ್ ವಿಜ್ಞಾನದಲ್ಲಿ, ಕಂಪ್ಯೂಟರ್ ಭಾಷೆಯ ವಾಕ್ಯರಚನೆಯು ಆ ಭಾಷೆಯಲ್ಲಿ ಸರಿಯಾಗಿ ರಚಿಸಲಾದ ಹೇಳಿಕೆಗಳು ಅಥವಾ ಅಭಿವ್ಯಕ್ತಿಗಳೆಂದು ಪರಿಗಣಿಸಲಾದ ಚಿಹ್ನೆಗಳ ಸಂಯೋಜನೆಯನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ನಿಯಮಗಳಾಗಿವೆ. ಇದು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಿಗೆ ಅನ್ವಯಿಸುತ್ತದೆ, ಅಲ್ಲಿ ಡಾಕ್ಯುಮೆಂಟ್ ಸೋರ್ಸ್ ಕೋಡ್ ಅನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ ಮತ್ತು ಡಾಕ್ಯುಮೆಂಟ್ ಡೇಟಾವನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಮಾರ್ಕ್ಅಪ್ ಭಾಷೆಗಳಿಗೆ ಅನ್ವಯಿಸುತ್ತದೆ. ಭಾಷೆಯ ವಾಕ್ಯರಚನೆಯು ಅದರ ಮೇಲ್ಮೈ ರೂಪವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ. ಪಠ್ಯ-ಆಧಾರಿತ ಕಂಪ್ಯೂಟರ್ ಭಾಷೆಗಳು ಅಕ್ಷರಗಳ ಅನುಕ್ರಮಗಳನ್ನು ಆಧರಿಸಿವೆ, ಆದರೆ ದೃಶ್ಯ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು ಪ್ರಾದೇಶಿಕ ವಿನ್ಯಾಸ ಮತ್ತು ಚಿಹ್ನೆಗಳ ನಡುವಿನ ಸಂಪರ್ಕಗಳನ್ನು ಆಧರಿಸಿವೆ (ಇದು ಪಠ್ಯ ಅಥವಾ ಚಿತ್ರಾತ್ಮಕವಾಗಿರಬಹುದು). ವಾಕ್ಯರಚನೆಯಲ್ಲಿ ಅಮಾನ್ಯವಾಗಿರುವ ದಾಖಲೆಗಳು ವಾಕ್ಯರಚನೆಯ ದೋಷವನ್ನು ಹೊಂದಿವೆ ಎಂದು ಹೇಳಲಾಗುತ್ತದೆ. ಭಾಷೆಯ ವಾಕ್ಯರಚನೆಯನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸುವಾಗ, ಈ ಉದಾಹರಣೆಗಳಿಂದ ಸಾಮಾನ್ಯ ನಿಯಮಗಳನ್ನು ಕಂಡುಹಿಡಿಯಲು ಪ್ರಯತ್ನಿಸುವ ಮೊದಲು, ವಿನ್ಯಾಸಕರು ಕಾನೂನು ಮತ್ತು ಕಾನೂನುಬಾಹಿರ ತಂತಿಗಳ ಉದಾಹರಣೆಗಳನ್ನು ಬರೆಯುವ ಮೂಲಕ ಪ್ರಾರಂಭಿಸಬಹುದು. ಆದ್ದರಿಂದ ವಾಕ್ಯರಚನೆಯು ಸಂಕೇತದ ರೂಪವನ್ನು ಸೂಚಿಸುತ್ತದೆ ಮತ್ತು ಶಬ್ದಾರ್ಥಕ್ಕೆ ವ್ಯತಿರಿಕ್ತವಾಗಿದೆ-ಅರ್ಥ. ಕಂಪ್ಯೂಟರ್ ಭಾಷೆಗಳನ್ನು ಸಂಸ್ಕರಿಸುವಲ್ಲಿ, ಶಬ್ದಾರ್ಥದ ಸಂಸ್ಕರಣೆಯು ಸಾಮಾನ್ಯವಾಗಿ ವಾಕ್ಯರಚನೆಯ ಸಂಸ್ಕರಣೆಯ ನಂತರ ಬರುತ್ತದೆ; ಆದಾಗ್ಯೂ, ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ, ಸಂಪೂರ್ಣ ವಾಕ್ಯರಚನೆಯ ವಿಶ್ಲೇಷಣೆಗೆ ಶಬ್ದಾರ್ಥದ ಸಂಸ್ಕರಣೆಯು ಅಗತ್ಯವಾಗಿರುತ್ತದೆ, ಮತ್ತು ಇವುಗಳನ್ನು ಒಟ್ಟಿಗೆ ಅಥವಾ ಏಕಕಾಲದಲ್ಲಿ ಮಾಡಲಾಗುತ್ತದೆ. ಕಂಪೈಲರ್ನಲ್ಲಿ, ವಾಕ್ಯರಚನೆಯ ವಿಶ್ಲೇಷಣೆಯು ಮುಂಭಾಗವನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ, ಆದರೆ ಶಬ್ದಾರ್ಥದ ವಿಶ್ಲೇಷಣೆಯು ಹಿಂಭಾಗವನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ (ಮತ್ತು ಮಧ್ಯದ ತುದಿಯು, ಈ ಹಂತವನ್ನು ಪ್ರತ್ಯೇಕಿಸಿದರೆ). ವಾಕ್ಯರಚನೆಯ ಮಟ್ಟಗಳನ್ನು ಕಂಪ್ಯೂಟರ್ ಭಾಷೆಯ ವಾಕ್ಯರಚನೆಯನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಮೂರು ಹಂತಗಳಾಗಿ ವಿಂಗಡಿಸಲಾಗುತ್ತದೆಃ ಪದಗಳು-ಲೆಕ್ಸಿಕಲ್ ಮಟ್ಟ, ಅಕ್ಷರಗಳು ಟೋಕನ್ಗಳನ್ನು ಹೇಗೆ ರೂಪಿಸುತ್ತವೆ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ; ಪದಗುಚ್ಛಗಳು-ವ್ಯಾಕರಣ ಮಟ್ಟ, ಸೂಕ್ಷ್ಮವಾಗಿ ಹೇಳುವುದಾದರೆ, ಟೋಕನ್ಗಳು ಪದಗುಚ್ಛಗಳನ್ನು ಹೇಗೆ ರೂಪಿಸುತ್ತವೆ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ; ಸಂದರ್ಭ-ಯಾವ ವಸ್ತುಗಳು ಅಥವಾ ಅಸ್ಥಿರ ಹೆಸರುಗಳನ್ನು ಉಲ್ಲೇಖಿಸುತ್ತದೆ, ಪ್ರಕಾರಗಳು ಮಾನ್ಯವಾಗಿದ್ದರೆ, ಇತ್ಯಾದಿಗಳನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ. ಈ ರೀತಿಯಲ್ಲಿ ಪ್ರತ್ಯೇಕಿಸುವುದು ಮಾಡ್ಯುಲಾರಿಟಿಯನ್ನು ನೀಡುತ್ತದೆ, ಇದು ಪ್ರತಿ ಹಂತವನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಮತ್ತು ಆಗಾಗ್ಗೆ ಸ್ವತಂತ್ರವಾಗಿ ವಿವರಿಸಲು ಮತ್ತು ಸಂಸ್ಕರಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಮೊದಲಿಗೆ, ಲೆಕ್ಸರ್ ಅಕ್ಷರಗಳ ರೇಖೀಯ ಅನುಕ್ರಮವನ್ನು ಟೋಕನ್ಗಳ ರೇಖೀಯ ಅನುಕ್ರಮವಾಗಿ ಪರಿವರ್ತಿಸುತ್ತದೆ; ಇದನ್ನು "ಲೆಕ್ಸಿಕಲ್ ಅನಾಲಿಸಿಸ್" ಅಥವಾ "ಲೆಕ್ಸಿಂಗ್" ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಎರಡನೆಯದಾಗಿ, ಪಾರ್ಸರ್ ಟೋಕನ್ಗಳ ರೇಖೀಯ ಅನುಕ್ರಮವನ್ನು ಶ್ರೇಣೀಕೃತ ವಾಕ್ಯರಚನೆಯ ಮರವಾಗಿ ಪರಿವರ್ತಿಸುತ್ತದೆ; ಇದನ್ನು ಸೂಕ್ಷ್ಮವಾಗಿ ಹೇಳುವುದಾದರೆ "ಪಾರ್ಸಿಂಗ್" ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಮೂರನೆಯದಾಗಿ, ಸಂದರ್ಭೋಚಿತ ವಿಶ್ಲೇಷಣೆಯು ಹೆಸರುಗಳನ್ನು ಪರಿಹರಿಸುತ್ತದೆ ಮತ್ತು ಪ್ರಕಾರಗಳನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ. ಈ ಮಾಡ್ಯುಲಾರಿಟಿಯು ಕೆಲವೊಮ್ಮೆ ಸಾಧ್ಯವಿದೆ, ಆದರೆ ಅನೇಕ ನೈಜ-ಪ್ರಪಂಚದ ಭಾಷೆಗಳಲ್ಲಿ ಹಿಂದಿನ ಹಂತವು ನಂತರದ ಹಂತವನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ-ಉದಾಹರಣೆಗೆ, ಸಿ ಯಲ್ಲಿ ಲೆಕ್ಸರ್ ಹ್ಯಾಕ್ ಏಕೆಂದರೆ ಟೋಕನೈಸೇಶನ್ ಸಂದರ್ಭವನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ. ಈ ಸಂದರ್ಭಗಳಲ್ಲಿ ಸಹ, ವಾಕ್ಯರಚನೆಯ ವಿಶ್ಲೇಷಣೆಯನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಈ ಆದರ್ಶ ಮಾದರಿಯನ್ನು ಅಂದಾಜು ಮಾಡುವಂತೆ ನೋಡಲಾಗುತ್ತದೆ. ಪಾರ್ಸಿಂಗ್ ಹಂತವನ್ನು ಸ್ವತಃ ಎರಡು ಭಾಗಗಳಾಗಿ ವಿಂಗಡಿಸಬಹುದುಃ ಪಾರ್ಸ್ ಟ್ರೀ, ಅಥವಾ "ಕಾಂಕ್ರೀಟ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಟ್ರೀ", ಇದನ್ನು ವ್ಯಾಕರಣದಿಂದ ನಿರ್ಧರಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ಸಾಮಾನ್ಯವಾಗಿ ಪ್ರಾಯೋಗಿಕ ಬಳಕೆಗೆ ತುಂಬಾ ವಿವರಿಸಲಾಗಿದೆ, ಮತ್ತು ಅಬ್ಸ್ಟ್ರಾಕ್ಟ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಟ್ರೀ (ಎ. ಎಸ್. ಟಿ), ಇದನ್ನು ಸರಳಗೊಳಿಸುತ್ತದೆ ಬಳಸಬಹುದಾದ ರೂಪ. ಎ. ಎಸ್. ಟಿ ಮತ್ತು ಸಂದರ್ಭೋಚಿತ ವಿಶ್ಲೇಷಣೆಯ ಹಂತಗಳನ್ನು ಶಬ್ದಾರ್ಥದ ವಿಶ್ಲೇಷಣೆಯ ಒಂದು ರೂಪವೆಂದು ಪರಿಗಣಿಸಬಹುದು, ಏಕೆಂದರೆ ಅವು ವಾಕ್ಯರಚನೆಗೆ ಅರ್ಥ ಮತ್ತು ವ್ಯಾಖ್ಯಾನವನ್ನು ಸೇರಿಸುತ್ತಿವೆ, ಅಥವಾ ಪರ್ಯಾಯವಾಗಿ ಅನೌಪಚಾರಿಕವಾಗಿ, ಔಪಚಾರಿಕವಾಗಿ ವಿವರಿಸಲು ಅಥವಾ ಕಾರ್ಯಗತಗೊಳಿಸಲು ಕಷ್ಟಕರವಾದ ಅಥವಾ ವಿಚಿತ್ರವಾದ ವಾಕ್ಯರಚನೆಯ ನಿಯಮಗಳ ಹಸ್ತಚಾಲಿತ ಅನುಷ್ಠಾನಗಳಾಗಿವೆ. ಈ ಮಟ್ಟಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಚೋಮ್ಸ್ಕಿ ಶ್ರೇಣಿಯಲ್ಲಿನ ಮಟ್ಟಗಳಿಗೆ ಅನುಗುಣವಾಗಿರುತ್ತವೆ. ಪದಗಳು ಸಾಮಾನ್ಯ ಭಾಷೆಯಲ್ಲಿವೆ, ಲೆಕ್ಸಿಕಲ್ ವ್ಯಾಕರಣದಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿದೆ, ಇದು ಟೈಪ್-3 ವ್ಯಾಕರಣವಾಗಿದೆ, ಇದನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಗಳಾಗಿ ನೀಡಲಾಗುತ್ತದೆ. ಪದಗುಚ್ಛಗಳು ಸಂದರ್ಭ-ಮುಕ್ತ ಭಾಷೆಯಲ್ಲಿವೆ (ಸಿಎಫ್ಎಲ್), ಸಾಮಾನ್ಯವಾಗಿ ಒಂದು ನಿರ್ಣಾಯಕ ಸಂದರ್ಭ-ಮುಕ್ತ ಭಾಷೆಯಾಗಿದೆ (ಡಿಸಿಎಫ್ಎಲ್), ಇದನ್ನು ಪದಗುಚ್ಛ ರಚನೆ ವ್ಯಾಕರಣದಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿದೆ, ಇದು ಟೈಪ್-2 ವ್ಯಾಕರಣವಾಗಿದೆ, ಇದನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಬ್ಯಾಕಸ್-ನೌರ್ ರೂಪದಲ್ಲಿ (ಬಿಎನ್ಎಫ್) ಉತ್ಪಾದನಾ ನಿಯಮಗಳಾಗಿ ನೀಡಲಾಗುತ್ತದೆ. ಪದಗುಚ್ಛ ವ್ಯಾಕರಣಗಳನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಪೂರ್ಣ ಸಂದರ್ಭ-ಮುಕ್ತ ವ್ಯಾಕರಣಗಳಿಗಿಂತ ಹೆಚ್ಚು ನಿರ್ಬಂಧಿತ ವ್ಯಾಕರಣಗಳಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗುತ್ತದೆ, ಅವುಗಳನ್ನು ವಿಶ್ಲೇಷಿಸಲು ಸುಲಭವಾಗುವಂತೆ; ಎಲ್ಆರ್ ಪಾರ್ಸರ್ ಯಾವುದೇ ಡಿಸಿಎಫ್ಎಲ್ ಅನ್ನು ರೇಖೀಯ ಸಮಯದಲ್ಲಿ ವಿಶ್ಲೇಷಿಸಬಹುದಾದರೂ, ಸರಳ ಎಲ್ಎಎಲ್ಆರ್ ಪಾರ್ಸರ್ ಮತ್ತು ಸರಳ ಎಲ್ಎಲ್ ಪಾರ್ಸರ್ ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿರುತ್ತವೆ, ಆದರೆ ಉತ್ಪಾದನಾ ನಿಯಮಗಳು ನಿರ್ಬಂಧಿತವಾಗಿರುವ ವ್ಯಾಕರಣಗಳನ್ನು ಮಾತ್ರ ವಿಶ್ಲೇಷಿಸಬಹುದು. ತಾತ್ವಿಕವಾಗಿ, ಸಂದರ್ಭೋಚಿತ ರಚನೆಯನ್ನು ಸಂದರ್ಭ-ಸೂಕ್ಷ್ಮ ವ್ಯಾಕರಣದಿಂದ ವಿವರಿಸಬಹುದು, ಮತ್ತು ಗುಣಲಕ್ಷಣ ವ್ಯಾಕರಣಗಳಂತಹ ವಿಧಾನಗಳಿಂದ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ವಿಶ್ಲೇಷಿಸಬಹುದು, ಆದಾಗ್ಯೂ, ಸಾಮಾನ್ಯವಾಗಿ, ಈ ಹಂತವನ್ನು ಕೈಯಿಂದ, ಹೆಸರು ರೆಸಲ್ಯೂಶನ್ ನಿಯಮಗಳು ಮತ್ತು ಟೈಪ್ ಚೆಕಿಂಗ್ ಮೂಲಕ ಮಾಡಲಾಗುತ್ತದೆ, ಮತ್ತು ಪ್ರತಿ ವ್ಯಾಪ್ತಿಗೆ ಹೆಸರುಗಳು ಮತ್ತು ಪ್ರಕಾರಗಳನ್ನು ಸಂಗ್ರಹಿಸುವ ಸಂಕೇತ ಕೋಷ್ಟಕದ ಮೂಲಕ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ. ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಗಳಲ್ಲಿ ಬರೆಯಲಾದ ಲೆಕ್ಸಿಕಲ್ ವಿವರಣೆಯಿಂದ ಲೆಕ್ಸರ್ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಉತ್ಪಾದಿಸುವ ಸಾಧನಗಳನ್ನು ಬರೆಯಲಾಗಿದೆ ಮತ್ತು ಬಿಎನ್ಎಫ್ನಲ್ಲಿ ಬರೆಯಲಾದ ವ್ಯಾಕರಣ ಪದಗುಚ್ಛದಿಂದ ಪಾರ್ಸರ್ ಅನ್ನು ರಚಿಸಲಾಗಿದೆಃ ಇದು ಕಾರ್ಯವಿಧಾನದ ಅಥವಾ ಕ್ರಿಯಾತ್ಮಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಅನ್ನು ಹೊಂದುವ ಬದಲು ಘೋಷಣಾತ್ಮಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಅನ್ನು ಬಳಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಒಂದು ಗಮನಾರ್ಹ ಉದಾಹರಣೆಯೆಂದರೆ ಲೆಕ್ಸ್-ಯಾಕ್ ಜೋಡಿ. ಇವುಗಳು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಾಂಕ್ರೀಟ್ ವಾಕ್ಯರಚನೆಯ ಮರವನ್ನು ಉತ್ಪಾದಿಸುತ್ತವೆ; ಪಾರ್ಸರ್ ಬರಹಗಾರನು ಇದನ್ನು ಅಮೂರ್ತ ವಾಕ್ಯರಚನೆಯ ಮರವಾಗಿ ಹೇಗೆ ಪರಿವರ್ತಿಸಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ವಿವರಿಸುವ ಕೋಡ್ ಅನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ಬರೆಯಬೇಕು. ಸಂದರ್ಭೋಚಿತ ವಿಶ್ಲೇಷಣೆಯನ್ನು ಸಹ ಸಾಮಾನ್ಯವಾಗಿ ಕೈಯಿಂದಲೇ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ. ಈ ಸ್ವಯಂಚಾಲಿತ ಸಾಧನಗಳ ಅಸ್ತಿತ್ವದ ಹೊರತಾಗಿಯೂ, ಪಾರ್ಸಿಂಗ್ ಅನ್ನು ಅನೇಕವೇಳೆ ವಿವಿಧ ಕಾರಣಗಳಿಗಾಗಿ ಕೈಯಿಂದ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ-ಬಹುಶಃ ಪದಗುಚ್ಛದ ರಚನೆಯು ಸಂದರ್ಭ-ಮುಕ್ತವಾಗಿಲ್ಲ, ಅಥವಾ ಪರ್ಯಾಯ ಅನುಷ್ಠಾನವು ಕಾರ್ಯಕ್ಷಮತೆ ಅಥವಾ ದೋಷ-ವರದಿ ಮಾಡುವಿಕೆಯನ್ನು ಸುಧಾರಿಸುತ್ತದೆ, ಅಥವಾ ವ್ಯಾಕರಣವನ್ನು ಹೆಚ್ಚು ಸುಲಭವಾಗಿ ಬದಲಾಯಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಪಾರ್ಸರ್ಗಳನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಹಾಸ್ಕೆಲ್ನಂತಹ ಕ್ರಿಯಾತ್ಮಕ ಭಾಷೆಗಳಲ್ಲಿ ಅಥವಾ ಪೈಥಾನ್ ಅಥವಾ ಪರ್ಲ್ನಂತಹ ಸ್ಕ್ರಿಪ್ಟಿಂಗ್ ಭಾಷೆಗಳಲ್ಲಿ ಅಥವಾ ಸಿ ಅಥವಾ ಸಿ + + ನಲ್ಲಿ ಬರೆಯಲಾಗುತ್ತದೆ. ದೋಷಗಳ ಉದಾಹರಣೆಗಳು ಉದಾಹರಣೆಗೆ, (1 1 ಅನ್ನು ಸೇರಿಸಿ) ವಾಕ್ಯರಚನೆಯಲ್ಲಿ ಮಾನ್ಯವಾಗಿರುವ ಲಿಸ್ಪ್ ಪ್ರೋಗ್ರಾಂ ಆಗಿದೆ ('ಆಡ್' ಕಾರ್ಯವು ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ ಎಂದು ಭಾವಿಸಿ, ಇಲ್ಲದಿದ್ದರೆ ಹೆಸರಿನ ರೆಸಲ್ಯೂಶನ್ ವಿಫಲಗೊಳ್ಳುತ್ತದೆ), 1 ಮತ್ತು 1 ಅನ್ನು ಸೇರಿಸುತ್ತದೆ. ಆದಾಗ್ಯೂ, ಈ ಕೆಳಗಿನವು ಅಮಾನ್ಯವಾಗಿವೆಃ (_ 1) ಲೆಕ್ಸಿಕಲ್ ಎರರ್ಃ '_' ಮಾನ್ಯವಾಗಿಲ್ಲ (ಪಾರ್ಸಿಂಗ್ ಎರರ್ ಅನ್ನು ಸೇರಿಸಿಃ ಕ್ಲೋಸಿಂಗ್ ಕಾಣೆಯಾಗಿದೆ ')' ಲೆಕ್ಸರ್ಗೆ ಮೊದಲ ದೋಷವನ್ನು ಗುರುತಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ-ಅದು ತಿಳಿದಿರುವುದು ಟೋಕನ್ LEFT _ PAREN ಅನ್ನು ಉತ್ಪಾದಿಸಿದ ನಂತರ, '(' ಪ್ರೋಗ್ರಾಂನ ಉಳಿದ ಭಾಗವು ಅಮಾನ್ಯವಾಗಿದೆ, ಏಕೆಂದರೆ ಯಾವುದೇ ಪದ ನಿಯಮವು '_' ನಿಂದ ಪ್ರಾರಂಭವಾಗುವುದಿಲ್ಲ. ಪಾರ್ಸಿಂಗ್ ಹಂತದಲ್ಲಿ ಎರಡನೇ ದೋಷವನ್ನು ಪತ್ತೆಹಚ್ಚಲಾಗುತ್ತದೆಃ ಪಾರ್ಸರ್ '(' ಟೋಕನ್ (ಏಕೈಕ ಹೊಂದಾಣಿಕೆಯಾಗುವಂತೆ) ಕಾರಣದಿಂದಾಗಿ 'ಪಟ್ಟಿ' ಉತ್ಪಾದನಾ ನಿಯಮವನ್ನು ಗುರುತಿಸಿದೆ ಮತ್ತು ಹೀಗಾಗಿ ದೋಷ ಸಂದೇಶವನ್ನು ನೀಡಬಹುದು; ಸಾಮಾನ್ಯವಾಗಿ ಇದು ಅಸ್ಪಷ್ಟವಾಗಿರಬಹುದು. ಟೈಪ್ ದೋಷಗಳು ಮತ್ತು ಅಘೋಷಿತ ವೇರಿಯೇಬಲ್ ದೋಷಗಳನ್ನು ಕೆಲವೊಮ್ಮೆ ಸಂಕಲನ-ಸಮಯದಲ್ಲಿ ಪತ್ತೆ ಮಾಡಿದಾಗ ವಾಕ್ಯರಚನೆಯ ದೋಷಗಳೆಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ (ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಬಲವಾಗಿ-ಟೈಪ್ ಮಾಡಿದ ಭಾಷೆಗಳನ್ನು ಸಂಕಲಿಸುವಾಗ ಸಂಭವಿಸುತ್ತದೆ), ಆದಾಗ್ಯೂ ಈ ರೀತಿಯ ದೋಷಗಳನ್ನು ಶಬ್ದಾರ್ಥದ ದೋಷಗಳೆಂದು ವರ್ಗೀಕರಿಸುವುದು ಸಾಮಾನ್ಯವಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ಪೈಥಾನ್ ಕೋಡ್ 'a' + 1 ಒಂದು ರೀತಿಯ ದೋಷವನ್ನು ಹೊಂದಿದೆ ಏಕೆಂದರೆ ಇದು ಪೂರ್ಣಾಂಕದ ಅಕ್ಷರಕ್ಕೆ ಸ್ಟ್ರಿಂಗ್ ಅಕ್ಷರವನ್ನು ಸೇರಿಸುತ್ತದೆ. ಕಂಪೈಲ್ ಸಮಯದಲ್ಲಿ ಈ ರೀತಿಯ ದೋಷಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಬಹುದುಃ ಕಂಪೈಲರ್ "ಪೂರ್ಣಾಂಕ-ಲಿಟೇರಲ್ + ಪೂರ್ಣಾಂಕ-ಲಿಟೇರಲ್" ಅನ್ನು ಅನುಮತಿಸುವ ಆದರೆ "ಸ್ಟ್ರಿಂಗ್-ಲಿಟೇರಲ್ + ಪೂರ್ಣಾಂಕ-ಲಿಟೇರಲ್" ಅನ್ನು ಅನುಮತಿಸದ ಪ್ರತ್ಯೇಕ ನಿಯಮಗಳನ್ನು ಬಳಸಿದರೆ ಅವುಗಳನ್ನು ಪಾರ್ಸಿಂಗ್ (ಪದಗುಚ್ಛ ವಿಶ್ಲೇಷಣೆ) ಸಮಯದಲ್ಲಿ ಪತ್ತೆಹಚ್ಚಬಹುದು, ಆದಾಗ್ಯೂ ಕಂಪೈಲರ್ "ಲಿಟೇರಲ್ ಅಥವಾ ಐಡೆಂಟಿಫೈಯರ್ + ಲಿಟೇರಲ್ ಅಥವಾ ಐಡೆಂಟಿಫೈಯರ್" ರೂಪದ ಎಲ್ಲಾ ಅಭಿವ್ಯಕ್ತಿಗಳನ್ನು ಅನುಮತಿಸುವ ಪಾರ್ಸಿಂಗ್ ನಿಯಮವನ್ನು ಬಳಸುವ ಸಾಧ್ಯತೆಯಿದೆ ಮತ್ತು ನಂತರ ಸಂದರ್ಭೋಚಿತ ವಿಶ್ಲೇಷಣೆಯ ಸಮಯದಲ್ಲಿ ದೋಷವನ್ನು ಪತ್ತೆಹಚ್ಚಲಾಗುತ್ತದೆ (ಟೈಪ್ ಪರಿಶೀಲನೆ ಸಂಭವಿಸಿದಾಗ). ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ ಈ ಊರ್ಜಿತಗೊಳಿಸುವಿಕೆಯನ್ನು ಕಂಪೈಲರ್ ಮಾಡುವುದಿಲ್ಲ, ಮತ್ತು ಈ ದೋಷಗಳನ್ನು ರನ್ಟೈಮ್ನಲ್ಲಿ ಮಾತ್ರ ಪತ್ತೆ ಮಾಡಲಾಗುತ್ತದೆ. ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಟೈಪ್ ಮಾಡಲಾದ ಭಾಷೆಯಲ್ಲಿ, ರನ್ಟೈಮ್ನಲ್ಲಿ ಮಾತ್ರ ಪ್ರಕಾರವನ್ನು ನಿರ್ಧರಿಸಬಹುದು, ಅನೇಕ ರೀತಿಯ ದೋಷಗಳನ್ನು ರನ್ಟೈಮ್ನಲ್ಲಿ ಮಾತ್ರ ಪತ್ತೆಹಚ್ಚಬಹುದು. ಉದಾಹರಣೆಗೆ, ಪೈಥಾನ್ ಕೋಡ್ a + b ಪದಗುಚ್ಛದ ಮಟ್ಟದಲ್ಲಿ ವಾಕ್ಯರಚನೆಯಲ್ಲಿ ಮಾನ್ಯವಾಗಿದೆ, ಆದರೆ a ಮತ್ತು b ಪ್ರಕಾರಗಳ ನಿಖರತೆಯನ್ನು ರನ್ಟೈಮ್ನಲ್ಲಿ ಮಾತ್ರ ನಿರ್ಧರಿಸಬಹುದು, ಏಕೆಂದರೆ ವೇರಿಯೇಬಲ್ಗಳು ಪೈಥಾನ್ನಲ್ಲಿ ಪ್ರಕಾರಗಳನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ, ಕೇವಲ ಮೌಲ್ಯಗಳು ಮಾತ್ರ ಮಾಡುತ್ತವೆ. ಕಂಪೈಲರ್ ಪತ್ತೆಹಚ್ಚಿದ ರೀತಿಯ ದೋಷವನ್ನು ವಾಕ್ಯರಚನೆಯ ದೋಷ ಎಂದು ಕರೆಯಬೇಕೇ (ಸ್ಥಿರ ಶಬ್ದಾರ್ಥದ ದೋಷಕ್ಕಿಂತ) ಎಂಬುದರ ಬಗ್ಗೆ ಭಿನ್ನಾಭಿಪ್ರಾಯವಿದ್ದರೂ, ಪ್ರೋಗ್ರಾಂ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸಮಯದಲ್ಲಿ ಮಾತ್ರ ಪತ್ತೆಹಚ್ಚಬಹುದಾದ ರೀತಿಯ ದೋಷಗಳನ್ನು ಯಾವಾಗಲೂ ವಾಕ್ಯರಚನೆಯ ದೋಷಗಳಿಗಿಂತ ಶಬ್ದಾರ್ಥವೆಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ. ವಾಕ್ಯರಚನೆಯ ವ್ಯಾಖ್ಯಾನ ಪಠ್ಯ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳ ವಾಕ್ಯರಚನೆಯನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಗಳು (ಲೆಕ್ಸಿಕಲ್ ರಚನೆಗಾಗಿ) ಮತ್ತು ಬ್ಯಾಕಸ್-ನೌರ್ ರೂಪದ (ವ್ಯಾಕರಣ ರಚನೆಗಾಗಿ) ಸಂಯೋಜನೆಯನ್ನು ಬಳಸಿಕೊಂಡು ವಾಕ್ಯರಚನೆಯ ವರ್ಗಗಳನ್ನು (ಟರ್ಮಿನಲ್ ಅಲ್ಲದ) ಮತ್ತು ಟರ್ಮಿನಲ್ ಚಿಹ್ನೆಗಳನ್ನು ಪ್ರಚೋದಕವಾಗಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ವ್ಯಾಖ್ಯಾನಿಸಲಾಗುತ್ತದೆ. ವಾಕ್ಯರಚನೆಯ ವರ್ಗಗಳನ್ನು ನಿರ್ಮಾಣಗಳು ಎಂದು ಕರೆಯಲಾಗುವ ನಿಯಮಗಳಿಂದ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ, ಇದು ನಿರ್ದಿಷ್ಟ ವಾಕ್ಯರಚನೆಯ ವರ್ಗಕ್ಕೆ ಸೇರಿದ ಮೌಲ್ಯಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. ಟರ್ಮಿನಲ್ ಚಿಹ್ನೆಗಳು ಎಂದರೆ ಅಕ್ಷರಗಳ ಕಾಂಕ್ರೀಟ್ ಅಕ್ಷರಗಳು ಅಥವಾ ತಂತಿಗಳು (ಉದಾಹರಣೆಗೆ ವ್ಯಾಖ್ಯಾನಿಸಿ, ವೇಳೆ, ಬಿಡಿ, ಅಥವಾ ಶೂನ್ಯದಂತಹ ಕೀವರ್ಡ್ಗಳು) ಇವುಗಳಿಂದ ವಾಕ್ಯರಚನೆಯಲ್ಲಿ ಮಾನ್ಯವಾದ ಪ್ರೊಗ್ರಾಮ್ಗಳನ್ನು ನಿರ್ಮಿಸಲಾಗುತ್ತದೆ. ಒಂದು ಭಾಷೆಯು ವಿಭಿನ್ನ ಸಮಾನ ವ್ಯಾಕರಣಗಳನ್ನು ಹೊಂದಿರಬಹುದು, ಉದಾಹರಣೆಗೆ ಸಮಾನವಾದ ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಗಳು (ಲೆಕ್ಸಿಕಲ್ ಮಟ್ಟಗಳಲ್ಲಿ), ಅಥವಾ ಒಂದೇ ಭಾಷೆಯನ್ನು ಸೃಷ್ಟಿಸುವ ವಿಭಿನ್ನ ಪದಗುಚ್ಛ ನಿಯಮಗಳು. ಎಲ್. ಆರ್. ವ್ಯಾಕರಣಗಳಂತಹ ವಿಶಾಲ ವರ್ಗದ ವ್ಯಾಕರಣಗಳನ್ನು ಬಳಸುವುದರಿಂದ, ಎಲ್. ಎಲ್. ವ್ಯಾಕರಣದಂತಹ ಹೆಚ್ಚು ನಿರ್ಬಂಧಿತ ವರ್ಗಗಳಿಗೆ ಹೋಲಿಸಿದರೆ ಚಿಕ್ಕದಾದ ಅಥವಾ ಸರಳವಾದ ವ್ಯಾಕರಣಗಳನ್ನು ಅನುಮತಿಸಬಹುದು, ಇದಕ್ಕೆ ಹೆಚ್ಚಿನ ನಿಯಮಗಳೊಂದಿಗೆ ದೀರ್ಘವಾದ ವ್ಯಾಕರಣಗಳು ಬೇಕಾಗಬಹುದು. ವಿಭಿನ್ನ ಆದರೆ ಸಮಾನ ಪದಗುಚ್ಛ ವ್ಯಾಕರಣಗಳು ವಿಭಿನ್ನ ಪಾರ್ಸ್ ಮರಗಳನ್ನು ನೀಡುತ್ತವೆ, ಆದರೂ ಆಧಾರವಾಗಿರುವ ಭಾಷೆಯು (ಮಾನ್ಯ ದಾಖಲೆಗಳ ಗುಂಪು) ಒಂದೇ ಆಗಿರುತ್ತದೆ. ಉದಾಹರಣೆಃ ಕೆಳಗಿನ ಲಿಸ್ಪ್ ಎಸ್-ಅಭಿವ್ಯಕ್ತಿಗಳು ಸರಳವಾದ ವ್ಯಾಕರಣವಾಗಿದ್ದು, ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಗಳು ಮತ್ತು ವಿಸ್ತೃತ ಬ್ಯಾಕಸ್-ನೌರ್ ರೂಪದ ಸಂಕೇತವನ್ನು ಬಳಸಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ. ಇದು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಲಿಸ್ಪ್ನ ದತ್ತಾಂಶ ವಾಕ್ಯರಚನೆಯಾದ ಎಸ್-ಅಭಿವ್ಯಕ್ತಿಗಳ ವಾಕ್ಯರಚನೆಯನ್ನು ವಿವರಿಸುತ್ತದೆ, ಇದು ವಾಕ್ಯರಚನೆಯ ವರ್ಗಗಳಾದ ಅಭಿವ್ಯಕ್ತಿ, ಪರಮಾಣು, ಸಂಖ್ಯೆ, ಚಿಹ್ನೆ ಮತ್ತು ಪಟ್ಟಿಗಾಗಿ ಉತ್ಪಾದನೆಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆಃ ಅಭಿವ್ಯಕ್ತಿ = ಪರಮಾಣು | ಪಟ್ಟಿ ಪರಮಾಣು = ಸಂಖ್ಯೆ | ಚಿಹ್ನೆ ಸಂಖ್ಯೆ = [+-]? ['0'-'9'] + ಚಿಹ್ನೆ = ['A'-'Z'] ['A'-'Z' 0 '-' 9 ']. * ಪಟ್ಟಿ = '(', ಅಭಿವ್ಯಕ್ತಿ *, ')' ಈ ವ್ಯಾಕರಣವು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆಃ ಅಭಿವ್ಯಕ್ತಿಯು ಪರಮಾಣು ಅಥವಾ ಪಟ್ಟಿ; ಪರಮಾಣು ಒಂದು ಸಂಖ್ಯೆ ಅಥವಾ ಚಿಹ್ನೆ; ಒಂದು ಸಂಖ್ಯೆಯು ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ದಶಮಾಂಶ ಅಂಕೆಗಳ ಮುರಿಯದ ಅನುಕ್ರಮವಾಗಿದೆ, ಐಚ್ಛಿಕವಾಗಿ ಪ್ಲಸ್ ಅಥವಾ ಮೈನಸ್ ಚಿಹ್ನೆಯಿಂದ ಮುಂಚಿತವಾಗಿರುತ್ತದೆ; ಚಿಹ್ನೆಯು ಯಾವುದೇ ಅಕ್ಷರಗಳಲ್ಲಿ ಶೂನ್ಯ ಅಥವಾ ಹೆಚ್ಚಿನದನ್ನು ಅನುಸರಿಸುವ ಅಕ್ಷರವಾಗಿದೆ (ವೈಟ್ಸ್ಪೇಸ್ ಹೊರತುಪಡಿಸಿ); ಮತ್ತು ಪಟ್ಟಿಯು ಅದರೊಳಗೆ ಶೂನ್ಯ ಅಥವಾ ಹೆಚ್ಚಿನ ಅಭಿವ್ಯಕ್ತಿಗಳನ್ನು ಹೊಂದಿರುವ ಹೊಂದಾಣಿಕೆಯ ಜೋಡಿ ಆವರಣವಾಗಿದೆ. ಇಲ್ಲಿ ದಶಮಾಂಶ ಅಂಕೆಗಳು, ದೊಡ್ಡ ಮತ್ತು ಸಣ್ಣ ಅಕ್ಷರಗಳು ಮತ್ತು ಆವರಣಗಳು ಅಂತಿಮ ಚಿಹ್ನೆಗಳಾಗಿವೆ. ಈ ವ್ಯಾಕರಣದಲ್ಲಿ ಉತ್ತಮವಾಗಿ ರೂಪುಗೊಂಡ ಸಂಕೇತ ಅನುಕ್ರಮಗಳ ಉದಾಹರಣೆಗಳು ಈ ಕೆಳಗಿನಂತಿವೆಃ '12345', '()', '(ಎ ಬಿ ಸಿ 232 (1))' ಸಂಕೀರ್ಣ ವ್ಯಾಕರಣಗಳು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ಅಗತ್ಯವಾದ ವ್ಯಾಕರಣವನ್ನು ಚೋಮ್ಸ್ಕಿ ಶ್ರೇಣಿಯಲ್ಲಿ ಅದರ ಸ್ಥಾನದಿಂದ ವರ್ಗೀಕರಿಸಬಹುದು. ಹೆಚ್ಚಿನ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳ ವ್ಯಾಕರಣ ಪದಗುಚ್ಛವನ್ನು ಟೈಪ್-2 ವ್ಯಾಕರಣವನ್ನು ಬಳಸಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು, ಅಂದರೆ, ಅವು ಸಂದರ್ಭ-ಮುಕ್ತ ವ್ಯಾಕರಣಗಳಾಗಿವೆ, ಆದರೂ ಒಟ್ಟಾರೆ ವಾಕ್ಯರಚನೆಯು ಸಂದರ್ಭ-ಸೂಕ್ಷ್ಮವಾಗಿರುತ್ತದೆ (ಬದಲಾಗುವ ಘೋಷಣೆಗಳು ಮತ್ತು ಸಮೂಹ ವ್ಯಾಪ್ತಿಗಳಿಂದಾಗಿ), ಆದ್ದರಿಂದ ಟೈಪ್-1 ಆಗಿದೆ. ಆದಾಗ್ಯೂ, ವಿನಾಯಿತಿಗಳಿವೆ, ಮತ್ತು ಕೆಲವು ಭಾಷೆಗಳಿಗೆ ವ್ಯಾಕರಣ ಎಂಬ ಪದಗುಚ್ಛವು ಟೈಪ್-0 (ಟ್ಯೂರಿಂಗ್-ಕಂಪ್ಲೀಟ್) ಆಗಿದೆ. ಪರ್ಲ್ ಮತ್ತು ಲಿಸ್ಪ್ನಂತಹ ಕೆಲವು ಭಾಷೆಗಳಲ್ಲಿ ಭಾಷೆಯ ವಿವರಣೆಯು (ಅಥವಾ ಅನುಷ್ಠಾನ) ಪಾರ್ಸಿಂಗ್ ಹಂತದಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳ್ಳುವ ರಚನೆಗಳನ್ನು ಅನುಮತಿಸುತ್ತದೆ. ಇದಲ್ಲದೆ, ಈ ಭಾಷೆಗಳು ಪಾರ್ಸರ್ನ ನಡವಳಿಕೆಯನ್ನು ಬದಲಾಯಿಸಲು ಪ್ರೋಗ್ರಾಮರ್ಗೆ ಅನುವು ಮಾಡಿಕೊಡುವ ರಚನೆಗಳನ್ನು ಹೊಂದಿವೆ. ಈ ಸಂಯೋಜನೆಯು ಪಾರ್ಸಿಂಗ್ ಮತ್ತು ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯ ನಡುವಿನ ವ್ಯತ್ಯಾಸವನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಮಸುಕಾಗಿಸುತ್ತದೆ ಮತ್ತು ಈ ಭಾಷೆಗಳಲ್ಲಿ ವಾಕ್ಯರಚನೆಯ ವಿಶ್ಲೇಷಣೆಯನ್ನು ನಿರ್ಣಯಿಸಲಾಗದ ಸಮಸ್ಯೆಯನ್ನಾಗಿ ಮಾಡುತ್ತದೆ, ಅಂದರೆ ಪಾರ್ಸಿಂಗ್ ಹಂತವು ಪೂರ್ಣಗೊಳ್ಳದಿರಬಹುದು. ಉದಾಹರಣೆಗೆ, ಪರ್ಲ್ನಲ್ಲಿ ಬಿಇಜಿಐಎನ್ ಹೇಳಿಕೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಪಾರ್ಸಿಂಗ್ ಮಾಡುವಾಗ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಸಾಧ್ಯವಿದೆ, ಮತ್ತು ಪರ್ಲ್ ಕಾರ್ಯದ ಮೂಲಮಾದರಿಗಳು ವಾಕ್ಯರಚನೆಯ ವ್ಯಾಖ್ಯಾನವನ್ನು ಬದಲಾಯಿಸಬಹುದು, ಮತ್ತು ಬಹುಶಃ ಉಳಿದ ಕೋಡ್ನ ವಾಕ್ಯರಚನೆಯ ಸಿಂಧುತ್ವವನ್ನು ಸಹ ಬದಲಾಯಿಸಬಹುದು. ಆಡುಮಾತಿನಲ್ಲಿ ಇದನ್ನು "ಪರ್ಲ್ ಮಾತ್ರ ಪಾರ್ಸ್ ಮಾಡಬಹುದು" (ಏಕೆಂದರೆ ಪಾರ್ಸಿಂಗ್ ಸಮಯದಲ್ಲಿ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕು ಮತ್ತು ವ್ಯಾಕರಣವನ್ನು ಮಾರ್ಪಡಿಸಬಹುದು), ಅಥವಾ ಹೆಚ್ಚು ಬಲವಾಗಿ "ಪರ್ಲ್ ಸಹ ಪರ್ಲ್ ಅನ್ನು ಪಾರ್ಸ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ" (ಏಕೆಂದರೆ ಇದು ಅನಿಶ್ಚಿತವಾಗಿದೆ) ಎಂದು ಉಲ್ಲೇಖಿಸಲಾಗುತ್ತದೆ. ಅಂತೆಯೇ, ಡೆಫ್ಮಾಕ್ರೊ ವಾಕ್ಯರಚನೆಯಿಂದ ಪರಿಚಯಿಸಲಾದ ಲಿಸ್ಪ್ ಮ್ಯಾಕ್ರೋಗಳು ಪಾರ್ಸಿಂಗ್ ಸಮಯದಲ್ಲಿ ಸಹ ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತವೆ, ಅಂದರೆ ಲಿಸ್ಪ್ ಕಂಪೈಲರ್ ಸಂಪೂರ್ಣ ಲಿಸ್ಪ್ ರನ್-ಟೈಮ್ ಸಿಸ್ಟಮ್ ಅನ್ನು ಹೊಂದಿರಬೇಕು. ಇದಕ್ಕೆ ವಿರುದ್ಧವಾಗಿ, ಸಿ ಮ್ಯಾಕ್ರೋಗಳು ಕೇವಲ ಸ್ಟ್ರಿಂಗ್ ಬದಲಿಗಳಾಗಿವೆ, ಮತ್ತು ಕೋಡ್ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ. ಒಂದು ಭಾಷೆಯ ವಾಕ್ಯರಚನೆಯು ಮಾನ್ಯವಾದ ಪ್ರೋಗ್ರಾಂನ ರೂಪವನ್ನು ವಿವರಿಸುತ್ತದೆ, ಆದರೆ ಪ್ರೋಗ್ರಾಂನ ಅರ್ಥ ಅಥವಾ ಆ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಫಲಿತಾಂಶಗಳ ಬಗ್ಗೆ ಯಾವುದೇ ಮಾಹಿತಿಯನ್ನು ಒದಗಿಸುವುದಿಲ್ಲ. ಚಿಹ್ನೆಗಳ ಸಂಯೋಜನೆಗೆ ನೀಡಲಾದ ಅರ್ಥವನ್ನು ಶಬ್ದಾರ್ಥಗಳಿಂದ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ (ಉಲ್ಲೇಖ ಅನುಷ್ಠಾನದಲ್ಲಿ ಔಪಚಾರಿಕ ಅಥವಾ ಹಾರ್ಡ್-ಕೋಡೆಡ್). ಎಲ್ಲಾ ವಾಕ್ಯರಚನೆಯಲ್ಲಿ ಸರಿಯಾದ ಪ್ರೋಗ್ರಾಂಗಳು ಶಬ್ದಾರ್ಥದಲ್ಲಿ ಸರಿಯಾಗಿರುವುದಿಲ್ಲ. ಆದಾಗ್ಯೂ, ಭಾಷೆಯ ನಿಯಮಗಳ ಪ್ರಕಾರ, ಅನೇಕ ವಾಕ್ಯರಚನೆಯಲ್ಲಿ ಸರಿಯಾದ ಪ್ರೋಗ್ರಾಂಗಳು ಅಸಮರ್ಪಕವಾಗಿ ರೂಪುಗೊಂಡಿವೆ; ಮತ್ತು (ಭಾಷೆಯ ನಿರ್ದಿಷ್ಟತೆ ಮತ್ತು ಅನುಷ್ಠಾನದ ದೃಢತೆಯನ್ನು ಅವಲಂಬಿಸಿ) ಅನುವಾದ ಅಥವಾ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯಲ್ಲಿ ದೋಷಕ್ಕೆ ಕಾರಣವಾಗಬಹುದು. ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ, ಅಂತಹ ಕಾರ್ಯಕ್ರಮಗಳು ಅನಿರ್ದಿಷ್ಟ ನಡವಳಿಕೆಯನ್ನು ಪ್ರದರ್ಶಿಸಬಹುದು. ಒಂದು ಭಾಷೆಯೊಳಗೆ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಚೆನ್ನಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದ್ದರೂ ಸಹ, ಅದನ್ನು ಬರೆದ ವ್ಯಕ್ತಿಯು ಉದ್ದೇಶಿಸಿರದ ಅರ್ಥವನ್ನು ಅದು ಹೊಂದಿರಬಹುದು. ನೈಸರ್ಗಿಕ ಭಾಷೆಯನ್ನು ಉದಾಹರಣೆಯಾಗಿ ಬಳಸುವುದರಿಂದ, ವ್ಯಾಕರಣದ ಸರಿಯಾದ ವಾಕ್ಯಕ್ಕೆ ಅರ್ಥವನ್ನು ನಿಗದಿಪಡಿಸಲು ಸಾಧ್ಯವಾಗದಿರಬಹುದು ಅಥವಾ ವಾಕ್ಯವು ತಪ್ಪಾಗಿರಬಹುದುಃ "ಬಣ್ಣರಹಿತ ಹಸಿರು ವಿಚಾರಗಳು ಕೋಪದಿಂದ ನಿದ್ರಿಸುತ್ತವೆ". ವ್ಯಾಕರಣದಲ್ಲಿ ಉತ್ತಮವಾಗಿ ರೂಪುಗೊಂಡಿದೆ ಆದರೆ ಸಾಮಾನ್ಯವಾಗಿ ಅಂಗೀಕರಿಸಲ್ಪಟ್ಟ ಅರ್ಥವನ್ನು ಹೊಂದಿಲ್ಲ. "ಜಾನ್ ವಿವಾಹಿತ ಅವಿವಾಹಿತ". ವ್ಯಾಕರಣದಲ್ಲಿ ಉತ್ತಮವಾಗಿ ರೂಪುಗೊಂಡಿದೆ ಆದರೆ ನಿಜವಾಗಿರದ ಅರ್ಥವನ್ನು ವ್ಯಕ್ತಪಡಿಸುತ್ತದೆ. ಈ ಕೆಳಗಿನ ಸಿ ಭಾಷೆಯ ತುಣುಕು ವಾಕ್ಯರಚನೆಯಲ್ಲಿ ಸರಿಯಾಗಿದೆ, ಆದರೆ ಶಬ್ದಾರ್ಥವಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸದ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ (ಏಕೆಂದರೆ ಅದು ಶೂನ್ಯ ಸೂಚಕವಾಗಿದೆ, ಕಾರ್ಯಾಚರಣೆಗಳು ಮತ್ತು ಯಾವುದೇ ಅರ್ಥವನ್ನು ಹೊಂದಿಲ್ಲ): ಸಂಕೀರ್ಣ * p = ನಲ್; ಸಂಕೀರ್ಣ ABS _ p = sqrt (p-> ವಾಸ್ತವಿಕ * p-> ವಾಸ್ತವಿಕ + p-> IM * p-> IM); ಸರಳ ಉದಾಹರಣೆಯಾಗಿ, int x; ಪ್ರಿಂಟಫ್ ("% d", x); ವಾಕ್ಯರಚನೆಯಲ್ಲಿ ಮಾನ್ಯವಾಗಿದೆ, ಆದರೆ ಶಬ್ದಾರ್ಥವಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿಲ್ಲ, ಏಕೆಂದರೆ ಇದು ಪ್ರಾರಂಭಿಸದ ವೇರಿಯೇಬಲ್ ಅನ್ನು ಬಳಸುತ್ತದೆ. ಕೆಲವು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳ ಕಂಪೈಲರ್ಗಳು (ಉದಾಹರಣೆಗೆ, ಜಾವಾ ಮತ್ತು ಸಿ #) ಈ ರೀತಿಯ ಪ್ರಾರಂಭಿಸದ ವೇರಿಯೇಬಲ್ ದೋಷಗಳನ್ನು ಪತ್ತೆಹಚ್ಚುತ್ತವೆಯಾದರೂ, ಅವುಗಳನ್ನು ವಾಕ್ಯರಚನೆಯ ದೋಷಗಳಿಗಿಂತ ಶಬ್ದಾರ್ಥದ ದೋಷಗಳೆಂದು ಪರಿಗಣಿಸಬೇಕು. ನೇಮಿಂಗ್ ಕನ್ವೆನ್ಷನ್ (ಪ್ರೋಗ್ರಾಮಿಂಗ್) ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳ ಹೋಲಿಕೆ (ವಾಕ್ಯರಚನೆ) ವಿವಿಧ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳ ವಾಕ್ಯರಚನೆಯನ್ನು ತ್ವರಿತವಾಗಿ ಹೋಲಿಸಲು, "ಹಲೋ, ವರ್ಲ್ಡ್!" ಪಟ್ಟಿಯನ್ನು ನೋಡಿ. ಪ್ರೋಗ್ರಾಂ ಉದಾಹರಣೆಗಳುಃ ಪ್ರೋಲಾಗ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಮತ್ತು ಶಬ್ದಾರ್ಥಗಳು ಪರ್ಲ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಪಿಎಚ್ಪಿ ಸಿಂಟ್ಯಾಕ್ಸ್ ಮತ್ತು ಶಬ್ದಾರ್ಥಗಳು ಸಿ ಸಿಂಟ್ಯಾಕ್ಸ್ ಸಿ + + ಸಿಂಟ್ಯಾಕ್ಸ್ ಜಾವಾ ಸಿಂಟ್ಯಾಕ್ಸ್ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಪೈಥಾನ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಮತ್ತು ಶಬ್ದಾರ್ಥ ಲುವಾ ಸಿಂಟ್ಯಾಕ್ಸ್ ಹಾಸ್ಕೆಲ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಉಲ್ಲೇಖಗಳು ಬಾಹ್ಯ ಕೊಂಡಿಗಳು ಕಂಪ್ಯೂಟರ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಲ್ಲಿ ಬಳಸಲಾಗುವ ವಿವಿಧ ಸಿಂಟ್ಯಾಕ್ಟಿಕ್ ರಚನೆಗಳು ಪೈಥಾನ್ ದೋಷ "ಆಮದು ದೋಷಃ" ಏಕೆ? ಹೇಗೆ? ಕಮಾಂಡ್-ಲೈನ್? [ಪರಿಹರಿಸಿದ 2021] ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ವಿಷಯಗಳು ಮೂಲ ಕೋಡ್