Ці ведаеце вы розніцу паміж сінтаксісам, граматыкай і семантыкай у мове?


адказ 1:

Я думаю, што важна адзначыць, што існуе розніца паміж тым, як словы "сінтаксіс" і "граматыка" выкарыстоўваюцца лінгвістамі і кампутарнікамі.

Кампутары выкарыстоўваюць слова "граматыка", каб абазначыць набор правілаў, якія вызначаюць, ці з'яўляецца пэўная паслядоўнасць сімвалаў сінтаксічна дакладнай, гэта значыць, належыць яна да пэўнай мовы. Іншымі словамі, граматыка - гэта апісанне сінтаксісу (вы можаце мець шмат альтэрнатыўных апісанняў аднаго і таго ж сінтаксісу), а мова - гэта шэраг сінтаксічна правільных паслядоўнасцей знакаў. Граматыка часта прадастаўляецца ў так званай форме backus-naur.

Лінгвісты выкарыстоўваюць слова «граматыка» для пазначэння правілаў правільнага карыстання мовай. Існуе мноства розных тыпаў правілаў, і сярод гэтых тыпаў сінтаксічныя правілы маюць справу з размяшчэннем слоў у правільным парадку. Варта памятаць пра дзве рэчы: (1) Так, вы можаце карыстацца натуральнай мовай няправільна (і свет не руйнуецца), і (2) лінгвісты звычайна не цалкам занепакоеныя тым, канкрэтна прапанова пра мову чуў, але яны маюць справу з выкарыстаннем моў.

І ў лінгвістыцы, і ў інфарматыцы слова "семантыка" ставіцца да шэрагу правілаў, якія тлумачаць, як трэба інтэрпрэтаваць паслядоўнасці сімвалаў.


адказ 2:

Сінтаксіс: Як павінна быць створана мова? Сюды ўваходзіць размяшчэнне ключавых слоў і знакаў прыпынку. Напрыклад, сінтаксіс Python адрозніваецца ад сінтаксісу C некалькімі спосабамі. Асноўныя выказванні павінны заканчвацца кропкай з коскай на C, у той час як Python патрабуе апрацоўкі пэўных адступленняў.

У сінтаксісе вы выявіце, што многія распрацоўшчыкі, у тым ліку і я, перамагаюць сваю любоў ці нянавісць да мовы. Я ненавіджу PHP і JavaScript - яны чытаюць непрыгожа, вялікія блокі становяцца непрывабнымі і залішне складанымі, і, шчыра кажучы, абодва распрацоўшчыкі дазваляюць вам неахайна атрымаць атрыманыя парадыгмы напісання і дрэнныя практыкі. Тым не менш, я люблю Рубі, таму што яна чытае так добра, уводзіць крыху больш строга, і блокі не становяцца занадта грувасткімі, бо сама мова была распрацавана. Моўныя канструкцыі робяць яе элегантнай мовай, хоць гэта вельмі важны пласт абстракцыі на С.

Граматыка: правільны парадак інструкцый, каб яны мелі сэнс і маглі быць апрацаваны з найменшымі магчымымі вылічальнымі намаганнямі. Адзін з лепшых прыкладаў, які я бачыў у апошні час, - гэта пара ўкладзеных цыклаў з мэтай надрукаваць нешта накшталт:

**********

Лепшым, больш простым для разумення і менш вылічальным метадам было б выкарыстанне шэрагу заяў printf (). Добрая праграмная граматыка ідзе з практыкай, і ўсе новыя распрацоўшчыкі імкнуцца ўскладняць рэчы ў імкненні да прастаты.

Гэта не азначае, што ёсць правільны і няправільны спосаб дасягнуць пастаўленай мэты. Заўсёды існуе 100 спосабаў скінуць котку, але ёсць толькі некалькі жменяў, якія маюць прымальную нотацыю Big O, і звычайна толькі некалькі, якія з'яўляюцца дастаткова разборлівымі, каб лічыцца элегантнай.

Семантыка: Намер інструкцыі ў параўнанні з фактычнай функцыяй інструкцыі. Семантыка неверагодна важная як у размоўнай мове, так і ў праграмаванні. Розніца: чалавек можа няправільна інтэрпрэтаваць заяву, нават калі ваша семантыка правільная. Кампутары працуюць менавіта так, як вы іх запісваеце ці не, калі яны цалкам выключаны, і вось адкуль паходзяць лагічныя памылкі.