Sursa imaginii: pixabay.com
Am scris acest blog, considerând că oamenii care vor citi acest lucru sunt începători absoluti. Oamenii care au un fundal de genul, vreau să spun că nu tocmai un fond tehnologic le-ar fi greu să înceapă să învețe programarea atunci când nu există nimeni care să îi ghideze. Astfel, am scris acest blog ca o amabilitate pentru ei. Deci, vorbind de limbi, care sunt exact limbajul la nivel înalt și cel de nivel scăzut? De ce sunt numiți chiar așa? Și cât diferă între ei?
Inutil să spun că le-am acoperit pe toate în acest blog.
Infografie la nivel înalt față de limbi de nivel scăzut
Ce este Limbile la nivel înalt?
Trebuie să fii ceva Ce este limbajul la nivel înalt? dar spune-mi că sunt mai ușor de înțeles și sunt ușor de utilizat. Cu ajutorul acestor limbi se pot scrie aplicații care sunt portabile pe diverse platforme (cum ar fi Linux sau Windows) și sunt independente de orice arhitectură (cum ar fi ARM non-intel sau Intel infam). Exemplu de limbaj la nivel înalt, scrie un program în python care, în mod implicit, funcționează în orice sistem Linux, apoi compilează-l în orice exe folosind py2exe și apoi rulează-l pe Windows.
Exemple similare sunt Python, C, Fortran sau Pascal. Astfel de limbi sunt considerate limbaje la nivel înalt, deoarece sunt mai apropiate de limbile umane și mult mai departe de limbile de mașină. Când spun limbaj uman, nu vreau să spun ce vorbim în viața noastră de zi cu zi. Înseamnă că codul este ceva ce putem înțelege știind câteva elemente de bază în programare. Codul scris este aproape lizibil de către oameni, ceva ce poate fi citit și pronunțat.
Urmează câteva exemple de limbaj de mașină pentru a tipări un program simplu pe ecran în Fortran și C.
În Fortran:
program NewProgramF90
write(*, *) "This is a printed program"
end program NewProgramF90
Acum puteți compila folosind:
gfortran newprogram.f90 -o newprogram -f90-gcc
Și apoi pur și simplu executați-l.
Program similar în C:
#include
main()
(
printf("This is a printed program");
)
Pentru începătorii puri, acesta este cel mai ușor pe care îl poate obține.
Cu toate acestea, din moment ce vorbim despre computere, pentru un computer acest lucru este greu de înțeles. Deci, pentru a face acest lucru sensibil pentru calculatoare și pentru a rula un program creat cu un limbaj la nivel înalt, acesta trebuie să fie compilat în limbajul mașinii.
Sursa imaginii: github.com
Și aici intervine un limbaj de nivel scăzut. Spre deosebire de anterior, unde existau doar câteva limbi la nivel înalt, astăzi există un număr de limbi de nivel înalt, precum C, Cobol, FORTRAN, Pascal, Java, Perl, Python, PHP, Ruby, C ++, BASIC și Visual Basic .
Ce sunt limbile de nivel scăzut?
Limbi de nivel scăzut acele limbi extrem de apropiate de limbajul mașinii. Ele sunt cunoscute și sub denumirea de limbi de asamblare. Limbile cele mai apropiate după limbajul de asamblare la mașină sunt C și C ++. Unii oameni chiar numesc C și C ++ ca limbi de nivel scăzut. Codul mașinii este cunoscut ca nivel scăzut, deoarece spre deosebire de limbajele de programare la nivel înalt, nu are nevoie de altceva precum compilatoare sau ceva similar. Acesta rulează direct pe procesor și sunt extrem de specifice arhitecturii.
Limbile de nivel scăzut sunt mai potrivite pentru dezvoltarea de noi sisteme de operare sau pentru scrierea codurilor de firmware pentru micro-controlere. Ei pot face orice cu un pic de muncă grea (de fapt multă muncă grea pentru a fi specific), dar, evident, nu veți dori să scrieți o aplicație majoră în ea. Similar este și cazul C (numit de fapt Cee). C este de fapt un limbaj foarte vast pentru a începe. Vă permite să vă înregistrați direct și să oferiți acces instantaneu la diverse locații de memorie.
Dar, în același timp, are și o mulțime de construcții, care permit hardware-ului să încarce abstractizarea. Sincer vorbind, C și C ++ reprezintă în mod dual o varietate de limbi, deoarece majoritatea limbilor și-au luat bibliotecile de la ele. În practică, atât C cât și C ++ sunt la nivel scăzut așa cum v-am spus anterior, deoarece scrierea aplicațiilor la nivel de întreprindere este destul de dificilă. Dar, teoretic, ambele sunt de fapt limbi la nivel înalt.
Cursuri recomandate
- Curs profesional de securitate IT
- Pachetul de antrenament Ruby on Rails
- Curs CSS profesional
- Curs HTML5 și CSS3 online
Caracteristicile limbilor de nivel înalt și de nivel scăzut:
Acum, chestia este că, din când în când, am fost solicitat în diferite interviuri și în alte locuri care îmi plac cel mai bun program de nivel inferior sau înalt. Mi se pare că nu există nici cel mai bun lucru. Răspunsul este că amândoi au propria lor specialitate și nu poți înlocui una pentru cealaltă. Astfel, îmi plac de fapt ambii.
Programarea la nivel scăzut este o provocare și necesită o mulțime de experiență și cunoștințe. Caracteristicile limbajelor la nivel înalt sunt locurile în care au loc toate lucrurile creative, adică aplicațiile pe care oamenii le folosesc în viața de zi cu zi și care pot fi depanate într-o manieră mult mai ușoară decât la nivel scăzut. Și aici, puteți să lucrați cu tehnologii extrem de noi, deoarece multe dintre aceste limbi sunt modernizate continuu datorită sprijinului comunitar.
Dacă întrebați acest lucru pentru orice codificatori de limbaj la nivel înalt despre ceea ce le place, răspunsul pe care îl veți primi ar fi departe de ceea ce doriți. Nu vă vor spune care este mai bine.
Probabil vor spune că sunt mai pasionați de un limbaj specific la nivel înalt și nu de toți. Nu știu că se întâmplă asta. Cele mai cunoscute exemple sunt Python și Ruby, iar dacă le arătați câteva programe scrise în asamblare, atunci va merge probabil până la-la-vista.
Sursa imaginii: mathworks.com
Ceea ce este de fapt superb în multe limbi la nivel înalt este că se încadrează în categoria hibridă. De exemplu, python este extrem de orientat pe obiecte, dar, în același timp, acceptă și închideri și funcții de primă clasă. Deși nu este la fel de puternic ca Scala, dar are capacitatea de a reprezenta mai multe sau mai puțin lucruri ca cea a unui limbaj pur.
Limbile la nivel înalt sunt de obicei lente în comparație cu limbile de nivel scăzut. Acest lucru se datorează faptului că limbajele la nivel înalt au o mulțime de abstractizări și straturi de cod înainte de a ajunge la hardware-ul în sine, în timp ce codul mașinii este mai aproape, este de fapt rapid pentru a procesa și returna rezultatul. O piesă de cod în Python este probabil tradusă în mii de linii de cuvinte automate.
Desigur, limbile la nivel înalt sunt la fel în care performanțele brute nu sunt necesare, deoarece nu puteți dezvolta aplicații la fel de stabile și mari atât la nivel scăzut, cât și la nivel înalt. Acesta este un lucru demn de reținut.
Programare C - Confuzie la nivel scăzut / nivel înalt
Deși C are o mulțime de caracteristici similare cu cea a limbajului Pascal, uneori este încă considerat ca un limbaj de nivel scăzut, motiv pentru că suportă operații de biți, indicatoare și acces direct la memorie. C este de fapt un limbaj la nivel înalt, cu caracteristici incluzive ale nivelului scăzut. Acesta este principalul motiv pentru care programatorii depind de C peste orice pentru calitățile sale imbatabile.
Poate părea ciudat că C, deși tratat ca un limbaj de nivel scăzut, este extrem de portabil. Fanatic vorbind, C este de fapt extins pentru a utiliza hardware-ul la limitele sale extreme.
Limbajul de asamblare, pe de altă parte, este greu portabil. Deși, încercarea de a obține portabilitatea este o problemă mare în cazul nivelului scăzut, în special în cazul Java, care rulează pe un JVM, adică o mașină virtuală. C sau ansamblul care rulează într-o mașină virtuală nu va avea niciodată acces pur la hardware.
Pentru a fi mai precis, un limbaj devine un nivel scăzut dacă este structurat special pentru a rula direct pe hardware. Limbile de nivel scăzut au o sintaxă foarte mică, spre deosebire de limbile de nivel înalt care au o mulțime de coduri.
Limbile la nivel scăzut care permit accesul complet la hardware ar fi de fapt o alegere slabă pentru a scrie proiecte.
Când să folosiți un nivel scăzut?
Un cod de mașină arată așa ceva, care rulează extrem de rapid, deoarece este foarte aproape de hardware.
8B542408 83FA0077 06B80000 0000C383
FA027706 B8010000 00C353BB 01000000
B9010000 008D0419 83FA0376 078BD98B
C84AEBF1 5BC3
Mai sus, este o funcție scrisă pentru o arhitectură pe 32 de biți, adică un cod de mașină x86 pentru a calcula numărul Fibonacci.
Scrierea codului mașinii este incontestabil destul de iritantă, deoarece necesită verificarea codurilor numerice din când în când pentru orice alte instrucțiuni rulate. Cine naiba are timpul pentru asta? Acesta este motivul pentru care sa născut programarea la nivel scăzut.
Dar dacă întrebați programări la nivel scăzut programatorilor de nivel înalt, răspunsul pe care îl veți obține este acesta:
Sursa imaginii: pixabay.com
Concluzie
Limbile de nivel scăzut au un avantaj suplimentar de a da controlul procesului pierdut al procesorului, dar codurile lor sunt extrem de dificil de înțeles și depanat de colegii programatori. Orice altă familie de arhitectură are propriul set de limbaj de asamblare, ceea ce înseamnă că codul scris pentru unul este imposibil de rulat pe celălalt. Ceea ce, pe scurt, codul nu este portabil.
Avantajele limbajului la nivel înalt sunt că, pe de altă parte, limbajele la nivel înalt sunt extrem de portabile și sunt utilizate în mare parte pentru a scrie software care poate rula pe mai multe platforme și arhitecturi. Niciunul dintre ei nu se poate înlocui unul pe celălalt, deoarece acestea sunt două fețe ale aceleiași monede.
Articole recomandate
Iată câteva articole care vă vor ajuta să obțineți mai multe detalii despre limbile de nivel înalt și limbile de nivel scăzut, așa că treceți doar prin link.
- Cele mai importante sfaturi Limba de programare Haskell
- HTML5 și Flash - Găsește diferențele
- Exploatarea textului și prelucrarea limbajului natural - primele 5 comparații
- 12 cei mai buni pași pentru instalarea limbajului de programare R (ghid rapid)
- 8 Cel mai bun limbaj de programare pentru aplicații mobile pe care ar trebui să îl cunoști
- Lucruri importante de știut despre limbajul de programare Haskell