Lista programskih jezika. Programski jezici niskog i visokog nivoa. Pregled programskih jezika Šta je programski jezik

U zoru kompjuterske ere, mašinski kod je bio jedino sredstvo komunikacije između osobe i kompjutera. Veliko postignuće kreatora programskih jezika bilo je to što su uspjeli učiniti da sam kompjuter radi kao prevodilac sa ovih jezika na mašinski kod.

Postojeći programski jezici mogu se podijeliti u dvije grupe: proceduralne i neproceduralne (vidi sliku 4.1).

Proceduralni (ili algoritamski) programi su sistem instrukcija za rješavanje određenog problema. Uloga kompjutera se svodi na mehaničku implementaciju ovih uputstava.

Proceduralni jezici se dijele na jezike niskog i visokog nivoa.

Različiti tipovi procesora imaju različite skupove instrukcija. Ako je programski jezik fokusiran na određeni tip procesora i uzima u obzir njegove karakteristike, onda se zove programski jezik niskog nivoa.
To znači da su operatori jezika bliski mašinskom kodu i fokusirani su na specifične komande procesora.

Rice. 4.1. Opšta klasifikacija programskih jezika

Jezici niskog nivoa (mašinski orijentisani) omogućavaju vam da kreirate programe iz mašinskog koda, obično u heksadecimalnom obliku. S njima je teško raditi, ali programi koje uz njihovu pomoć kreira visoko kvalifikovan programer zauzimaju manje memorijskog prostora i rade brže. Koristeći ove jezike, pogodnije je razvijati sistemske programe, drajvere (programe za upravljanje računarskim uređajima) i neke druge vrste programa.

Jezik niskog nivoa (mašinski orijentisan) je Asembler, koji jednostavno predstavlja svaku instrukciju mašinskog koda, ne kao brojeve, već koristeći simbolične notacije tzv
mnemonika.

Jezici niskog nivoa kreiraju vrlo efikasne i kompaktne programe jer programer ima pristup svim mogućnostima procesora.

Programski jezici visokog nivoa mnogo bliže i razumljivije čoveku nego kompjuteru. U njima se ne uzimaju u obzir karakteristike specifičnih računarskih arhitektura, pa su kreirani programi na nivou izvornog teksta lako prenosivi na druge platforme za koje je kreiran prevodilac ovog jezika. Mnogo je lakše razvijati programe na jezicima visokog nivoa koristeći jasne i moćne komande, a mnogo je manje grešaka pri kreiranju programa.

Glavna prednost algoritamskih jezika visokog nivoa je sposobnost opisivanja programa za rješavanje problema u obliku koji je što je moguće pogodniji za ljudsku percepciju. Ali pošto svaka porodica računara ima svoj specifični interni (mašinski) jezik i može da izvršava samo one naredbe koje su napisane na ovom jeziku, za prevođenje izvornih programa u mašinski jezik koriste se posebni programi prevodioci.

Rad svih prevodilaca zasniva se na jednom od dva principa: interpretaciji ili kompilaciji.

Interpretacija podrazumijeva prevod izraza po naredbu i naknadno izvršenje prevedenog izraza izvornog programa. S tim u vezi, mogu se uočiti dva nedostatka metode interpretacije: prvo, program tumačenja mora biti u memoriji računara tokom čitavog procesa izvršavanja originalnog programa, odnosno zauzimati određenu količinu memorije; drugo, proces prevođenja istog operatora se ponavlja onoliko puta koliko se ova komanda mora izvršiti u programu, što naglo smanjuje performanse programa.

Uprkos ovim nedostacima, prevodioci-tumači postali su prilično rašireni jer su pogodni za razvoj i otklanjanje grešaka u izvornim programima.

At kompilacija Procesi prevođenja i izvršavanja su vremenski razdvojeni: prvo se izvorni program u potpunosti prevodi na mašinski jezik (nakon čega prisustvo prevodioca u RAM-u postaje nepotrebno), a zatim se prevedeni program može izvršiti više puta. Shodno tome, za isti program, prevođenje metodom kompilacije obezbeđuje veće performanse računarskog sistema uz smanjenje potrebne RAM memorije.

Velika složenost u razvoju kompajlera u poređenju sa interpretatorom iz istog jezika objašnjava se činjenicom da kompajliranje programa uključuje dve radnje: analizu, odnosno utvrđivanje ispravnosti izvornog programa u skladu sa pravilima za konstruisanje jezičkih konstrukcija ulaza. jezik, i sinteza - generisanje ekvivalentnih programa u mašinskim kodovima. Emitovanje metodom kompilacije zahteva ponovljeno „gledanje“ emitovanog programa, tj. prevodioci-prevodioci su višeprolazni: na prvom prolazu provjeravaju ispravnost sintakse jezičkih konstrukcija pojedinačnih operatora nezavisno jedan od drugog, na sljedećem prolazu, ispravnost sintaktičkih odnosa između operatora itd.

Poziva se program dobijen kao rezultat prevođenja metodom kompilacije objektni modul, koji je ekvivalentan program u mašinskom kodu, ali nije "vezan" za određene RAM adrese. Stoga, prije izvršenja, modul objekta mora biti obrađen posebnim programom operativnog sistema (Link editor) i konvertovan u modul za punjenje.

Zajedno sa prevodiocima-tumačima i prevodiocima-kompilatorima o kojima smo gore govorili, u praksi se koriste i prevodioci prevodioci-prevodioci, koji kombinuju prednosti oba principa prevođenja: u fazi razvoja i otklanjanja grešaka, prevodilac radi u režimu tumačenja, a nakon završetka procesa otklanjanja grešaka, izvorni program se ponovo prevodi u objektni modul (tj. korišćenjem metode kompilacije ). Ovo vam omogućava da značajno pojednostavite i ubrzate proces sastavljanja i otklanjanja grešaka u programima, a naknadnim dobijanjem objektnog modula obezbedite efikasnije izvršavanje programa.

