"ಸಿಂಟ್ಯಾಕ್ಸ್" ಮತ್ತು "ಸೆಮ್ಯಾಂಟಿಕ್ಸ್" ಎಂದರೆ ಏನು ಮತ್ತು ಅವು ಹೇಗೆ ಭಿನ್ನವಾಗಿವೆ?

0
7861

ಭಾಷೆಯು ಮಾನ್ಯವಾದ ವಾಕ್ಯಗಳ ಸಮೂಹವಾಗಿದೆ. ವಾಕ್ಯವನ್ನು ಯಾವುದು ಮಾನ್ಯ ಮಾಡುತ್ತದೆ? ನೀವು ಸಿಂಧುತ್ವವನ್ನು ಎರಡು ವಿಷಯಗಳಾಗಿ ವಿಭಜಿಸಬಹುದು: ಸಿಂಟ್ಯಾಕ್ಸ್ ಮತ್ತು ಸೆಮ್ಯಾಂಟಿಕ್ಸ್. ಸಿಂಟ್ಯಾಕ್ಸ್ ಎಂಬ ಪದವು ವ್ಯಾಕರಣ ರಚನೆಯನ್ನು ಸೂಚಿಸುತ್ತದೆ ಆದರೆ ಶಬ್ದಾರ್ಥದ ಪದವು ಆ ರಚನೆಯೊಂದಿಗೆ ಜೋಡಿಸಲಾದ ಶಬ್ದಕೋಶದ ಸಂಕೇತಗಳ ಅರ್ಥವನ್ನು ಸೂಚಿಸುತ್ತದೆ. ವ್ಯಾಕರಣಾತ್ಮಕ (ವಾಕ್ಯಾತ್ಮಕವಾಗಿ ಮಾನ್ಯ) ಆದರೆ ಸಂವೇದನಾಶೀಲ (ಶಬ್ದಾರ್ಥವಾಗಿ ಮಾನ್ಯ) ಸೂಚಿಸುವುದಿಲ್ಲ. ಉದಾಹರಣೆಗೆ, ವ್ಯಾಕರಣದ ವಾಕ್ಯ "ಹಸುಗಳು ಅತ್ಯುನ್ನತವಾಗಿ ಹರಿಯುತ್ತವೆ" ಇಂಗ್ಲಿಷ್‌ನಲ್ಲಿ ವ್ಯಾಕರಣಾತ್ಮಕವಾಗಿ ಸರಿ (ವಿಷಯ-ಕ್ರಿಯಾಪದ ಕ್ರಿಯಾವಿಶೇಷಣ) ಆದರೆ ಯಾವುದೇ ಅರ್ಥವಿಲ್ಲ. ಅದೇ ರೀತಿ, ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಲ್ಲಿ, ನಿಮ್ಮ ವ್ಯಾಕರಣ (ಸಿಂಟ್ಯಾಕ್ಸ್ ನಿಯಮಗಳು) ID EQUALS ID ಯನ್ನು ಅನುಮತಿಸಬಹುದು ಆದರೆ ID ಗಾಗಿ ಹೊಂದಿಕೆಯಾಗುವ ಪಠ್ಯವು ಪ್ರಕಾರದ ಹೆಸರನ್ನು ಪ್ರತಿನಿಧಿಸದಿದ್ದರೆ ಮಾತ್ರ ಭಾಷೆ ವಾಕ್ಯವನ್ನು ಅನುಮತಿಸಬಹುದು (ಶಬ್ದಾರ್ಥದ ನಿಯಮ).

ನೀವು ANTLR ವ್ಯಾಕರಣವನ್ನು ಬರೆಯುವಾಗ, ನಿಮ್ಮ ಭಾಷೆಯಿಂದ ಪಾಲಿಸಬೇಕಾದ ಸಿಂಟ್ಯಾಕ್ಸ್ ನಿಯಮಗಳ ಗುಂಪನ್ನು ನೀವು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತಿದ್ದೀರಿ. ಆ ಭಾಷೆಯಲ್ಲಿ ವಾಕ್ಯಗಳಿಗೆ ಗುರುತಿಸುವಿಕೆಯನ್ನು ರಚಿಸಲು ANTLR ಇದನ್ನು ಬಳಸುತ್ತದೆ. ಶಬ್ದಾರ್ಥದ ನಿಯಮಗಳನ್ನು ಅನ್ವಯಿಸಲು, ನೀವು ವ್ಯಾಕರಣಕ್ಕೆ ಕ್ರಮಗಳು ಅಥವಾ ಶಬ್ದಾರ್ಥದ ಮುನ್ಸೂಚನೆಗಳನ್ನು ಸೇರಿಸಬೇಕು. ಕ್ರಿಯೆಗಳು ಶಬ್ದಾರ್ಥದ ಸಿಂಧುತ್ವವನ್ನು ನಿರ್ಧರಿಸಲು ವಿವಿಧ ಟೋಕನ್‌ಗಳ "ಮೌಲ್ಯ" ಮತ್ತು ಅವುಗಳ ಸಂಬಂಧಗಳನ್ನು ಪರೀಕ್ಷಿಸುತ್ತವೆ. ಉದಾಹರಣೆಗೆ, ನೀವು ಚಿಹ್ನೆಯ ಕೋಷ್ಟಕದಲ್ಲಿ ಟೈಪ್ ಹೆಸರನ್ನು ನೋಡಿದರೆ ಅದು ಒಂದು ಪ್ರಕಾರವಾಗಿದೆಯೇ ಹೊರತು ವೇರಿಯಬಲ್ ಅಲ್ಲ, ನೀವು ಲಾಕ್ಷಣಿಕ ನಿಯಮವನ್ನು ಅನ್ವಯಿಸುತ್ತಿದ್ದೀರಿ.