Oamenii mă întreabă uneori ce trebuie să înveți pentru a deveni programator. Întrebarea este oarecum naivă, pentru că... În opinia mea, este imposibil să răspund la asta în mod normal. Aceste. Mai întâi trebuie să-ți dai seama ce fel de programator trebuie să devii. Și oricum, ești programator? În plus, atât specialiștii înalt calificați, scumpi, cât și „forța de muncă” sunt solicitate pe piață. Pachetul de cunoștințe și experiență din primul și al doilea diferă într-o măsură semnificativă.
Dar, în ciuda atât de vag al întrebării, este încă posibil să se răspundă. Puteți descrie maximul aproximativ de cunoștințe care, într-un fel sau altul, se referă la programare. De fapt, ei se străduiesc de obicei să predea acest maxim în universități în specialități ale căror titluri includ cuvântul „programator”.
Am studiat să fiu programator la facultate, apoi la universitate. Universitatea a fost cea care a rezolvat înțelegerea și interconectarea disciplinelor legate de așa-numitele științe informatice. Chiar dacă cunoștințele pe care le-au dat acolo erau înguste la minte și puțin depășite, au avut o abordare sistematică bună. După ani de practică după absolvire, am ajuns la concluzia că clasificarea universitară a disciplinelor este destul de bună și ne permite să răspundem la întrebarea ce ar trebui să știe orice programator.
Desigur, este imposibil să știi totul. Și nu este necesar. În plus, unele întrebări trebuie să fie cunoscute în profunzime, în timp ce altele necesită o înțelegere superficială de ansamblu. Prin urmare, în funcție de specializare, unele discipline sunt mai relevante, altele mai puțin. Dar cunoștințele generale de bază sunt necesare pentru aproape toate pentru orice inginer software, de la un inginer de sisteme la un dezvoltator web.
În paragraful anterior, am introdus în mod deliberat termenul „inginer software”. Cumva, se dovedește că un programator nu este neapărat un inginer. Chiar și din definiția Wikipedia rezultă că un inginer este în primul rând un designer. Acesta este cel care creează, adică. proiectează sisteme. Dar în practica de programare, designul nu este întotdeauna necesar. Uneori este suficientă codificarea: folosirea acest set tehnologii, pentru a crea ceva care funcționează. Un exemplu tipic este o turmă de site-uri corporative sau de marketing pe Joomla, WordPress, Drupal etc. Acesta este nivelul unui tehnician, nu al unui inginer. Acesta este nivelul de învățământ secundar. Și puteți lucra ca tehnician chiar și după finalizarea cursurilor în orice limbaj de programare, nu este necesară o bază teoretică puternică.
Și, revenind la inginerii de software, vreau să ofer graficul meu al disciplinelor pe care programatorii le studiază. Este evident că unele discipline folosesc în mod activ cunoștințele altora sau chiar cresc din altele. În consecință pentru înţelegere deplină Subiectul „superior”, este necesar un anumit nivel de înțelegere a celui inferior.
Graficul este format din subiecte (discipline) și este împărțit pe nivele. Cel mai jos - Baza generală - nu are nimic de-a face cu informatica. Este dat doar pentru a arăta pe ce se bazează disciplinele de informatică.
Există 2 tipuri de conexiuni între discipline: utilizare(săgeată regulată) și extensie(contur săgeată). Utilizarea implică nevoia de cunoaștere fragmentară a unui alt subiect, iar extinderea implică nevoia de cel puțin o privire de ansamblu, dar cunoștințe complete disciplina extensibilă.
Primul nivel de la CS (informatica) - Baza speciala . Acesta este punctul de plecare pentru orice programator pe patru fronturi:
bazele aritmetice ale calculatoarelor(sisteme numerice și operații cu numere, operații logice);
bazele fizice ale calculatoarelor(conductori, tranzistori, elemente logice, circuite, circuite integrate);
teoria algoritmilor(algoritmi și structuri de date; complexitate, eficiență; metode de reprezentare a informațiilor în memorie);
(Arhitectura sistemului de operare, procese, comunicare interprocese, fire de execuție, planificare, lucru cu memorie și periferice, sisteme POSIX);
analiza sistemului(domeniu, procese de afaceri, fluxuri, diagrame, principii și teoria analizei sistemului);
baze de date(teoria seturilor, tipuri de SGBD, SGBD relațional, modele de date, SQL, baze de date specifice).
Următorul nivel - Nivelul 2 - îl dezvoltă pe precedentul. Apropo, am intrat în ea doar pentru că pentru a le studia este de dorit (dar nu necesar) să stăpânim mai întâi sistemele de operare. Din punct de vedere al dezvoltării, acest subiect este încă mai aproape de primul nivel.
Nivelul 2 include:
dezvoltare software (ciclu de viață Software, etapele de dezvoltare, elementele de bază ale rulării proiectelor software, instrumente);
analiza datelor(Data Mining, OLAP, învățare automată, rețele neuronale, AI);
rețele de calculatoare(după niveluri de stive TCP/IP și/sau ISO/OSI „de la și către”, protocoale, programare de rețea în C/C++);
limbaje de programare a codurilor gestionate(cod gestionat, mașini virtuale, colectoare de gunoi, testare unitară, practică efectivă în C# sau Java);
Nivelul 3 - ultimul nivel pentru programatorul mediu. Este cel mai voluminos și include doar acele discipline care au legătură directă cu dezvoltarea de software. Au fost 6 în total:
Dezvoltarea interfeței de utilizare și a gradului de utilizare(principii de proiectare a interfețelor utilizator);
managementul echipei și al proiectelor(metodologii de dezvoltare și alte probleme de management);
testarea software-ului(prezentare generală: tipuri de testare, instrumente);
tehnologii web(protocol HTTP, server web, CGI, caching și proxy, programare client);
sisteme distribuite(arhitecturi ale sistemelor distribuite, protocoale pentru interacțiunea în rețea a componentelor, instrumente, principii, abordări ale construirii sistemelor distribuite, toleranță la erori, date mari, sarcini mari);
limbaje de programare interpretate(funcții, elemente de bază în două sau trei limbi, practică în una sau două limbi: JS, PHP, Python, Ruby).
Tot ce este mai sus este extins Expertiza . În general, acest nivel poate fi extins la nesfârșit, adăugând discipline adiacente dezvoltării și aspectelor cele mai complexe ale dezvoltării software. Am dat 3 exemple - dezvoltarea compilatoarelor, dezvoltarea sistemelor de operare și construcția de arhitecturi pentru sisteme software și hardware mari, sau arhitecturi concepute pentru sarcini deosebit de mari. Dependente la niveluri inferioare Nu l-am desenat pe grafic pentru că vor fi prea multe săgeți care trec prin toate nivelurile, până la baza comună. Probabil, dependențele largi sunt unul dintre semnele întrebărilor de natură expertă. Acest lucru confirmă doar că nivelul de expert necesită cele mai ample cunoștințe și experiență bună.
Lucrul interesant despre grafic este că nu arată doar ordinea preferată a subiectelor de studiu, ci și:
face posibilă înțelegerea care sunt disciplinele necesare mai mult și care sunt mai puțin pentru a lucra într-o anumită specializare (pur și simplu selectați subiectul principal de specializare și priviți conexiunile și distanța față de ceilalți);
oferă o înțelegere a modului de a studia informatica dacă începeți nu cu elementele fundamentale, ci cu cunoștințe aplicate (de exemplu, PHP) - vă puteți deplasa de-a lungul conexiunilor în lateral și în jos - de fapt, aceasta este exact calea mea personală de dezvoltare a fost (și nu pot să-l numesc cel mai ușor, mai eficient și optim).
Graficul este un model. O model bun De regulă, oferă răspunsuri la multe întrebări simultan. Mi-am propus sarcina de a face buna numaratoare, aproape de realitate. Normal că se bazează pe a mea experiență personalăși nu se preface a fi ideal. Am încercat să o fac cât mai obiectivă. Și vă reamintesc încă o dată că acesta este un grafic pentru un programator. Aceste. pentru un tester, administrator de sistem și alte profesii apropiate de programare, va fi mai mult sau mai puțin apropiat, dar clar diferit.
Se numesc limbaje de programare care sunt orientate spre comenzile procesorului și iau în considerare caracteristicile acestuia limbi de nivel scăzut. „Nivel scăzut” nu înseamnă rău sau nedezvoltat, înseamnă că operatorii acestui limbaj sunt aproape de nivelul hardware, codul mașinii este concentrat pe comenzile unui anumit tip de procesor. Codul mașinii a fost folosit ca limbaj de programare în prima generație de mașini.
Limba de cel mai jos nivel este asamblator. Programul de pe el reprezintă o secvență de comenzi de cod de mașină, dar scrise folosind mnemonici simbolice. Cu ajutorul limbajelor de nivel scăzut, sunt create programe compacte, optime, deoarece programatorul are acces la toate capacitățile procesorului. Pe de altă parte, acest lucru necesită o bună înțelegere a structurii computerului, iar utilizarea unui astfel de program pe un computer cu un alt tip de procesor este imposibilă. Astfel de limbaje de programare sunt folosite pentru a scrie aplicații de sistem mici, drivere de dispozitiv și module pentru andocare cu echipamente non-standard, atunci când compactitatea, performanța și accesul direct la resursele hardware sunt mai importante.
Limbajele de programare care imită limbajele naturale, au comenzi mari și sunt „orientate spre om” sunt numite limbi de nivel înalt. Caracteristici specifice arhitecturi de calculatoare nu sunt luate în considerare. Cu cât nivelul limbajului este mai ridicat, cu atât structurile de date și construcțiile utilizate în program sunt mai apropiate de conceptele naturale ale sarcinii originale.
Astfel, limbajele de programare de nivel înalt sunt concentrate pe rezolvarea conținutului mare probleme aplicate. Este mult mai ușor să dezvoltați programe în limbaje de nivel înalt folosind comenzi clare și puternice, iar numărul de erori făcute în timpul procesului de programare este mult mai mic.Folosind un limbaj de programare, un program nu este creat gata de execuție, ci doar textul său (se numește cod sursă - cod sursă), descriind algoritmul dezvoltat. Codurile sursă ale programelor sunt ușor de portat pe alte platforme pentru care sunt dezvoltate. traducători a acestei limbi. Traducătorii (programele care traduc codul sursă în cod mașină) sunt de două tipuri principale: compilatori și interpreți.
Compilator procesează complet întregul text al programului: căutări erori de sintaxă, efectuează o analiză semantică și numai atunci, dacă textul programului respectă întocmai regulile limbii, este tradus (tradus) automat în limbajul mașinii în cod gata de executat (fișier EXE), care poate rula sub sistemul de operare . Poate fi transferat pe alte computere cu un procesor care acceptă codul de mașină corespunzător.
Interpret preia următoarea instrucțiune de limbă din textul programului, îi analizează structura și apoi o execută imediat. După executarea cu succes a comenzii curente, interpretul continuă să analizeze și să execute următoarea. Dacă aceeași instrucțiune este executată de mai multe ori într-un program, interpretul o tratează de fiecare dată ca și cum ar fi fost întâlnită pentru prima dată. Prin urmare, programele care necesită o cantitate mare de calcule repetitive vor rula lent. În plus, pentru a rula programul pe un alt computer, trebuie instalat și un interpret, deoarece fără el programul nu va funcționa.
Principalul dezavantaj al compilatoarelor este laboriositatea traducerii limbajelor de programare axate pe prelucrarea datelor dintr-o structură complexă, necunoscută în prealabil sau care se schimbă dinamic în timpul funcționării programului. Pentru astfel de programe, în codul mașinii sunt introduse verificări și analize suplimentare privind disponibilitatea resurselor sistemului de operare, precum și mijloace pentru capturarea și eliberarea dinamică a memoriei computerului, care este destul de dificil de implementat la nivelul instrucțiunilor mașinii specificate static și pentru unele sarcini este aproape imposibil.
Folosind un interpret, dimpotrivă, pentru a examina conținutul memoriei, este posibil să întrerupeți programul în orice moment, să organizați un dialog cu utilizatorul, să efectuați orice transformări complexe de date și, în același timp, să monitorizați constant software-ul și hardware-ul mediu, care asigură o fiabilitate ridicată a programului. La executarea fiecărei comenzi, interpretul verifică și analizează resursele necesare sistemului de operare, iar dacă apar probleme, emite mesaje de eroare.
Cum să se dezvolte tehnologie informatică nu sta pe loc, iar metodele și limbajele de programare sunt îmbunătățite în mod constant. Să luăm în considerare ce limbi există în domeniul computerelor moderne și clasificarea lor.
Lista limbajelor de programare este atât de largă și diversă, încât aranjarea completă a acesteia este o sarcină aproape imposibilă. Dintre toate limbile, se pot distinge trei subgrupuri principale:
Printre dezvoltatorii modern software Cele mai populare sunt următoarele limbaje de programare majore. Lista este dată în ordinea descrescătoare a popularității:
Această listă de limbaje de programare este departe de a fi completă, dar acestea sunt cele mai populare limbaje, a căror cunoaștere poate fi cerută unui programator atunci când aplică pentru un loc de muncă. Toate sunt limbaje de programare de nivel înalt.
Limbajele de programare de nivel scăzut sunt acele limbaje care necesită luarea în considerare a tipului și capacităților procesorului. Operatorii și metodele de operare ale unor astfel de limbaje de programare sunt destul de apropiate de codul mașinii, necesită cunoștințe despre dispozitivul de memorie computer personalși cum îl accesează procesorul.
Este dificil de a numi diferitele limbaje de programare de nivel scăzut. Lista se va reduce în continuare la o singură limbă dominantă - limbajul de asamblare. Deoarece vă permite să compuneți coduri de program în notații apropiate de codul mașinii, asamblatorul este utilizat exclusiv la scrierea software-ului de sistem, cum ar fi sisteme de operare, drivere de dispozitiv și la programarea codurilor de control ale microcircuitelor.
Dezavantajul unor astfel de limbaje de programare este că programele din ele sunt scrise pentru a îndeplini sarcini specifice, dispozitiv specific iar executarea lor este imposibilă dacă sunt transferate la alt procesor.
Lista limbajelor de programare de creat aplicații personalizate, precum și pentru dezvoltarea și implementarea de software personalizat, are mii de posturi. După cum înțelegeți, o astfel de diversitate se datorează faptului că o anumită limbă este potrivită pentru rezolvarea anumitor probleme.
Deși aceste limbaje de programare sunt clasificate ca un grup separat, ele sunt executate în codul mașinii. A performa program terminat rând cu rând și traducerea lui în programe speciale – interpreți. Dacă traducerea codul programului Când se transferă dintr-o limbă în alta fără a executa comenzi, programele de compilare fac acest lucru. ÎN caz general programele concepute pentru a traduce programe scrise dintr-un limbaj de programare formal în altul se numesc traducători.
Să aruncăm o privire mai atentă asupra limbajelor de programare de nivel înalt. Nu vom face o listă, vom scrie doar puțin mai detaliat despre fiecare dintre cele mai populare.
Un limbaj de programare specializat este destinat în primul rând lucrului cu sistemele de gestionare a bazelor de date și programarea acestora. SQL se traduce prin „specializat” Deoarece piața DBMS a crescut exponențial în ultimele decenii, popularitatea acestui limbaj nu este o surpriză.
Există opinii diferite cu privire la viitorul acestei limbi. Se crede cu siguranță că tehnologia de creare a bazelor de date relaționale a fost la cel mai bun moment, dar timpul i se scurge. Nevoia de dezvoltare în legătură cu volumele tot mai mari de date prelucrate îi conduce pe experți la ideea că în viitor umanitatea are nevoie pur și simplu de o tranziție de la tehnologiile relaționale la cele post-relaționale, ținând însă cont de menținerea compatibilității cu băncile de date existente.
Pe bună dreptate, se află pe locul al doilea în rândul limbajelor de programare de nivel înalt. Ușor de învățat, convenabil de utilizat. Adaptabilitatea crescută la programare în comparație cu progenitorul său duce la faptul că milioane de oameni din întreaga lume lucrează cu acest limbaj. Un limbaj orientat pe obiecte bazat pe C++, adaptat pentru a crea programe și aplicații capabile să prelucreze fluxuri uriașe de informații în medii specializate și ținând cont de specificul mediului de implementare a produsului finit.
Tehnologia Java este baza care permite extinderea nelimitată a infrastructurii întreprinderilor și companiilor, capabile să conecteze între ele sisteme de diferite calibre, de la conectarea la o rețea telefonică prin Wi-Fi până la supercomputere.
Descendentă a HTML, această tehnologie este un limbaj de marcare extensibil. Este adaptat pentru interpretarea documentelor. Efectuează transformări complexe și modificări ale documentelor. XML este folosit pentru a transfera și stoca temporar date atunci când lucrați cu diverse baze de date relaționale prin Internet.
XML a atins deja punctul în care poate pretinde că este tehnologia de bază pentru construirea rețelelor corporative.
Cele mai populare limbaje de programare folosesc vocabularul englezesc. Cu toate acestea, pe lângă ele, există și limbaje de programare ruse. Lista în limba rusă este mică, iar domeniul în care sunt folosite este foarte specializat. Să dăm câteva exemple.
După cum puteți vedea, lista limbajelor de programare este atât de largă și variată încât nu poate fi acoperită de nicio clasificare sau liste. Dacă te hotărăști să te apuci de programare la nivel amator sau profesional, atunci amintește-ți că un programator este o profesie creativă care necesită nu numai cunoștințe, ci și fantezie, imaginație, intuiție și chiar puțin noroc.
Limbajul de programare – una dintre modalitățile de a scrie algoritmi; un set de simboluri de sistem, reguli pentru formarea și interpretarea construcțiilor din simboluri pentru specificarea algoritmilor folosind simboluri în limbaj natural.
Un procesor de calculator este un circuit integrat mare. Primește toate comenzile și datele sub formă de semnale electrice, dar pot fi reprezentate și ca o colecție de zerouri și unu, adică numere. Prin urmare, în realitate, programul cu care lucrează procesorul este o secvență de numere numite codul mașinii .
Scrierea unui program în codul mașinii este destul de dificilă, iar complexitatea lucrării crește disproporționat cu dimensiunea programului. În mod convențional, putem presupune că codul de mașină este acceptabil dacă dimensiunea programului nu depășește câteva zeci de octeți și nu este nevoie de operații manuale de introducere și ieșire a datelor. Această situație apare, de exemplu, la programarea automatelor simple.
Mai mult programe complexe creat folosind așa-numitele limbaje de programare. Teoretic, un program poate fi scris folosind limbajul uman obișnuit - aceasta se numește programare într-un metalimbaj, dar nu este încă posibilă traducerea automată a limbajului uman obișnuit în codul mașinii. Traducerea este efectuată de special utilitati, numit radiodifuzorii, iar traducătorii capabili să traducă limbajul uman obișnuit în codul mașinii nu există încă (din cauza ambiguității ridicate a limbajului natural).
limbaje de programare – limbaje artificiale. Ele diferă de limbile umane naturale într-un număr mic de cuvinte, al căror sens este clar pentru traducător (aceste cuvinte sunt numite cheie), și cerințe destul de stricte pentru forma operatorilor de înregistrare (totalitatea acestor formulare de cerințe gramaticăŞi sintaxă limbaj de programare). Încălcările formularului de înregistrare fac ca traducătorul să nu poată efectua corect traducerea și să afișeze un mesaj de eroare.
Ce este nevoie pentru a „crea un limbaj de programare”?
La prima vedere, pentru a face acest lucru, este necesar să se determine ce instrucțiuni pot fi folosite în ea (se numesc operatori), aprobă cu strictețe lista de cuvinte cheie care pot fi utilizate și dezvoltă reguli de scriere a fiecărui operator (reguli de sintaxă). Cu toate acestea, acest lucru nu este suficient. Aceasta este doar o idee a unui limbaj de programare. Pentru ca acesta să aibă aplicație practică, trebuie dezvoltat un program care să poată difuza text scris în conformitate cu toate regulile a acestei limbiîn codul mașinii, adică creați un traducător. Astfel, traducătorul reprezintă o implementare specifică a ideii de limbaj de programare.
Pe baza principiului de funcționare, există două tipuri de traducători: compilatoareŞi interpreți. În consecință, se pot distinge două clase de limbaje de programare: compilateŞi interpretabil .
Difuzarea este traducere. Dacă ne uităm la modul în care lucrează traducătorii din limbi străine, vom vedea și că există două abordări: traducerea simultană și traducerea textului.
Un traducător simultan „prinde” fraza pe care o aude și o traduce cât mai aproape de sens posibil. În momentul traducerii, el nu știe ce frază va urma în continuare și nu are timp să ia în considerare frazele exprimate mai devreme. Este ca și cum ar lucra cu o anumită frază la un moment dat. Pentru a traduce orice concepte specifice, el trebuie să construiască structuri întregi. Expresiile de traducere simultană sunt de obicei mai lungi decât originalul și lipsesc de grație.
Un traducător literar va citi mai întâi întregul text pentru a fi tradus de mai multe ori. El va găsi în avans toate locurile care sunt deosebit de greu de tradus, va construi structurile necesare și le va folosi ori de câte ori va fi nevoie. Atunci când traduce o anumită frază, traducătorul trebuie să țină cont de caracteristicile întregii cărți în ansamblu și chiar de caracteristicile altor lucrări ale aceluiași autor.
Interpreți lucrează ca interpreți simultani. Ei iau o declarație dintr-un program, o traduc în codul mașinii (sau un cod intermediar apropiat de codul mașinii) și o execută. Dacă un anumit operator este folosit în mod repetat într-un program, interpretul îl va traduce fidel de fiecare dată, ca și cum ar fi întâlnit pentru prima dată.
Compilatoare procesează programul în mai multe etape. În primul rând, ei revizuiesc textul sursă (numit de obicei cod sursă) de mai multe ori, găsesc zone comune, verifică erori de sintaxă și contradicții interne și abia apoi traduc textul în codul mașinii. Rezultatul este un program compact și eficient.
Dacă un program este scris într-un limbaj de programare interpretat, atunci acesta poate fi executat doar pe computerul pe care va fi instalat anterior interpretul, deoarece acesta trebuie să participe la execuția programului. Programele scrise în limbaje de programare compilate nu au nevoie de intermediari - după compilare, este deja obținut codul mașinii, care conține tot ceea ce este necesar pentru ca procesorul să funcționeze. Prin urmare, astfel de programe funcționează pe orice computer și o fac de sute de ori mai repede. Acesta este avantajul limbajelor de programare compilate.
Totuși, programele scrise în limbaje de programare interpretate au un alt avantaj. Deoarece le putem executa numai sub controlul interpretului, putem, în consecință, să oprim programul în orice moment, să ne uităm la declarațiile sale, să facem modificările necesare, să-l pornim din nou etc. Conținutul programului este deschis utilizatorului. Pentru programele compilate este aproape imposibil să faci toate acestea. După compilarea unui program, textul său sursă rămâne doar la autor. Toți ceilalți utilizatori primesc cod de mașină care poate fi executat, dar practic nu poate fi văzut sau modificat. Deși teoretic acest lucru se poate face, necesită o cantitate imensă de timp, disponibilitate programe specialeși un nivel ridicat de cunoștințe și experiență.
Există două niveluri de limbaje de programare: limbi de nivel scăzutŞi limbi de nivel înalt .
Limbajul de programare de nivel scăzut este un limbaj de programare creat pentru a fi utilizat cu un tip special de procesor și ținând cont de caracteristicile acestuia. În acest caz, „nivel scăzut” nu înseamnă „rău”. Aceasta înseamnă că limbajul este aproape de codul mașinii (vă permite să implementați direct unele comenzi ale procesorului).
Limbile de nivel scăzut seamănă puțin cu limbajul normal, familiar. Programele mari și alfabetizate sunt rareori scrise în astfel de limbi. Dar dacă programul este scris într-o astfel de limbă, atunci va funcționa rapid, va ocupa o cantitate mică de spațiu și va permite un număr minim de erori. Cu cât limbajul este mai jos și mai aproape de nivelul mașinii, cu atât sarcinile care sunt atribuite fiecărei echipe sunt mai mici și mai specifice.
Pentru fiecare tip de procesor, cel mai scăzut nivel este limba asamblator, care vă permite să reprezentați codul mașinii nu ca numere, ci ca simboluri, numite mnemonice. Fiecare tip de procesor are propriul limbaj de asamblare; poate fi considerată în acelaşi timp cu formă specială comenzile mașinii de înregistrare și ca limbaj de programare de cel mai scăzut nivel.
Avantajul limbilor de nivel scăzut este că ajută la crearea cel mai mult programe eficiente(scurt și rapid). Dezavantajul unor astfel de limbaje este că sunt dificil de învățat din cauza necesității de a înțelege structura procesorului și că un program creat într-un astfel de limbaj nu este aplicabil altor tipuri de procesoare.
Limbaje de programare la nivel înalt vizibil mai ușor de învățat și utilizat. Programele scrise cu ajutorul lor pot fi folosite pe orice platformă de calculator, cu condiția să existe un traducător pentru limba dată. Aceste limbi nu iau în considerare deloc proprietățile unui anumit procesor și nu oferă mijloace directe pentru accesarea acestuia. În unele cazuri, acest lucru limitează capacitățile programatorilor, dar lasă și mai puțin loc pentru greșeli.
Limbile de nivel înalt sunt mai orientate spre om; Comenzile acestor limbi sunt cuvinte englezești care pot fi citite de om. Cu cât nivelul limbajului este mai mare, cu atât trebuie efectuate mai multe operații pentru a executa comanda necesară.
Odată cu apariția limbajelor de nivel înalt, programatorii au putut să aloce mai mult timp rezolvării unei anumite probleme, fără a fi distrași în special de problemele foarte subtile de organizare a procesului de executare a unei sarcini pe o mașină. În plus, apariția acestor limbi a marcat primul pas către crearea de programe care au depășit limitele laboratoarelor de cercetare și departamentelor financiare.
Avantajele limbajelor de programare de nivel înalt :
· alfabetul limbajului este mult mai larg decât cel al mașinii, ceea ce îl face mult mai expresiv și crește semnificativ claritatea și înțelegerea textului;
Care sunt diferitele limbaje de programare? Ce fel de concepte sunt încorporate în ele? Cum s-au dezvoltat? În acest articol, vom lua în considerare tipurile de limbaje de programare bazate pe așa-numitele niveluri - de la coduri de mașină (nivel scăzut, aproape de hardware-ul computerului) până la limbaje precum Java sau C# (nivel înalt). Cu cât listarea de text a programului suferă mai puține transformări pe parcursul transformării într-un set de zerouri și unu, cu atât nivelul este mai scăzut. În continuare ne vom uita la:Unii lucrează cu de mare viteză(săgeți roșii): procesorul extrage comenzi din memorie și manipulează datele, mai ales în jocurile 3D, consumă cantități uriașe de texturi, forme, coordonate pixeli și alte obiecte pentru a construi o imagine pe ecranul monitorului. Alții (din cauza limitărilor în viteza schimbului de informații) nu au nevoie de indicatori atât de înalți. Diverse interne și dispozitive externe sunt conectate în diagramă cu săgeți verzi.