Preporučeno, 2020

Izbor Urednika

Razlika između sintakse i semantike

Sintaksa i semantika su vrlo značajni pojmovi koji se odnose na bilo koji programski jezik. Sintaksa u programskom jeziku uključuje skup dopuštenih fraza jezika, dok semantika izražava povezano značenje tih fraza.

Postoje neke veze između sintakse i semantike gdje je svaki semantički element povezan s barem jednom sintaktičkom izvedbom, a drugi osigurava da svaka sintaktička reprezentacija ima osobeno značenje.

Tablica usporedbe

Osnova za usporedbuSintaksaSemantika
Osnovni, temeljniDopuštene fraze jezika.Tumačenje izraza.
greškeObrađeno u vrijeme prevođenja.Suočeni u vrijeme izvođenja.
OdnosSintaktička interpretacija mora imati određeno značenje.Semantička komponenta povezana je sa sintaktičkom reprezentacijom.

Definicija sintakse

Sintaksa programskog jezika koristi se za označavanje strukture programa bez razmatranja njihovog značenja. To u osnovi naglašava strukturu, izgled programa s njihovim izgledom. To uključuje skup pravila koja provjerava slijed simbola i instrukcija korištenih u programu. Pragmatični i računski model broji ove sintaktičke komponente programskog jezika. Alati razvijeni za specifikaciju sintakse programskih jezika su regularni, bez konteksta i gramatike atributa.

Međutim, kakva je upotreba gramatike u ovom aspektu? Gramatike su u pravilu pravila prepisivanja čija je svrha prepoznavanje i generiranje programa. Gramatika se ne oslanja na računski model umjesto da se koristi u opisu strukture jezika. Gramatika sadrži konačan skup gramatičkih kategorija (kao što su imenica, glagolska fraza, članak, imenica, itd.), Usamljene riječi (elementi alfabeta) i dobro oblikovana pravila za određivanje redoslijeda unutar kojih sastavnica gramatičkih kategorija trebala bi se pojaviti.

Analiza sintakse je zadatak koji izvodi kompajler koji ispituje ima li program odgovarajuće stablo derivacija ili ne.

Sintaksa programskog jezika može se interpretirati pomoću sljedećih formalnih i neformalnih tehnika:

  • Leksička sintaksa za definiranje pravila za osnovne simbole koji uključuju identifikatore, literale, interpunktore i operatore.
  • Konkretna sintaksa određuje stvarnu reprezentaciju programa uz pomoć leksičkih simbola poput abecede.
  • Apstraktna sintaksa prenosi samo vitalne informacije o programu.

Vrste gramatika

  • Gramatika bez konteksta koristi se uglavnom za utvrđivanje cjelokupne jezične strukture.
  • Redovni izrazi opisuju leksičke jedinice (tokene) programskog jezika.
  • Gramatike atributa specificiraju kontekstni dio jezika.

Definicija semantike

Pojam semantike u programskom jeziku koristi se za utvrđivanje odnosa između sintakse i modela računanja. Naglašava interpretaciju programa kako bi ga programer mogao razumjeti na jednostavan način ili predvidjeti ishod izvršenja programa. Pristup poznat kao sintaksno usmjerena semantika koristi se za mapiranje sintaktičkih konstrukata u računski model uz pomoć funkcije.

Semantika programskog jezika može se opisati različitim tehnikama - algebarskom semantikom, aksiomatskom semantikom, operacijskom semantikom, denotacijskom semantikom i semantikom prijevoda.

  • Algebarska semantika interpretira program definiranjem algebre.
  • Aksiomatska semantika određuje značenje programa izgradnjom tvrdnji o asocijaciji koja zadržava u svakoj točki izvršenja programa (tj. Implicitno).
  • Operativna semantika uspoređuje jezike s apstraktnim strojem, a program se zatim ocjenjuje kao slijed stanja stanja.
  • Denotacijska semantika izražava značenje programa u obliku skupa funkcija koje djeluju na programsko stanje.
  • Translacijska semantika usredotočuje se na metode koje se koriste za prevođenje programa na drugi jezik.

Ključne razlike između sintakse i semantike

  1. Sintaksa se odnosi na strukturu programa pisanog programskim jezikom. S druge strane, semantika opisuje odnos između smisla programa i računskog modela.
  2. Sintaktičke pogreške obrađuju se u vrijeme prevođenja. Nasuprot tome, teško je pronaći semantičke pogreške i susresti se u vrijeme izvođenja.
  3. Na primjer, u c ++ varijabla “s” je deklarirana kao “int s;”, da bi je inicijalizirali, moramo koristiti cijeli broj. Umjesto da koristimo cijeli broj, inicijalizirali smo ga s "Seven". Ova deklaracija i inicijalizacija je sintaktički ispravna, ali semantički netočna jer "Seven" ne predstavlja cjelobrojni oblik.

Zaključak

Sintaksa programskog jezika je skup pravila koja određuju strukturu ili oblik koda, dok se semantika odnosi na tumačenje koda ili povezano značenje simbola, znakova ili bilo kojeg dijela programa.

Top