Kuo skiriasi programavimo kalbos semantika ir sintaksė?


Atsakymas 1:

Kaip rodo kiti atsakymai, programavimo kalbų sintaksėje nurodoma, kurios išraiškos yra ir nėra gerai suformuotos kalba.

Semantika yra šiek tiek sudėtingesnė. Tinkamai suformuotų išraiškų reikšmės programavimo kalboje yra jų gebėjimas vykdyti kompiuteriu, ty jų įgyvendinamumas, palyginti su konkrečiomis mašinos instrukcijomis (pvz., Aritmetiniame-loginiame vienete ar aparatinės įrangos ALU). laidus 'į kompiuterio schemas.

Paprasčiau tariant, kaip ir bet kurioje kalboje, (programavimo) kalbos sintaksė nustato oficialios išraiškos kalbos struktūros taisykles. Taip pat, kaip ir bet kurioje kalboje, (programavimo) kalbos semantika lemia, kaip tos gerai suformuotos išraiškos modeliuoja pasaulį už pačios kalbos ribų.

Visoms įprastoms (dar kitaip vadinamoms „natūraliomis“) kalbomis tas išorinis pasaulis yra kosmosas ir visa jame esanti, įskaitant mus. Kompiuterio „pasaulis“, modeliuojamas pagal oficialias kalbas (C, Perl, Java ir kt.), Yra integruota grandinė, jungianti jį su GUI / UX sąsajomis ir kitais prie kompiuterio pritvirtintais periferiniais prietaisais.

Jums taip pat gali būti naudingi šie klausimai ir atsakymai:

Terry Rankino atsakymas į klausimą: koks yra tikslus kalbos, matematikos, logikos, priežasties ir tiesos santykis?


Atsakymas 2:

A2A. Tai terminai, kurie dažnai painiojami. Sintaksė yra gramatikos dalis, o semantika - kalbų dalis. Pirmasis nagrinėja sakinio sąvoką reglamentuojančias taisykles ir principus, o semantika yra susijusi su kalbos ženklų aiškinimu ir prasme.

Instrukcija gali būti teisingai parašyta (sintaksė), tačiau ji gali būti neteisinga, kai programa turi ją aiškinti ir vykdyti (semantika).

Pavyzdžiui (python +3.6):

a: int = 1 # peržiūrėti komentarus b: str = "b" # peržiūrėti komentarus c = a + b # sintaksiškai teisingas, semantiškai neteisingas

Atsakymas 3:

Paprastas pavyzdys:

c = a + b

Lua reikšmėje tai reiškia dviejų reikšmių pridėjimą, o „JavaScript“ - tai reiškia, kad susiejamos dvi eilutės, nors tai gali būti pridėjimas, jei abi vertės yra skaičių. Lua sulietų stygos naudoja šią formą:

c = a .. b

Taigi galite pamatyti, kad parašyta „+“ išraiška yra tapati dviem kalbomis, ty sintaksė yra ta pati. Tačiau reikšmė (semantika) skiriasi, taigi 1 + 2 yra 3 Lua, bet „JavaScript“ gali būti „12“. Tokios kalbos kaip C ++ leidžia operatoriui perkrauti, todėl + gali turėti kelias reikšmes. Jei teisingai atsimenu, tik „Ocaml“ „+“ apibrėžia kaip sveikojo skaičiaus pridėjimą, o net C perkrauna „+“, kad padidėtų / padidėtų dvigubai.