De vorbă c-un calculator

Știai că ai putea să vorbești direct cu calculatorul tău și să-l pui să facă absolut ce vrei, dacă ai ști cum să i te adresezi?

El nu cunoaște vreo limbă vorbită de oameni, nu înțelege cuvinte. Nu. Comunică prin șiruri de unu și zero. Șirurile de unu și zero se numesc Assembly Language și nu sunt înțelese de aproape nimeni (iar cei care înțeleg Assembly sunt în orice caz de evitat). Există totuși posibilitatea să vorbești cu el printr-o limbă intermediară, numită „limbaj de programare”, aflată la periferia dintre o limbă vorbită (vezi problema „dacă au ouă la magazin, ia o duzină”) și ceea ce înțelege calculatorul; iar cei care o vorbesc se numesc „programatori”.

Limbajul de programare este concesia stabilită între mașină și om – un fel de lingua franca – o limbă care nu este înțeleasă nativ de niciunul dintre ei (calculatorul are nevoie de un traducător, numit compiler, care transformă ceea ce a fost scris din limbajul de programare în Assembly Language, iar programatorul – de ani de muncă). Cu toate că încă nu s-au născut oameni care să învețe nativ vreun limbaj de programare, între ele și limbile vorbite se pot trage mai multe paralele.

Limbajele de programare nu sunt bătute în piatră, ci ele se schimbă de-a lungul anilor, anumite părți fiind uitate sau ignorate complet, lăsând loc pentru forme noi de exprimare. Limbaje precum Java sau Python sunt updatate o dată la un interval fix de timp, astfel că un mod de a te adresa calculatorului care mergea acum un număr de ani poate să nu mai aibă niciun fel de rezultate. Mai mult, anumite limbaje de programare sunt schimbate de vorbitorii lor, nu de cei care le-au făcut, astfel că ies la iveală mai multe variante (pentru limba română am folosi cuvântul „graiuri”), iar, la un moment dat, anumiți factori duc la o standardizare a limbajului (ne-am putea gândi la limba literară – aceeași pentru toți vorbitorii de română). Limbajul BASIC s-a înrămurit de la conceperea sa din 1964 până când Microsoft a lansat în 1991 varianta proprie, Visual Basic, care a devenit standard.

În engleză, în mod plăcut, cuvântul pentru „limbă vorbită” și „limbaj de calculator” este același (spoken language și programming language), deoarece asemănarea dintre cele două este remarcabilă. Un limbaj de programare nu numai că poate fi mereu schimbător, dar se poate găsi și în mai multe dialecte. Cele mai multe dialecte au sus-menționatul BASIC (peste 450 menționate pe pagina de Wikipedia). Continuând analogia, observăm și limbaje asemanătoare, însă distincte, fiind undeva între dialect și limbă diferită. Pentru Python avem Alore, Boo, Cobra, Serpent (ultimele două au nume care fac trimitere la șerpi, deși Python a fost numit așa după serialul de comedie Monty Python).

Când vorbim despre limbaje de programare, putem vorbi și de împrumuturi – cuvinte cheie inventate de un limbaj sau altul și apoi imitate de cele noi. Acest lucru s-a întamplat cu Microsoft în așa măsură, încât limbajul conceput de ei, C#, din punct de vedere sintactic, pare la prima vedere a fi identic cu Java, un limbaj construit de Oracle.

Așadar, data viitoare când vei fi întrebat „What languages do you know?”, va trebui să ai în vedere faptul că există două tipuri de răspuns.

Grafica:  Miruna Rădulescu
Andrei Șerbănescu

Andrei Șerbănescu

Este interesat de informatică, matematică, dezbateri academice și literatură, considerând chimia un tărâm ezoteric, fascinant și intrinsec de neînțeles. Poate în câteva secunde să tranforme un număr din baza 10 în baza 2, astfel, în momentul când a intrat în LZR avea 10001 ani (17 scris în binar). Când nu scrie în Python sau C++, se dedică revistei.