"Синтакс" ба "семантик" нь юу гэсэн үг вэ, тэд юугаараа ялгаатай вэ?

0
7861

Хэл бол хүчин төгөлдөр өгүүлбэрүүдийн багц юм. Өгүүлбэрийг юу хүчинтэй болгодог вэ? Та хүчин төгөлдөр байдлыг синтакс ба семантик гэсэн хоёр зүйлд хувааж болно. Синтакс гэдэг нэр томьёо нь дүрмийн бүтцийг хэлдэг бол семантик гэдэг нэр томъёо нь тухайн бүтэцтэй зохион байгуулсан үгсийн сангийн тэмдгийн утгыг илэрхийлдэг. Грамматик (синтаксийн хувьд хүчинтэй) нь мэдрэмжтэй (утгын хувьд хүчинтэй) гэсэн үг биш юм. Жишээлбэл, "cows flow supremely" гэсэн дүрмийн өгүүлбэр нь англи хэл дээрх дүрмийн хувьд зөв (субъект-үйл үгийн үг) боловч ямар ч утгагүй. Үүний нэгэн адил програмчлалын хэлэнд таны дүрмийн дүрэм (синтакс дүрмүүд) ID-д ТЭНЦҮҮЛЭХ ID-г зөвшөөрч болох ч ID-д тохирсон текст нь төрлийн нэрийг (семантик дүрэм) төлөөлөхгүй тохиолдолд л хэллэгийг зөвшөөрч болно.

Та ANTLR дүрмийг бичихдээ өөрийн хэлээр дагаж мөрдөх синтаксийн багц дүрмийг зааж өгсөн болно. ANTLR нь үүнийг тухайн хэл дээрх өгүүлбэрийг танигч үүсгэхэд ашигладаг. Утга зүйн дүрмийг хэрэглэхийн тулд та дүрмэнд үйлдэл эсвэл семантик предикат нэмэх ёстой. Үйлдлүүд нь семантик хүчин төгөлдөр байдлыг тодорхойлохын тулд янз бүрийн жетонуудын "үнэ цэнэ" болон тэдгээрийн харилцааг шалгадаг. Жишээлбэл, хэрэв та тэмдэгтийн хүснэгтээс төрлийн нэрийг хайвал энэ нь хувьсагч биш харин төрөл мөн эсэхийг шалгах юм бол та семантик дүрмийг хэрэглэж байна гэсэн үг.