Ano ang ibig sabihin ng "syntax" at "semantics" at paano sila naiiba?

0
7861

Ang wika ay isang hanay ng mga wastong pangungusap. Ano ang ginagawang wasto ang isang pangungusap? Maaari mong hatiin ang bisa sa dalawang bagay: syntax at semantics. Ang terminong syntax ay tumutukoy sa gramatikal na istruktura samantalang ang terminong semantics ay tumutukoy sa kahulugan ng mga simbolo ng bokabularyo na nakaayos sa istrukturang iyon. Ang gramatikal (syntactically valid) ay hindi nagpapahiwatig ng makatuwiran (semantically valid), gayunpaman. Halimbawa, ang grammatical na pangungusap na "cows flow supremely" ay grammatically ok (subject-verb adverb) sa English, ngunit walang saysay. Katulad nito, sa isang programming language, ang iyong grammar (syntax rules) ay maaaring payagan ang ID EQUALS ID ngunit ang wika ay maaari lamang payagan ang pangungusap kung ang text na tumugma para sa ID ay hindi kumakatawan sa isang uri ng pangalan (isang semantic rule).

Kapag sumulat ka ng ANTLR grammar, tinutukoy mo ang hanay ng mga panuntunan sa syntax na sinusunod ng iyong wika. Ginagamit ito ng ANTLR upang bumuo ng isang kumikilala para sa mga pangungusap sa wikang iyon. Upang ilapat ang mga panuntunan sa semantiko, dapat kang magdagdag ng mga aksyon o predicate ng semantiko sa grammar. Ang mga aksyon ay sumusubok sa "halaga" ng iba't ibang mga token at ang kanilang mga relasyon upang matukoy ang bisa ng semantiko. Halimbawa, kung hahanapin mo ang isang pangalan ng uri sa isang talahanayan ng simbolo upang matiyak na ito ay isang uri, hindi isang variable, naglalapat ka ng isang semantic na panuntunan.