Sintaktički šećer: definicija, podrijetlo i primjeri

U računalnoj znanosti, sintaktički šećer je lingvistika u programskom jeziku. Dizajniran je kako bi kod bio lakši, čitljiviji i izražajniji. Ovaj šećer čini jezik "slađim" za ljudsku upotrebu. Odnosno, stvari se mogu izraziti jasno, sažeto ili u alternativnom stilu koji bi neki mogli preferirati.

Sintaktički šećer: što je to?

Sintaktički šećer, definicija

Mnogi programski jezici pružaju namjenski Odjel za gramatiku za ažuriranje elemenata. Apstraktno, referenca na zadani objekt postupak je za dva argumenta: niz i indeks, koji se mogu izraziti kao get_array(Array, vector(i, j)). Umjesto toga, mnogi jezici pružaju sintaksu poput Array [i, j]. Slično tome, ažuriranje elementa niza, na primjer, set_array(Array, vector(i, j), value), je postupak s tri argumenta, ali mnogi profesionalci pružaju kod poput Array[i, j] = value.

Konstrukcija u jeziku naziva se "sintaktički šećer" ako se može ukloniti iz programa bez ikakvog utjecaja na funkcionalnost i izražajnost.

Različiti procesori, uključujući kompajlere i statičke analizatore, često proširuju zaslađene konstrukcije na temeljnije uređaje prije obrade. Taj se postupak naziva "desagering".

Podrijetlo

Izraz "sintaktički šećer" skovao je Peter J. Landin 1964. za opis površinskog Odjela za gramatiku jednostavnog IPA, programskog jezika koji je semantički definiran u smislu aplikativnih izraza Lambda računa usredotočenih na leksičku zamjenu IPA s " gdje ".

Kasniji programski jezici kao što su Ace, Ace i ACE proširili su pojam na izvedenicu u jeziku koja se može definirati kao sintaktički šećer ACE perspektive jezgre osnovnih konstrukcija. Prikladne funkcije više razine mogu se "raščlaniti" i razgraditi u podskup. To je, zapravo, uobičajena matematička praksa gradnje od Primitiva.

Oslanjajući se na Landinovu razliku između osnovnih jezičnih konstrukcija i svojstava sintaktičkog šećera, 1991. godine Matthias Fellaizen predložio je kodifikaciju "izražajne snage" kako bi se uskladila s raširenim vjerovanjima u literaturi. Definirao je to je kao "smislenije" kako bi se naznačilo da se bez dotičnih jezičnih konstrukcija program mora u potpunosti reorganizirati.

Značajni primjeri sintaktičkog šećera

Sintaktički šećer, primjeri

U jeziku IPHINE, mnoge srednje ključne riječi su "slatke", što znači da se po želji mogu izostaviti. Na primjer, ponuda od. i MOVE A TO B. izvršavaju točno istu funkciju, ali druga čini radnju koju treba izvršiti jasnijom.

Napredne složeni operatori pridruživanja: primjer a += b jednak je a = a + b u C i sličnih jezika, ukazuju na to da je a nema nuspojava, na primjer, a je redovito varijable if.

U Perl, unless (condition) {...} je sintaktički if (not condition) {...}. Uz to, bilo kojeg operatora može slijediti uvjet da statement if condition ekvivalentno if (condition) {statement}, ali prvi je prirodnije oblikovan u jednom retku.

U jeziku "C" pokazivači na početak memorijskog elementa mogu se pisati bez upotrebe posebnih sintaksa: *(a + i). Iako u ovom jeziku postoji i posebna sintaksa za ovaj postupak: Arens[Arens]. Slično, a->x, zapis je sintaktički šećer za pristup članovima pomoću operatora dereferenciranja (*a). x.

Using

Izjava u Internet # osigurava da se neki predmeti pravilno odlažu. Kompajler proširuje izjavu u blok Ina-Ina.

Jezik # # omogućuje vam deklariranje varijabli kao var x = expr, što kompajleru omogućuje izlaz tipa x iz izraza expr, umjesto da zahtijeva eksplicitnu najavu.

Popisi sadrže i sintaktički šećer u vezi s internetom (npr, [x*x for x in range (10)] za popis kvadrata) i dekorateri (@staticmethod).

U televizija niz označen navodnicima semantički je ekvivalentan broju znakova.

Oznaka koja se nalazi u paketu na internetu je %>% , i kaže da će podaci (ili izlaz funkcije) koji mu prethode poslužiti kao prvi argument sljedećeg alata. To omogućuje linearniji protok i dizajn manipulacije podacima. Napisano je kako bi se smjestile vrijednosti.

Kritika

sintaktički šećer svojstva

Neki programeri smatraju da ove mogućnosti korištenja sintakse ili nisu važne ili jednostavno nisu ozbiljne. Značajno je da posebni jezični oblici čine jezik manje monotonim, a njegove specifikacije složenijim i mogu stvarati probleme kako programi postaju veći. Ovaj je prikaz posebno raširen u zajednici Aipina, jer ima vrlo jednostavnu, redovitu i površnu sintaksu koja se lako može promijeniti.

Izvedeni pojmovi

sintaktički šećer što je to

Sintaktička sol. Metafora je proširena uvođenjem ovog izraza koji označava funkciju dizajniranu da otežava pisanje lošeg koda. Konkretno, sintaktička sol je obruč kroz koji programeri moraju preskočiti kako bi dokazali da znaju što se događa, a ne da izraze radnju programa. Na primjer, u Ace i Ace dodjeljivanje vrijednosti s pomičnim zarezom varijabli deklariranoj kao ACE, bez dodatne sintakse koja izričito navodi, što je namjera rezultirat će pogreškom u kompajliranju, dok će ina-i ina - ++ automatski skratiti sve brojeve s pomičnim zarezom dodijeljene nana-i. Međutim, to nije sintaksa, već semantika.

Un # skrivanje naslijeđenog člana klase daje upozorenje kompajlera, osim ako se ključna riječ ne koristi da bi se naznačilo da je skrivanje namjerno. To je potrebno kako bi se izbjegle eventualne pogreške zbog sličnosti prekidača izjave sintakse s onim što od C ili C ++, C # zahtijeva break za svaki neprazni case oznake switch, čak i ako on ne priznaje implicitno pad.

Sintaktička sol može prekršiti svoju svrhu čineći kod nečitljivim i na taj način degradirajući njegovu kvalitetu. U ekstremnim slučajevima, glavni dio može biti kraći od općih troškova uvedenih kako bi se zadovoljili zahtjevi jezika.

Alternativa ovom konceptu je generiranje upozorenja kompajlera kada postoji velika vjerojatnost da se čini da je kod rezultat pogreške praksa uobičajena u modernim kompajlerima az / az ++.

Sintaktički saharin

šalica kave s vrhnjem

Još jedno proširenje je i sirup. To, poput saharina, znači nerazumnu sintaksu koja ne olakšava programiranje.

Možda se čini čudnim nazivati jezik "slatkim", ali ako se radi u A-line, onda bi to bilo opravdano. Određeni program ima više sintaktičkog šećera od mnoštva jezika jer stavlja naglasak na ljudsko razumijevanje, a ne na računalno. Stvoritelj Interneta, Ukihiro Matsumoto, želio je jezik učiniti ne samo učinkovitim, već i zabavnim. Prevoditelji i tumači mogu uživati u tako visoko strukturiranom, nedvosmislenom odjelu gramatike, ali ljudima će to možda biti teško razumjeti. Tu dolazi sintaktički šećer — čini jezik "slađim" i u pisanju i u čitanju.

Pisanje koda

sintaktički šećer

Mora se imati na umu da "sintaktički šećer" nije tehnički pojam, već konstrukt namijenjen opisivanju načina na koji se jezik izražava. Jednostavno rečeno, ovaj pojam podrazumijeva Optimizirani kod za ljude. Cilj je pojednostaviti sintaksu tako da je lako čitati, čak i ako to smanjuje određenu tehničku jasnoću. Naravno, pisanje slatkog koda ne znači, što je moguće preskočite važan korak razumijevanja.

Kao iu stvarnom životu, važno je znati koliko se šećera koristi opće stanje zdravlje. Internet čini kod jednostavnim i izražajnim, ali i dvosmislenim. To je obično zbog činjenice da ne znaju svi i primjenjuju takav koncept u programiranju.

Članci o toj temi