Рецоммендед, 2020

Избор Уредника

Разлика између синтаксе и семантике

Синтакса и семантика су веома значајни термини који се односе на било који програмски језик. Синтакса у програмском језику укључује скуп дозвољених фраза језика, док семантика изражава повезано значење тих фраза.

Постоје неке везе између синтаксе и семантике где је сваки семантички елемент повезан са барем једном синтактичком интерпретацијом, а други обезбеђује да свако синтактичко представљање има осебујно значење.

Цомпарисон Цхарт

Основа за поређењеСинтаксаСемантицс
БасицДозвољене фразе језика.Тумачење фраза.
ГрешкеОбрађено у време компајлирања.Суочени у вријеме извођења.
РелатионСинтактичко тумачење мора имати неко посебно значење.Семантичка компонента је повезана са синтактичком репрезентацијом.

Дефиниција синтаксе

Синтакса програмског језика користи се да означи структуру програма без разматрања њиховог значења. Она у основи наглашава структуру, изглед програма са њиховим изгледом. Укључује скуп правила која потврђују редослед симбола и инструкција коришћених у програму. Прагматични и рачунски модел приказују ове синтактичке компоненте програмског језика. Алати развијени за спецификацију синтаксе програмских језика су регуларни, без контекста и граматике атрибута.

Међутим, каква је употреба граматике у овом аспекту? Граматике су углавном правила преписивања чија је сврха да препознају и генеришу програме. Граматика се не ослања на рачунски модел умјесто да се користи у опису структуре језика. Граматика садржи коначан скуп граматичких категорија (као што су именица, глаголска фраза, чланак, именица, итд.), Усамљене речи (елементи алфабета) и добро обликована правила за одређивање редоследа унутар којих компоненти граматичких категорија треба да се појави.

Анализа синтаксе је задатак који изводи компајлер који испитује да ли програм има одговарајуће повезано стабло деривација или не.

Синтакса програмског језика може се интерпретирати користећи следеће формалне и неформалне технике:

  • Лексичка синтакса за дефинисање правила за основне симболе који укључују идентификаторе, литерале, пунктаторе и операторе.
  • Конкретна синтакса одређује реалну репрезентацију програма уз помоћ лексичких симбола као што је абецеда.
  • Апстрактна синтакса преноси само виталне програмске информације.

Врсте граматика

  • Граматика без контекста се углавном користи да би се утврдила целокупна језичка структура.
  • Редовни изрази описују лексичке јединице (токене) програмског језика.
  • Граматике атрибута специфицирају дио језика који је осјетљив на контекст.

Дефиниција семантике

Термин семантике у програмском језику користи се да би се одредио однос између синтаксе и модела рачунања. Он наглашава тумачење програма тако да га програмер може разумети на једноставан начин или предвидјети исход извршења програма. Приступ познат као синтаксно усмјерена семантика користи се за мапирање синтактичких конструката у рачунски модел уз помоћ функције.

Семантика програмског језика може се описати различитим техникама - алгебарском семантиком, аксиоматском семантиком, операционом семантиком, денотационом семантиком и семантиком превода.

  • Алгебарска семантика интерпретира програм дефинисањем алгебре.
  • Аксиоматска семантика одређује значење програма изградњом тврдњи о асоцијацији која задржава у свакој тачки извршења програма (тј. Имплицитно).
  • Оперативна семантика упоређује језике са апстрактном машином, а програм се затим процењује као низ прелаза стања.
  • Денотацијска семантика изражава значење програма у облику скупа функција које раде на стању програма.
  • Транслацијска семантика фокусира се на методе које се користе за превођење програма на други језик.

Кључне разлике између синтаксе и семантике

  1. Синтакса се односи на структуру програма написаног на програмском језику. С друге стране, семантика описује однос између смисла програма и рачунског модела.
  2. Синтактичке грешке се обрађују у време компајлирања. Насупрот томе, семантичке грешке се тешко проналазе и сусрећу у току рада.
  3. На пример, у ц ++ променљива “с” је декларисана као “инт с;”, да би је иницијализовали морамо користити целобројну вредност. Уместо да користимо цео број, иницијализовали смо га са "Севен". Ова декларација и иницијализација је синтактички исправна, али семантички нетачна, јер “Севен” не представља целобројни облик.

Закључак

Синтакса програмског језика је скуп правила која специфицирају структуру или облик кода, док се семантика односи на тумачење кода или придружено значење симбола, знакова или било којег дијела програма.

Top