Home » Articole » Articole » Calculatoare » Programare » C » De ce să înveți limbajul de programare C?

De ce să înveți limbajul de programare C?

postat în: C 0

Limbajul de programare CLimbajul de programare C este cel mai des folosit limbaj de programare pentru scrierea sistemelor de operare. Primul sistem de operare scris în C este Unix. Sistemele de operare ulterioare precum GNU/Linux au fost toate scrise în C. Nu numai că C este limbajul sistemelor de operare, ci este și precursorul și inspirația pentru aproape toate cele mai populare limbaje de nivel înalt disponibile astăzi. De fapt, Perl, PHP, Python și Ruby sunt toate scrise în C.

Prin analogie, să presupunem că urma să înveți spaniolă, italiană, franceză sau română. Crezi că să știi latina ar fi util? Așa cum limba latină a fost baza tuturor acestor limbi, cunoașterea C vă va permite să înțelegeți și să apreciați o întreagă familie de limbaje de programare construite pe tradițiile lui C. Cunoașterea lui C vă asigură libertatea.

De ce C și nu asamblare?

Cel mai important motiv pentru a învăța C mai degrabă decât asamblare, este că este mult mai ușor și mai rapid să scrieți cod în C decât în ​​asamblare pentru o anumită sarcină de programare. Cu C, vei scrie mult mai puține linii de cod, vei finaliza munca mult mai rapid și cu mult mai puțin efort mental decât dacă l-ai scrie în asamblare. Și cu compilatoarele moderne de astăzi, fișierele executabile compilate din codul sursă C vor rula de obicei mai repede decât unul scris „de mână” folosind asamblare. Numai în cazuri rare și numai dacă știți cu adevărat ce faceți, asamblarea poate oferi avantaje importante de viteză față de codul C compilat cu un compilator decent.

Și cu C, nu trebuie să sacrifici mult control la nivel scăzut asupra modului în care este executat codul tău. O declarație tipică C se traduce în doar câteva instrucțiuni de asamblare. Dar C vă oferă, de asemenea, o bibliotecă de software mare pentru a vă ajuta să executați sarcini de nivel scăzut pe care preferați să nu fiți deranjat să le programați.

Un alt avantaj uriaș al lui C este portabilitatea. Procesoare diferite au seturi de instrucțiuni diferite. Trebuie să rescrieți și să întrețineți codul de asamblare pentru fiecare arhitectură de computer pe care doriți să executați codul, o sarcină oneroasă. Și, așadar, unul dintre principalele puncte forte ale lui C este că combină universalitatea și portabilitatea în diferite arhitecturi de computere, oferindu-vă în același timp același tip de control hardware la nivel scăzut pe care îl obțineți cu asamblarea. Aceasta înseamnă că puteți scrie codul sursă C o dată și îl puteți compila cu ușurință în binare pentru a fi utilizat pe o mare varietate de mașini.

De exemplu, programele C pot fi compilate și rulate pe calculatorul HP 50g (procesor ARM), calculatorul TI-89 (procesor 68000), smartphone-uri Palm OS Cobalt (procesor ARM), iMac original (PowerPC), Arduino (Atmel). AVR) și Intel iMac (Intel Core 2 Duo). Fiecare dintre aceste dispozitive are propria sa ansamblare care este complet incompatibilă cu asamblarea oricărui alt dispozitiv. C face posibilă rularea codului pe aceste mașini cu mult mai puțin efort.

Deci, este de mirare că C este un limbaj atât de popular?

La fel ca răsturnarea pieselor de domino, următoarea generație de programe urmează tendința strămoșilor săi. Sistemele de operare proiectate în C au întotdeauna biblioteci de sistem proiectate în C. Aceste biblioteci de sistem sunt, la rândul lor, utilizate pentru a crea biblioteci de nivel superior (cum ar fi OpenGL sau GTK), iar designerii acelor biblioteci decid adesea să folosească limbajul folosit de bibliotecile de sistem. Dezvoltatorii de aplicații folosesc bibliotecile de nivel superior pentru a proiecta procesoare de text, jocuri, playere media și altele asemenea. Mulți dintre ei vor alege să programeze în limba pe care o folosește biblioteca de nivel superior. Și tiparul continuă și mai departe, și mai departe…

