zahăr sintactic

Rezervă: Sa cream un compilator!

zahăr sintactic

DISCUȚII Toate acestea ridică problema „sintactică de zahăr“. structuri care au fost adăugate la limba, nu pentru că acestea sunt necesare, ci pentru că ei fac programul arata bine pentru programator. În final, bun pentru a avea un compilator mic, simplu, dar de la el ar fi de puțin folos în cazul în care limba rezultată a fost codificată sau complexe de programare. Vine în minte este limbajul Forth. Dacă adăugăm posibilitatea de limbaj care face programul mai ușor de citit și de înțeles, iar dacă aceste caracteristici împiedică programator de la greșeli, atunci vom face. Mai ales în cazul în care aceste structuri nu adăugați prea mult complexitate în limba sau compilator.

Ca un exemplu ar putea fi considerat un punct și virgulă, dar există multe altele, cum ar fi «APOI» dacă, «DO» declarație într-o declarație while sau afirmării «PROGRAM» care l-am scos din TINY. Nici unul dintre aceste token-uri nu adaugă mult la sintaxa limbii. compilatorul poate da seama ce se întâmplă fără ei. Dar unii oameni simt că îmbunătățesc lizibilitatea programului și poate fi foarte important.

Există două școli de gândire cu privire la acest subiect, care este bine reprezentată de două dintre limbile cele mai populare C și Pascal.

Potrivit minimalist toate aceste zahăr ar trebui să fie eliminate. Ei susțin că aceasta ar supraîncărca limba și crește numărul de apăsări de taste, ceea ce ar trebui să facă programator. Poate mai important, că fiecare jeton sau cuvânt cheie suplimentar este capcana care se află în așteptare pentru programator neatent. Dacă nu luați în considerare indicativului dor sau face o eroare de ortografie, compilatorul v-ar lua. Prin urmare, acești oameni susțin că cea mai bună abordare - pentru a evita astfel de lucruri. Acești oameni preferă limba de tip C, care are un minim de cuvinte cheie și semne de punctuație inutile.

Diferențele sunt bine reprezentate de aceste două limbi. Reclamația cel mai frecvent auzit despre C - el este prea iertator. Atunci când faceți o greșeală în C, cod buggy, este de multe ori un alt design C. valid, prin urmare compilator doar fericit continuă să compileze și lasă să găsiți erori în timpul de depanare. Cred că de aceea debuggeri sunt atât de populare în rândul programatori C.

Pe de altă parte, în cazul în care programul compilat în Pascal, puteți fi destul de încrezător că programul va face ceea ce-i spui. Dacă există o eroare de execuție, este posibil să se proiecteze eroare.

Cel mai bun exemplu de zahăr util este direct punct și virgulă. Luați în considerare fragmentul de cod:

Deoarece nu există nici un operator care leagă token-ul „b“ cu restul expresiei, compilatorul va trage concluzia că expresia se termină cu „)“ și „b“ - acesta este începutul unei noi aprobare. Dar să presupunem că am ratat intenționat operatorul, și, de fapt, a vrut să spună:

În acest caz, compilatorul va genera o eroare, bun, dar nu va fi foarte semnificativ, deoarece acesta va fi de așteptat să semneze „=“ după „b“, care, în realitate, nu ar trebui să fie acolo.

În cazul în care, vice-versa, voi pune un punct și virgulă după „b“, atunci aceasta nu poate să rămână îndoieli care, presupun, declarația se termină. zahăr sintactic, prin urmare, Acesta poate servi unui scop foarte util, oferind unele nete suplimentare de siguranță pe care vom rămâne pe drumul cel bun.

Sunt undeva la mijloc între aceste două abordări. Mă închin la beneficiile de perspectivă Pascal. Aș fi foarte fericit pentru a găsi erorile lor la momentul compilarii, mai degrabă decât în ​​timpul rulării. Dar eu, de asemenea, urăsc să arunce doar cuvinte fără nici un motiv aparent în COBOL. Până în prezent, am aruncat în mod constant cele mai multe dintre KISS zahăr Pascal / mici. Dar eu cu siguranță nu simt un sentiment puternic pentru orice metodă, și eu pot vedea, de asemenea, importanța de răspândire a unei cantități mici de zahăr este doar pentru plasă de siguranță suplimentară pe care le oferă. Dacă vă place această ultimă abordare, aceste lucruri sunt ușor de adăugat. Doar amintiți-vă că la fel ca punct și virgulă, fiecare linguriță de zahăr - este ceva care ar putea conduce la o eroare de compilator în cazul în care omiterea sa.