Klasično proceduralno programiranje zahtijeva od programera da pruži detaljan opis načina rješavanja problema, odnosno formulaciju algoritma i njegovu posebnu notaciju. U ovom slučaju, očekivana svojstva rezultata obično nisu naznačena. Osnovni koncepti jezika ovih grupa su operator i podaci.
U proceduralnom pristupu, operatori se kombinuju u grupe – procedure. Strukturirano programiranje u cjelini ne ide dalje od ovog smjera; ono samo dodatno obuhvata neke korisne tehnike
tehnologije programiranja.

Fundamentalno drugačiji pravac u programiranju povezan je sa metodologijama (ponekad nazvanim “paradigme”) neproceduralnog programiranja. To uključuje objektno orijentirano i deklarativno programiranje. Objektno orijentisani jezik stvara okruženje u obliku mnogih nezavisnih objekata. Svaki objekat se ponaša kao zaseban računar, može se koristiti za rešavanje problema kao „crne kutije“ bez upuštanja u unutrašnje mehanizme njihovog funkcionisanja. Od objektnih programskih jezika popularnih među profesionalcima, prvo treba spomenuti C++; za širi spektar programera preferiraju se okruženja kao što su Delphi i Visual Basic.

Kada koristi deklarativni jezik, programer specificira početne informacijske strukture, odnose između njih i koja svojstva rezultat treba da ima. Istovremeno, programer ne gradi proceduru za njegovo dobijanje („algoritam“) (barem, idealno). Ovi jezici nemaju koncept "operatora" ("naredbe"). Deklarativni jezici mogu se podijeliti u dvije porodice - logičku (tipični predstavnik je Prolog) i funkcionalnu (Lisp).

Hajde da okarakterišemo najpoznatije programske jezike.

1.Fortran(Sistem za prevođenje FORmula – sistem za prevođenje formula); najstariji jezik koji se još uvijek aktivno koristi u rješavanju problema matematičke orijentacije. To je klasičan jezik za kompjutersko programiranje matematičkih i inženjerskih problema.

2.OSNOVNI(Beginner's All-purpose Symbolic Instruction Code - univerzalni simbolički instrukcijski kod za početnike); uprkos brojnim nedostacima i obilju loše kompatibilnih verzija, najpopularniji je po broju korisnika. Široko se koristi pri pisanju jednostavnih programa.

3.ALGOL(ALGOritamski jezik - algoritamski jezik); igrao je veliku ulogu u teoriji, ali se sada gotovo nikad ne koristi za praktično programiranje.

4.PL/1(PL/1 programski jezik - prvi programski jezik); višenamjenski jezik; sada skoro da se ne koristi.

5.Pascal(Pascal – nazvan po naučniku Blaiseu Pascalu); izuzetno popularan kako kod učenja programiranja tako i među profesionalcima. Stvorio ga je ranih 70-ih švicarski naučnik Niklaus Wirth. Pascal jezik je izvorno razvijen kao obrazovni jezik, a sada je jedan od glavnih jezika za podučavanje programiranja u školama i na univerzitetima. Međutim, njegove ukupne kvalitete su se pokazale toliko visokim da ga profesionalni programeri rado koriste. Ništa manje impresivan, uključujući i finansijski uspjeh, postigao je Philip Kahn, Francuz koji je razvio Turbo Pascal sistem. Suština njegove ideje bila je da kombinuje uzastopne faze programske obrade - kompilaciju, uređivanje linkova, otklanjanje grešaka i dijagnostiku grešaka - u jednom interfejsu. Verzije Turbo Pascala napunile su gotovo sve obrazovne institucije, programske centre i privatne kompanije. Nekoliko moćnijih jezika je kreirano na osnovu Pascal jezika (Modula, Ada, Delphi).

6.COBOL(COMmon Business Oriented Language - jezik orijentisan ka opštem poslovanju); je uveliko izašao iz upotrebe. Zamišljen je kao glavni jezik za masovnu obradu podataka u oblastima upravljanja
i biznis.

7.ADA;je pobjednički jezik (maj 1979.) na Pentagonovom univerzalnom jezičkom takmičenju od 1975. godine. Programeri su grupa naučnika koju vodi Jean Ikhbia. Pobjednički jezik nazvan je ADA, u čast Auguste Ada Lovelace. ADA jezik je direktan potomak jezika
Pascal. Ovaj jezik je namenjen kreiranju i dugoročnom (dugotrajnom) održavanju velikih softverskih sistema, omogućava paralelnu obradu, kontrolu procesa u realnom vremenu i još mnogo toga, što je teško ili nemoguće postići upotrebom jednostavnijih jezika.

8.Si(C – “si”); široko se koristi u kreiranju sistemskog softvera. Ostavio je veliki pečat u modernom programiranju (prva verzija je bila 1972. godine), a veoma je popularan među programerima softverskih sistema (uključujući i operativne sisteme). C kombinuje karakteristike jezika visokog nivoa i jezika orijentisanog na mašinu, omogućavajući programeru pristup svim resursima mašine, što jezici kao što su BASIC i Pascal ne pružaju.

9.C++(C++); objektno orijentisana ekstenzija C jezika koju je kreirao Bjarne Stroustrup 1980. Mnoge nove moćne karakteristike koje su dramatično povećale produktivnost programera su nametnute određenom prirodom niskog nivoa nasleđenom iz C jezika.

10.Delphi(Delphi); objektno orijentisani “vizuelni” programski jezik; izuzetno popularan u ovom trenutku. Kreiran na osnovu jezika Pascal od strane Borland stručnjaka, Delphi jezik, koji ima snagu i fleksibilnost jezika C i C++, nadmašuje ih u pogodnostima i jednostavnosti sučelja pri razvoju aplikacija koje pružaju interakciju sa bazama podataka i podršku za različite vrste poslova unutar korporativnih mreža i Interneta.

11.Java(Java); Platformski nezavisan objektno orijentisani programski jezik koji je izuzetno efikasan za kreiranje interaktivnih web stranica. Ovaj jezik je stvorio Sun ranih 90-ih na bazi SI++. Dizajniran je da pojednostavi razvoj aplikacija zasnovanih na C++ eliminišući sve funkcije niskog nivoa iz njega.

12.Lisp(Lisp) je funkcionalni programski jezik. Fokusira se na strukturu podataka u obliku liste i omogućava vam da organizujete efikasnu obradu velikih količina tekstualnih informacija.

13.Prolog(Programiranje u LOGIC-u - logičko programiranje). Osnovna svrha jezika je razvoj inteligentnih programa i sistema. Prolog je programski jezik kreiran specijalno za rad sa bazama znanja zasnovanim na činjenicama i pravilima (jedan od elemenata sistema veštačke inteligencije). Jezik implementira mehanizam vraćanja unazad za izvođenje lanca zaključivanja unatrag, u kojem se pretpostavlja da su određeni zaključci istiniti, a zatim se te pretpostavke provjeravaju u odnosu na bazu znanja koja sadrži činjenice i pravila zaključivanja.
Ako pretpostavka nije potvrđena, vrši se vraćanje i nova pretpostavka. Jezik je zasnovan na matematičkom modelu teorije predikatskog računa.

Programski jezici za internet:

1. HTML. Dobro poznati jezik za pripremu dokumenata. Vrlo je jednostavan i sadrži osnovne komande za formatiranje teksta, dodavanje slika, postavljanje fontova i boja, organiziranje veza i tabela.

2. PERL. Dizajniran je kao sredstvo za efikasnu obradu velikih tekstualnih datoteka, generiranje tekstualnih izvještaja i upravljanje zadacima.
Perl je znatno moćniji od jezika poput C. Uključuje mnoge često korištene funkcije za rad sa stringovima, nizovima, upravljanje procesorima i rad sa sistemskim informacijama.

3. Tcl/Tk. Ovaj jezik je fokusiran na automatizaciju rutinskih procesa i sastoji se od moćnih naredbi. Nezavisan je od sistema i još uvek vam omogućava da kreirate programe sa grafičkim interfejsom.

4. VRML. Stvoren za organiziranje virtualnih trodimenzionalnih sučelja na Internetu. Omogućava vam da opišete različite trodimenzionalne scene, osvjetljenje i sjene, te teksture u obliku teksta.

Izbor programskog jezika zavisi od mnogih faktora: svrhe, lakoće pisanja izvornih programa, efikasnosti rezultujućih objektnih programa, itd. Raznolikost problema koje rešava računar određuje raznolikost programskih jezika.

Kontrolna pitanja

1. Šta su programski sistemi i kojoj klasi programa pripadaju?

2. Šta je uključeno u sisteme programiranja?

3. Na kom su programskom jeziku nastali prvi programi?

4. Na koje se jezike dijele proceduralni jezici?

5. Opišite jezike niskog nivoa.

6. Koji jezik je jezik niskog nivoa?

7. Prednosti jezika niskog nivoa.

8. Opišite jezike visokog nivoa.

9. Prednosti jezika visokog nivoa.

10. Navedite primjere jezika visokog nivoa.

11. Za šta su prevodioci namijenjeni?

12. Kako se kompajler razlikuje od interpretatora?

13. Nedostaci tumačenja (kao vrste prevodioca).

14. Kakav je proces sastavljanja programa?

15. Koje se radnje izvode tokom kompilacije?

16. Kako se modul opterećenja razlikuje od modula objekta?

17. Kako se proceduralno programiranje razlikuje od neproceduralnog programiranja?

18. Koje vrste programiranja su neproceduralne?
programiranje?

19. Osobine deklarativnih jezika.

20. Ukratko opišite programske jezike: Fortran, BASIC, Pascal, Cobol.

21. Ukratko opišite programske jezike: Ada, C, C++, Delphi, Java.

22. Navedite primjere objektno orijentiranih jezika.

23. Kojoj klasi jezika pripada Lisp jezik?

24. Kojoj klasi jezika pripada Prolog?


Kada pokušavate da shvatite koji programski jezik da počnete da učite, verovatno ćete naići na termine "visoki nivo" i "niski nivo". Ljudi stalno govore o programskim jezicima visokog i niskog nivoa. Ali šta to tačno znači? A šta znači naučiti pisati kod? Počnimo s definicijama svakog od njih.


Programski jezici “visokog” i “niskog nivoa”.

U ovom članku ću govoriti o jezicima „visokog“ i „niskog nivoa“. Ali ne postoje posebni kriteriji za to. Samo imajte na umu da ovo u velikoj mjeri ovisi o vašoj perspektivi. Ako ste C programer, Java može izgledati prilično visokog nivoa. Ako ste navikli na Ruby, Java može izgledati kao jezik niskog nivoa.

Mašinski kod i jezici niskog nivoa

Bilo da se jezik smatra na visokom ili niskom nivou (ili negde između), radi se o apstrakciji. Mašinski kod nema apstrakciju – sadrži pojedinačne instrukcije koje se prenose na računar. A pošto se mašine bave samo brojevima, oni su predstavljeni binarno (iako su ponekad zapisani u decimalnom ili heksadecimalnom zapisu).

Evo primjera mašinskog koda:

U mašinskom kodu operacije moraju biti precizno specificirane. Na primjer, ako se dio informacije treba izvući iz memorije, mašinski kod će morati reći računaru gdje je u memoriji da ga pronađe.

Pisanje direktno u mašinski kod je moguće, ali vrlo teško.

Programski jezici niskog nivoa dodaju malo apstrakcije mašinskim kodovima. Ova apstrakcija skriva specifične instrukcije mašinskog koda iza deklaracija koje su ljudima čitljivije. Asemblerski jezici su jezici najnižeg nivoa pored mašinskog koda.

U mašinskom kodu možete napisati nešto poput "10110000 01100001", ali asemblerski jezik to može pojednostaviti kao "MOV AL, 61h". Još uvijek postoji skoro jedna na jedan korespondencija između onoga što je napisano u asemblerskom jeziku i instrukcija datih mašini.

Prelaskom na popularnije programske jezike, na kraju ćete dobiti nešto poput C. Iako ovaj jezik nije tako niskog nivoa kao asemblerski jezik, i dalje postoji jaka korespondencija između onoga što je napisano u C-u i mašinskog koda. Većina operacija napisanih u C-u može se ispuniti malim brojem instrukcija mašinskog koda.

Programski jezici visokog nivoa

Poput jezika nižeg nivoa, viši nivoi pokrivaju širok spektar apstrakcija. Neki jezici, kao što je Java (mnogi je smatraju srednjim programskim jezikom), i dalje vam daju veliku kontrolu nad načinom na koji računar upravlja memorijom i podacima.

Drugi, poput Rubyja i Pythona, vrlo su apstraktni. Oni vam daju manji pristup funkcijama nižeg nivoa, ali je sintaksa mnogo lakša za čitanje i pisanje. Možete grupirati stvari u klase koje nasljeđuju karakteristike, tako da ih trebate deklarirati samo jednom.

Varijable, objekti, potprogrami i petlje važni su dijelovi jezika visokog nivoa. Ovi i drugi koncepti će vam pomoći da mašini kažete mnogo stvari kratkim, konciznim izjavama.

Dok asemblerski jezik ima skoro ujednačeno mapiranje između svojih instrukcija i instrukcija mašinskog koda, jezik višeg nivoa može poslati desetine komandi sa jednom linijom koda.

Važno je napomenuti da "programski jezici visokog nivoa" mogu uključivati ​​sve što je apstraktnije od asemblerskog jezika.

Koji jezik učiti: niži ili viši?

Ovo je svakako uobičajeno pitanje među novim programerima. Koje je programske jezike bolje naučiti: na visokom ili niskom nivou? Kao i kod mnogih programskih pitanja, pitanje programskih jezika visokog i niskog nivoa nije tako jednostavno.

Obje vrste jezika imaju važne prednosti. Jezici niskog nivoa, pošto zahtevaju malo tumačenja od strane računara, obično su veoma brzi. I daju programerima veliku kontrolu nad skladištenjem podataka, memorijom i pronalaženjem podataka.

Međutim, jezici visokog nivoa su intuitivni i omogućavaju programerima da pišu kod mnogo efikasnije. Ovi jezici se također smatraju "sigurnijim" jer postoji više mjera zaštite koje sprječavaju kodera da izda loše napisane naredbe koje bi mogle uzrokovati štetu. Ali ne daju programerima istu kontrolu nad procesima niskog nivoa.

Imajući to na umu, evo liste popularnih jezika na skali od niskog do visokog:

  • JavaScript
  • Python

Naravno, ovo je dijelom subjektivno. I uključuje samo mali dio dostupnih jezika.

Ali ovo bi vam trebalo dati neku ideju o tome na kojem su nivou jezici koji vas zanimaju.

sta zelis da radis?

Kada odlučujete koji jezik ćete učiti, vaše prvo pitanje bi trebalo da bude: šta želite da programirate?

Ako želite da programirate operativne sisteme, kernele ili bilo šta što treba da radi maksimalnom brzinom, jezik nižeg nivoa može biti dobar izbor. Većina Windows, OS X i Linux napisana je na jezicima koji su izvedeni iz C i C, kao što su C++ i Objective-C.

Mnoge moderne aplikacije su napisane na jezicima višeg nivoa ili čak na jezicima specifičnim za domene. Python i Ruby su posebno popularni za web aplikacije, iako HTML5 postaje sve moćniji. Jezici kao što su Swift, C#, JavaScript i SQL imaju svoje prednosti i slabosti.

Nedavno sam čitao temu na forumu za programiranje i naišao na zanimljiv prijedlog: učite oba nivoa odjednom. Dobićete dublje razumevanje tipova apstrakcija koje jezik višeg nivoa čine efikasnijim.

Naravno, učenje dva jezika u isto vrijeme nije lako, pa biste mogli malo proširiti svoje učenje. A odabir dva jezika koja su najsličnija može biti od pomoći.

Opet ćemo se vratiti na ono što sam ranije rekao: izaberite jezik na osnovu onoga što želite da radite. Uradite neko istraživanje kako biste saznali koje jezike ljudi koriste u svom polju. Zatim koristite ove informacije da odaberete jezik visokog i niskog nivoa i počnite da ih učite.

Uskoro ćete vidjeti paralele i steći ćete mnogo dublje razumijevanje kako programiranje funkcionira.

Fokusirajte se na cilj, a ne na sredstva.

Postoji mnogo kriterijuma koje možete koristiti za odabir programskog jezika. Jedan od kriterijuma je visok i nizak nivo. Ali u skoro svakom slučaju, kriterijum koji treba da koristite je ono što želite da programirate.

Vaš projekat bi mogao imati koristi od jezika niskog nivoa. Ili može biti mnogo efikasnije na visokom nivou. Na vama je da odaberete pravi alat za posao. Usredsredite se na svoj cilj i svaki put izaberite pravi jezik.

Imate li iskustva sa jezicima visokog i niskog nivoa? Da li više volite jedno od drugog? Podijelite svoja razmišljanja u komentarima ispod!

Kompjuterski programi se često opisuju kao "skupovi instrukcija", a računalni jezici mnogi percipiraju samo kao vokabular i sintaktički način pružanja tih instrukcija.

Sa ove tačke gledišta, različiti programski jezici mogu imati različite gramatike ili različite vokabulare. Svaki jezik može različito tretirati tačke i zareze ili zahtijevati velika slova kada se pišu, iako su, uglavnom, svi jezici zasnovani na istom principu.

Ali stvarnost programiranja je mnogo složenija.

Programiranje danas

Čudno je, ali većina istinski "globalnih" ideja u kompjuterskom programiranju razvijena je još 1950-ih i 60-ih godina. Od tada se pojavilo mnogo novih jezika, ali nijedan od njih ne implementira istinski novi pristup logici i računanju.

Razvoj novih programskih jezika u proteklih nekoliko decenija zasniva se na iskustvu programera. To znači da postoji kod koji je lakši za pisanje (pokretačka snaga iza Rubyja) i lakši za čitanje (Python), a čini određene vrste logičkih struktura i tehnika rješavanja problema intuitivnijim.

Neki jezici su razvijeni za rješavanje specifičnih programskih problema (kao što su PHP i SASS), za upravljanje određenim tipovima sistema () ili za rad u određenom okruženju ili platformi (Java i JavaScript). Neki jezici su dizajnirani posebno da pomognu početnicima da nauče programirati (BASIC i Scratch su klasični primjeri).

Pošto su teorije i prakse u vezi sa jezičkim dizajnom sazrele u (uglavnom) široko prihvaćenu ortodoksiju, veliki deo novog i zanimljivog rada u razvoju prakse programiranja sada se koncentriše na arhitekturu sistema.

Relativno skorašnji razvoj uključuje koncept SOA (Service Oriented Architecture). servisno orijentisana arhitektura) i MVC (Model-View-Controller), kao i okviri kao što je , koji omogućavaju programerima da lako rade unutar ovih paradigmi.

Lista programskih jezika

Sve veća lista popularnih programskih jezika, oznaka i protokola. Linkovi na opise svakog od njih:

ASCII kodiranje

  • Kodiranje znakova je jedan od osnovnih aspekata računara i Interneta. ASCII je prvi sistem za kodiranje znakova koji se široko koristi. Zamijenjen je UTF-8, ali ASCII je i danas osnova za veliku većinu znakova na Internetu. Razumevanje ovoga je veoma važno za programere. Pročitajte više ovdje (engleski):

ASP/ASP.NET

  • ASP je akronim za Active Server Pages. To je prvi skriptni jezik na strani servera za Microsoft IIS web server. ASP je zamijenjen okvirom otvorenog koda na strani servera ASP.NET. Više detalja (engleski):

AutoLISP

  • AutoLISP je jednostavan, lagan, interpretiran programski jezik dizajniran posebno za kompjuterski softverski dizajn. Pročitajte o tome (engleski):

Awk

  • Awk je izuzetno moćan programski jezik za obradu teksta koji vam omogućava da izvučete podatke iz datoteke ili drugog izvora i pošaljete ih u bilo kojem formatu koji vam je potreban. To je stariji alat, ali je i dalje koristan kao i uvijek. Saznajte više (engleski): .

BASH

  • Bash je najčešće korišćeni interfejs komandne linije u Unix svetu. Ovo je podrazumevani tekstualni interfejs za Linux i Mac OS X. Pročitajte više:

Common Lisp

  • Lisp je prilično jedinstven programski jezik, možda najstariji jezik i još uvijek u upotrebi. Ovo je posebno važno u oblasti veštačke inteligencije. Više detalja (engleski):

C

  • Ako ovde uključimo dva derivata ovog jezika, onda možemo sa sigurnošću reći da nijedan jezik nije bio korisniji i uticajniji od C. Ovo je posebno važno za razvoj operativnih sistema i drugog softvera. Mnogi prevodioci i prevodioci za druge jezike napisani su u C. Pročitajte više:

C++

  • Prvobitno nazvan "C sa klasama", C++ je na mnogo načina samo napredniji nasljednik C-a (iako je cjelokupna situacija složenija). C++ je dizajniran da doda visok nivo paradigmi C programiranja uz zadržavanje mogućnosti hardverske manipulacije niskog nivoa. Mnogi od ovih dodataka su dodani u C tokom godina, a jezici su više kao dva dijalekta istog jezika. Više detalja (engleski):

C#

  • Koristi se kao primarni jezik za .NET programiranje, slično C++, proširenje je programskog jezika C, ali sa važnim dodatkom objektno orijentisanih mogućnosti. Više detalja (engleski):

CSS/CSS3

  • CSS, ili Cascading Style Sheets, takođe nije programski jezik, ali jezik stila stranice je jezik koji obezbeđuje stil i pravila izgleda dokumentima i aplikacijama. To je glavni jezik stila koji se koristi na Internetu. Više detalja:

Emacs Lisp

  • Emacs je dugo bio poznat kao popularan i moćan uređivač teksta. Ali dodavanje Emacs Lisp u njega pretvara ga u integrirano razvojno okruženje za gotovo svaki programski jezik. Više detalja (engleski): .

F#

  • F# je programski jezik opšte namene. Dizajniran da bude izuzetno efikasan. Prvobitno samo Microsoftov jezik, sada je jezik otvorenog koda i koristi se na svim platformama. Više detalja (engleski): .

FORTAN

  • Fortran se prvi put pojavio 1957. godine i još uvijek se koristi za rješavanje nekih od najsloženijih problema moderne nauke i tehnologije. Više detalja (engleski):

FORTH

  • Rad na Forthu počeo je 1968. godine, a jezik se obično koristi na hardveru koji nema tradicionalni operativni sistem. Takođe se široko koristi za kontrolu alatnih mašina. Više detalja (engleski):

Haskell

  • Haskell je jedan od najpopularnijih funkcionalnih programskih jezika, pored toga što je prototip za desetak drugih jezika. Široko se koristi u poslovnim i akademskim krugovima i odličan je jezik za početak prilikom učenja o funkcionalnom programiranju. Više detalja (engleski):

HTML

  • HTML nije programski jezik. To je jezik za označavanje—jezik za dodavanje semantičkih i stilskih napomena sadržaju. To je primarni jezik za web sadržaj. Poznavanje istog je neophodno i obavezno za sve web dizajnere i web programere, kao i sve (pisce, urednike) koji proizvode internet sadržaj. Više detalja (engleski): i

IDL

  • IDL, ili Interaktivni jezik podataka, je programski jezik koji se prvenstveno koristi za analizu i vizualizaciju podataka. Još uvijek se široko koristi u svemiru i astronomiji. Više detalja (engleski):

INTERCAL

  • INTERCAL je parodijski kompjuterski jezik razvijen ranih 1970-ih. Nastao je kao šala da pokaže kako su jezici tehnički složeni i teški za čitanje. Ovo je pravi jezik koji možete preuzeti i sa kojim čak možete nešto učiniti. Pretpostavlja se da morate biti dobro upoznati sa tim da biste to uradili - ali, opet, ne previše dobro, jer se to neće dopasti ni samom INTERCAL-u. Više detalja (engleski):

Java

  • Java je jezik visokog nivoa dizajniran za upotrebu na Java virtuelnoj mašini. Ima vrlo malo vanjskih ovisnosti i dizajniran je da radi na bilo kojoj fizičkoj mašini. Široko se koristi u mrežnoj arhitekturi, kao iu ugrađenim uređajima i drugim računarskim aplikacijama. Više detalja (engleski): .

Javascript

  • JavaScript (koji zapravo nije povezan sa Javom) je skriptni jezik prvobitno dizajniran za upotrebu u web pretraživačima. Stoga ima ugrađenu mogućnost rada sa modelom objekta dokumenta (DOM), predstavljanjem sadržaja web stranice u memoriji. To je glavni programski jezik za front-end web razvoj. On je prvenstveno vođen događajima i, zahvaljujući Node.JS, nedavno je stekao priznanje kao jezik na strani servera. Više detalja (engleski): i. i ovdje:

Ksh

  • Korn Shell (ksh) je interfejs komandne linije koji se koristi na Unixu. Bila je to rana ljuska, kompatibilna sa standardnom Bourne školjkom, ali sa svim cool interaktivnim karakteristikama C ljuske. Više detalja:

Linux programiranje

  • Linux programiranje uključuje sve od shell skriptovanja do razvoja aplikacija do razvoja kernela. Više detalja (engleski):

Logo

  • Logo je jedan od najranijih jezika za podučavanje programiranja, i još uvijek je vjerovatno najpoznatiji. Poznat je po svojoj kornjači koju djeca pokreću kompjuterskim komandama. Zabavan način za podučavanje programiranja. Više detalja (engleski):

M.L.

  • ML je prvobitno dizajniran kao metaprogramski jezik: jezik za kreiranje drugih jezika. Ali vremenom je postao jezik opšte namene, široko korišćen u obrazovanju, matematici, nauci, pa čak i finansijama. Više detalja (engleski): .

MPI

  • Message Passing Interface je standardni protokol za slanje poruka između procesa ili programa. Implementiran je u brojnim programskim jezicima, uključujući C, C++, Javu i Python. Zahvaljujući MPI, paralelno računanje je postalo moguće. Više detalja (engleski):

Mrežno programiranje sa internet utičnicama

Objective-C

  • Još jedna verzija C-a, kreirana 1980-ih da bi pružila potpuno objektno orijentisanu implementaciju C-a. Danas se ovaj jezik uglavnom koristi na Mac OSX i iOS operativnim sistemima. Do nedavno su iOS aplikacije morale biti napisane u Objective-C, ali sada možete pisati i u Swiftu. Više detalja (engleski):

OCaml

  • OCaml je objektno orijentisani funkcionalni kompjuterski jezik. U tradiciji ML-a, mnogo se koristi za pisanje drugih programskih jezika i okvira. Više detalja (engleski): .

Razvoj operativnog sistema

  • Everest programskih poslova smatra se razvojem operativnog sistema. Ako želite da sebi dokažete da možete pisati bilo šta, onda nema ništa bolje od pisanja sopstvenog kernela operativnog sistema i povezanih alata, ali budite oprezni: ovo je putovanje samo za hrabre i prave programere! Više detalja (engleski): .

Perl

  • Veoma koristan alat za skoro svakog programera. Kao interpretirani jezik, ne treba ga kompajlirati, koji se ponekad naziva i "švajcarskim nožem" skriptnih jezika. Više detalja (engleski):

PROLOG

  • Prolog je logički programski jezik dizajniran za obradu prirodnog jezika. Više detalja (engleski):

Pure Data

  • Pure Data je jedinstveni vizuelni programski jezik. Napravljen je posebno da omogući korisnicima da kreiraju video, audio i grafičke radove. Više detalja (engleski): .

Python

  • Python je programski jezik visokog nivoa. Interpretirani (nekompilirani) jezik, također poznat kao "skriptni jezik". Prvenstveno se koristi kao alat za obavljanje specijaliziranih zadataka programiranja kao što su zadaci automatizacije i analize podataka. Ima snažan skup alata za matematičke i naučne proračune i često ga koriste istraživači. Više detalja (engleski):

Ruby on Rails

  • Ruby on Rails je okvir za web razvoj za programski jezik Ruby. Pruža MVC (Model View Controller) arhitekturu, sloj apstrakcije baze podataka i mnoge alate za ubrzavanje procesa programiranja web aplikacija. Vrlo popularan za brzi razvoj web aplikacija. Više detalja (engleski):

SAS

  • SAS je specijalizovani jezik dizajniran za analizu statističkih podataka. Široko se koristi u vladi, akademiji i biznisu. Za ljude sa puno podataka, SAS je očigledan izbor. Više detalja (engleski): .

Scala

  • Scala je relativno nov jezik - manje-više novija i bolja Java. To je odličan jezik za Java programere koji žele da budu efikasniji, ili za ljude koji tek počinju da uče programiranje i žele da nauče moćan jezik koji ih neće ograničavati u budućnosti. Više detalja (engleski): .

Šema

  • Scheme je stari jezik, ali se još uvijek koristi za podučavanje programiranja i naprednijih predmeta informatike. Zasnovan uglavnom na Lisp-u, a dijelom na ALGOL-u. Više detalja (engleski): .

Scratch

  • Programski jezik Scratch kreiran je posebno za podučavanje programiranja djece uzrasta od 8 do 16 godina. Scratch je jednostavan i omogućava djeci da na zabavan način nauče osnove logike programiranja. Više detalja (engleski):

Simula

  • Simula je istorijski važan jezik jer je to bio prvi jezik koji je uveo koncepte koji su postali osnova za objektno orijentisano programiranje. Više detalja (engleski): .

SMIL

  • SMIL (Synchronized Multimedia Integration Language) je alat za one ljude koji žele kreirati i distribuirati prezentacije. Posebno korisno ako želite kreirati prezentacije koje je potrebno ažurirati s vremena na vrijeme. Više detalja (engleski):

SQL

  • SQL (Structured Query Language) je jezik koji se koristi za komunikaciju sa sistemima upravljanja relacionim bazama podataka (RDBMS). SQL omogućava programeru da kreira strukture podataka, umeće i uređuje podatke i postavlja upite za njih. Više detalja (engleski):

Stata

  • Stata je razvojno okruženje i programski jezik za rješavanje ozbiljnih statističkih problema. I iako je stvoren dosta davno, još uvijek se široko koristi. Ako se bavite statističkim radom, Stata je odličan alat. Više detalja (engleski):

Swift

  • Swift je novi programski jezik koji je razvio Apple za iOS, OS X, watchOS, tvOS i Linux. Ovo je jezik budućnosti za programere programa i aplikacija za Apple uređaje. Više detalja (engleski):

S-PLUS

  • S-PLUS je komercijalna verzija moćnog S programskog jezika dizajnirana za izvođenje statističkih analiza. GNU projekat ima svoju verziju S, nazvanu R. Svi potrebni resursi o S s naglaskom na S-PLUS:

UNIX programiranje

  • Širina programiranja na Unixu je velika. Pokriva raspon od administrativnih skripti preko tekstualnog koda do razvoja X Window-a. Više detalja (engleski):

XML

  • XML je dobro strukturiran jezik za označavanje dizajniran da bude čitljiv i ljudima i mašinama. Više detalja (engleski):

Lekciju pripremio: Akulov Ivan

Ako pronađete grešku u kucanju, označite je i pritisnite Ctrl + Enter! Da biste nas kontaktirali možete koristiti .

Postoji mnogo načina da se izmeri popularnost određenog programskog jezika. Ali vjerujemo da je analiza potražnje za specijalistima najtačnija. Programerima jasno pokazuje vještine potrebne da poboljšaju izglede za karijeru.

Analizirali smo poslove objavljene na Indeed.com kako bismo identificirali sedam najtraženijih programskih jezika u 2018. Neki jezici, kao što su Swift i Ruby, nisu ušli u prvih sedam jer su manje traženi među poslodavcima.

1. Java

Potražnja za Javom u 2018. smanjena je za oko 6.000 slobodnih radnih mjesta u odnosu na 2017. Ali ovaj programski jezik je i dalje popularan. Javu koriste milioni programera i milijarde uređaja širom svijeta više od 20 godina. Može da radi na bilo kom hardveru i operativnom sistemu preko Java virtuelne mašine.

Sve Android aplikacije su bazirane na Javi. 90% kompanija sa liste Fortune 500 koristi Javu kao svoj programski jezik na strani servera.

2.Python

Python-ova popularnost se povećala za otprilike 5.000 radnih mjesta. To je programski jezik opće namjene koji se koristi za web razvoj. Takođe se široko koristi u naučnom računarstvu i rudarenju podataka. Konstantna potražnja za programerima mašinskog učenja pokreće potražnju za Pythonom.

3. JavaScript

JavaScript je danas popularan kao i 2017. Ovaj programski jezik koristi više od 80% programera i 95% svih sajtova za izgradnju dinamičkih elemenata na web stranicama. Brojni front-end JavaScript okviri, kao što su React i AngularJS, imaju ogroman potencijal. IoT i mobilni uređaji postaju sve popularniji, pa sumnjamo da ćemo uskoro vidjeti pad potražnje za JavaScript programerima.

4. C++

Potražnja za C++ se malo promijenila u odnosu na 2017. Ovaj programski jezik se koristi za kreiranje sistemskog/aplikacijskog softvera, razvoj igara, drajvera, klijent-server aplikacija. Mnogi programeri smatraju da je C++ složeniji od programskih jezika kao što su Python ili JavaScript. Ali još uvijek se koristi u mnogim naslijeđenim sistemima u velikim preduzećima.

5. C#

Popularnost C# (izgovara se "C oštro") ove godine je neznatno opala. C# je objektno orijentisani programski jezik dizajniran za razvoj na Microsoft.NET platformi.

C# se, kao i C++, koristi u razvoju video igara, tako da bi programeri početnici trebali savladati oba jezika odjednom.

6.PHP

Ovaj programski jezik na strani servera popeo se na šesto mjesto na našoj rang listi (u odnosu na prošlu godinu). Većina programera koristi PHP za implementaciju funkcija koje HTML ne podržava. Takođe za interakciju sa MySQL bazama podataka.

7. Perl

Potražnja za Perlom pala je za oko 3.000 slobodnih radnih mjesta, a on je ostao na sedmom mjestu na našoj ljestvici. Perl je i dalje popularan među sistemskim i mrežnim administratorima.

Pogled u budućnost

Ovo su programski jezici koji još nisu ušli u naš rejting. Ali 2018. postali su popularniji. Pazite na njih u budućnosti!

  • Swift: programski jezik za iOS i macOS koji je Apple objavio 2014. godine, broj 14 u našoj rang listi. To je zbog činjenice da mnogi poslovi programera navode zahtjeve kao „iOS“, bez navođenja određenog jezika. Swift stalno dobija na popularnosti.
  • R: zauzeo je 11. mjesto na našoj rang listi. Ali očekujemo da će se ovaj programski jezik razviti za nekoliko godina. Stječe popularnost kako na međunarodnom planu tako i u Sjedinjenim Državama. Rastuća potražnja za R programerima je posljedica sve aktivnije upotrebe jezika u analizi podataka.
  • Rust: Iako je Rust nisko rangiran na našoj ljestvici, on stalno raste prema Google Trends.

Ostale tehnologije koje trebate znati

Dolje navedene tehnologije nisu formalno programski jezici. Ali oni su uključeni u listu zahtjeva koje poslodavci postavljaju programerima.

  • SQL: Standardni jezik upita dizajniran za pohranjivanje i obradu informacija u bazama podataka. SQL znanje je veoma traženo među poslodavcima. Pominje se u više od 30 hiljada slobodnih radnih mjesta.
  • .NET: Microsoftova platforma za razvoj programa za desktop računare, mobilne uređaje i web aplikacije. Koriste ga programski jezici kao što su C#, Visual Basic i F#. A implementacija tehnologije na više platformi proširuje .NET za iOS, Linux i Android.
  • Čvor: okvir otvorenog koda koji vam omogućava da pokrenete JavaScript kod na strani servera. Ovo pruža mogućnost korištenja jednog programskog jezika za cijelu web aplikaciju. Preporučujemo da provedete neko vrijeme učeći Node.js.
  • MEAN: MEAN stek (MongoDB, ExpressJS, AngularJS i Node.js) zauzima 18. mjesto na našoj rang listi. Korištenje steka vam omogućava da kreirate punopravne aplikacije u JavaScript-u. Učenje MEAN-a će pružiti osnovu za razvoj na jednom od najpopularnijih programskih jezika na svijetu.

Ova publikacija je prijevod članka “ 7 najtraženijih programskih jezika u 2018“, koju je pripremio ljubazni projektni tim

Instrukcije

Za pisanje teksta bilo kojeg kompjuterskog programa koristi se jedan od mnogih programskih jezika. Sve su to skupovi specifičnih naredbi - operatora, kao i opisi. Po pravilu, osnova ovih komandi su, dakle, ako znate engleski, čitanjem teksta programa možete čak i shvatiti šta će računar uraditi na ovu ili onu komandu. Međutim, kompjuter, za razliku od vas, ne zna engleski - da bi ih razumio, kompajler "prevodi" ove komande na mašinski jezik. Svaki programski jezik ima svoj kompajler.

Prvi, uključujući: ADA, Basic, Algol, Fortran i druge, koji su bili popularni 60-70-ih, nisu se dugo koristili, ali C++, na primjer, kreiran 1983., i danas ostaje tražen, mnogi u njemu su napisani posebni softverski proizvodi. Basic, koji se pojavio 1991. godine, i dalje je tražen; kao i Pascal (Delphi razvojno okruženje), Java, JavaScript i Ruby, kreiran 1995. godine. Novi su ActionScript i Nemerle, koji su se pojavili 1998. odnosno 2006. godine.

Navedeni programski jezici su i dalje aktuelni, jer se stalno modificiraju, a njihove nove verzije prilagođavaju potrebama koje danas postoje. Ovo se prvenstveno odnosi na jezik C++. Unatoč činjenici da je u nekim slučajevima programski kod sastavljen na ovom jeziku prilično glomazan, korištenje gotovih predložaka pomaže u rješavanju ovog problema, značajno poboljšavajući performanse softverskih proizvoda.

Visual Basic razvojno okruženje, koje je razvio poznati Microsoft, takođe koristi većina programera, omogućavajući ne samo kreiranje kompaktnog programskog koda na jeziku Basic, već i korišćenje praktičnog ugrađenog dizajnera za korisničko sučelje. Ali za kreiranje web stranica, programeri koriste PHP jezik, koji se smatra univerzalnim i radi sa bilo kojim operativnim sistemom. Takođe se koristi kao dizajner korisničkog interfejsa. Međutim, značajni nedostaci ovog jezika uključuju činjenicu da kod napisan u ranijim verzijama neće biti podržan novim.

Java također može raditi na bilo kojoj platformi, ali za pisanje programa na ovom jeziku morate koristiti dijalekt koji je namijenjen za ovu vrstu softverskog proizvoda. Programski jezici Pascal i JavaScript razlikuju se po svojoj svestranosti, svestranosti i jednostavnosti. Prvi se češće koristi za kreiranje softverskih proizvoda za OS, na primjer Total Commander i QIP, a drugi se koristi u većini modernih pretraživača.