Acestea fiind spuse, învățarea limbajului de asamblare poate fi distractivă și utilă, deoarece vă poate oferi o înțelegere profundă a modului în care funcționează computerul la niveluri foarte scăzute. Și învățarea sa te va ajuta cu siguranță să devii un programator C mai priceput. Deci, prin toate mijloacele, vă încurajăm să învățați asamblarea, dar când vine timpul să faceți o muncă reală, cu siguranță veți dori să o finalizați cu C.

De ce C și nu un alt limbaj?

Designul principal al lui C este pentru a produce cod portabil, menținând în același timp performanța și minimizând amprenta (timpul CPU, utilizarea memoriei, I/O pe disc etc.). Acest lucru este util pentru sistemele de operare, sistemele încorporate sau alte programe în care performanța contează foarte mult (interfața „la nivel înalt” ar afecta performanța). Cu C este relativ ușor să păstrezi o imagine mentală a ceea ce face cu adevărat o anumită linie, deoarece majoritatea lucrurilor sunt scrise explicit în cod. C are o bază de cod mare pentru aplicații de nivel scăzut. Este limbajul „nativ” UNIX, ceea ce îl face flexibil și portabil. Este un limbaj stabil și matur, care este puțin probabil să dispară pentru o lungă perioadă de timp și a fost portat pe majoritatea, dacă nu toate, platformele.

Un motiv puternic este alocarea memoriei. Spre deosebire de majoritatea limbajelor de programare, C permite programatorului să scrie direct în memorie. Construcțiile cheie în C, cum ar fi structurile, pointerii și matricele, sunt concepute pentru a structura și manipula memoria într-un mod eficient, independent de mașină. În special, C oferă control asupra aspectului memoriei structurilor de date. Mai mult, alocarea dinamică a memoriei este sub controlul programatorului (ceea ce înseamnă, de asemenea, că dealocarea memoriei trebuie făcută de programator). Limbaje precum Java și Perl protejează programatorul de nevoia de a gestiona majoritatea detaliilor privind alocarea memoriei și indicatorii (cu excepția scurgerilor de memorie și a altor forme de exces de utilizare a memoriei). Acest lucru poate fi util, deoarece alocarea memoriei la construirea unui program de nivel înalt este un proces foarte predispus la erori. Cu toate acestea, atunci când aveți de-a face cu cod de nivel scăzut, cum ar fi partea a sistemului de operare care controlează un dispozitiv, C oferă o interfață uniformă și curată. Aceste capabilități pur și simplu nu există în majoritatea celorlalte limbi.

În timp ce Perl, PHP, Python și Ruby pot fi puternice și suportă multe caracteristici care nu sunt furnizate implicit în C, acestea nu sunt în mod normal implementate în limbajul lor propriu. Mai degrabă, majoritatea acestor limbaje se bazau inițial pe a fi scrise în C (sau alt limbaj de programare de înaltă performanță) și ar necesita ca implementarea lor să fie portată pe o nouă platformă înainte de a putea fi utilizate.

Ca și în cazul tuturor limbajelor de programare, dacă doriți să alegeți C în detrimentul unui alt limbaj de nivel înalt este o chestiune de opinie și atât cerințele tehnice, cât și cele de afaceri, ar putea dicta ce limbaj este necesar.

Traducere și adaptare din Wikibooks de Nicolae Sfetcu

Războiul electronic și inteligența artificială
Războiul electronic și inteligența artificială

Această carte este ideală pentru profesioniștii în afaceri, strategii militari, și publicul academic.

Nu a fost votat 9.53 lei24.85 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.
Ghid pagini Facebook – Campanii de promovare pe Facebook
Ghid pagini Facebook – Campanii de promovare pe Facebook

Ghidul complet pentru succesul pe Facebook – Descoperă strategii eficiente de promovare!

Nu a fost votat 19.11 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.
Ghid WordPress pentru începători
Ghid WordPress pentru începători

Descoperă arta gestionării site-urilor web cu WordPress!

Nu a fost votat 14.32 lei26.24 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *