Razvrstavanje programskih jezika prema razinama

Programski jezici su sustavi simbola i pravila njihove kombinacije, namijenjeni interakciji osobe s kompleksnim strojevima. Postoje stotine takvih organiziranih sustava koji obavljaju različite funkcije. Za navigaciju u ovoj raznolikosti, stručnjaci stvaraju opće klasifikacije programskih jezika na temelju jedne ili druge karakteristične značajke.

Interakcija čovjeka i stroja

Važno je razumjeti kako ljudi komuniciraju s inteligentnim mehanizmima prije nego što se približi klasifikaciji programskih jezika.

Jednog dana čovjek je mislio da stroj može napraviti fizički rad za njega. Zato se pojavio parni motor. Zatim je poduzetna osoba odlučila pomaknuti se na automobil i mentalni rad. Tako je postojalo i računalo.

Da biste postigli neki rezultat, trebate razumjeti kako to učiniti. U programiranju možete razlikovati nekoliko faza rješavanja bilo kojeg problema:

  1. Formalizirani logički opis samog zadatka.
  2. Izrada algoritma koji opisuje sve korake kako bi se postigao cilj, počevši od obrade ulaznih podataka i završavanjem dobivanjem rezultata.
  3. Kodiranje - sastavljanje programa na bilo kojem od programskih jezika, koji se zatim može prevesti na računalno prihvatljiv jezik.
  4. Prijevod je izravan prijevod.
  5. Skupljanje pokrenutog programa (izvršni modul) sa svih komponenti.

To je hijerarhijska struktura u kojoj se više razine temelje na nižim. Bez jasnog zadatka i kompetentnog algoritma, nemoguće je stvoriti kvalitetan program.

Raznolikost programskih jezika

Struktura programskih jezika

Raspored svih sustava interakcije je sličan i u mnogočemu određuje klasifikaciju programskih jezika.

Glavni predmeti programskog jezika su konstantni i podsjećaju na sastavnice sustava ljudskog jezika:

  • Sintaksa koja definira formalna pravila za pisanje programa, važeće vrste i slučaj likova;
  • leksikon, koji uključuje cjelokupan rječnik jezika: nazivi varijabli i funkcija, konstanti, nizovi, operatori;
  • gramatika, što ukazuje na to kako pravilno kombinirati jedinice jezika za formiranje kombinacija riječi i rečenica.

Vokabular i gramatika zajedno definiraju semantiku jezika. Na ovoj razini, specifične sekvence znakova stječu posebno značenje, razumljivo čovjeku i računalu. Na primjer, riječ se u mnogim programskim sustavima tretira kao početak cikličke operacije.

Naravno, računala ne razumiju obične riječi, sama kombinacija latinskih pisama ne znači ništa za njih. Strojevi se bave kôd stroja - nula i one koji opisuju primitivna stanja prisutnosti ili odsutnosti signala. Stoga, programski jezici uspostavljaju jasne korespondencije određenih riječi i slijedova nativnih uputa stroja.

Prvi primitivni sustavi kontrole strojeva - probijene kartice - koristili su se za Jacquardove tkalačke stanice, koje su prenesene na svilu uzorak bilo koje složenosti. Sam glasovir je programiran na isti način.

Postoje stotine programskih sustava, a svake godine postoje i novi. Neki od njih su u osnovi različiti od drugih, drugi su vrlo slični i imaju samo male značajke. Svaki je dizajniran da riješi svoj zadatak, širok ili visoko specijaliziran.

Pregled klasifikacija

Programski jezici mogu se grupirati s desecima različitih znakova. Oni su u osnovi važni ili praktično važni.

Postoji snažna ovisnost o klasifikaciji programskih jezika na povijest razvoja. Tijekom godina, tehnologija je postala sofisticiranija i radikalno promijenila, do izražaja je praktičnost programera, pojavio učinkovitih algoritama, složene naredbe i nove razine apstrakcije.

Programski jezici

Glavne klasifikacije programskih jezika po vrstama i mehanizmu rada temelje se na sljedećim parametrima:

  • Značajke vokabulara i gramatike u vezi sa stupnjem apstrakcije i stupnjem pogodnosti za ljude.
  • Osnovni koncept i metodologija sastavljanja algoritama.
  • Način prikazivanja podataka.
  • Organizacija procesa interakcije s strojem, mehanizam izvođenja programa.
  • Područje života u kojem se jezik primjenjuje.
  • Povijesna epoha u kojoj je nastao jezični sustav.

Nemoguće je napraviti jasnu klasifikaciju jezika i programskih sustava, ali je moguće podijeliti i sistematizirati ih prema temeljno važnim obilježjima.

Praktičnost za čovjeka

Upute napisane na strojnom jeziku razumljive su računalu, ali vrlo su nezgodne za osobu. Teško ih je razumjeti, gotovo je nemoguće brzo mijenjati ili s njima sastaviti složeni algoritam. Kako bi povećali učinkovitost, programeri su se povećali na novu razinu apstrakcije i učili su da stroj prihvaća više ljudski razumljive upute i samostalno prevodi ih u strojni kod. Razmotrite klasifikaciju i značajke programskih jezika različitih razina:

  • Šifra stroja. Ovo je također programski jezik, na kojem, uz pravilnu pripremu, možete napisati instrukciju.
  • Niska razina. Stvarno niske razine su assembler jezici, koji koriste nativne upute stroja kodirane pomoću mnemoničkih kodova.
  • Srednja razina. Sustav programiranje ove skupine može se smatrati visokoj razini i niska i, ovisno o specifičnim ideje o stupnju apstrakcije. To uključuje C i C + +.
  • Visoka razina. Ti jezici omogućuju vam stvaranje složenih algoritama, no prije izvođenja zahtijevaju dodatnu obradu, tako da je generirani kod manje učinkovit i sporije.
  • Vrlo visoka razina. Ova mala skupina karakterizira pojava super-moćnih timova i operatera. Ovdje je moguće nositi Algol-68.

Značajka jezika niske razine je njihova ovisnost o računalu. Usko su vezani za specifičnosti organizacije određene vrste računala, ali u cjelini su međusobno slični. Oni pružaju:

  • velika brzina izvršenja i maksimalna kompaktnost stvorenih programa;
  • izravna interakcija s hardverskim resursima;
  • puna kontrola nad memorijom.

Glavni nedostaci jezika niske razine:

  • za svaku vrstu računala potrebno je koristiti određeni komandni sustav, ovisno o značajkama stroja;
  • složenosti i niske brzine procesa programiranja;
  • velika vjerojatnost pogrešaka koje je teško pratiti;
  • nedostatak mobilnosti programa, nemogućnost njihova pokretanja na drugom računalu.

Programski sustavi na visokoj razini nisu vezani za određeni komandni sustav stroja i mogu se izvršiti na bilo kojem računalu. Zbog visoke razine apstrakcije, mogu priuštiti korištenje različitih koncepata i metodologija u izradi uputa. Stoga je klasifikacija programskih jezika na visokoj razini vrlo opsežna i složena.

Obrada programa strojno

Da bi izvršio složenu instrukciju, računalo prvenstveno mora smanjiti njezinu apstraktnost i prevesti ga u jezik koji je razumljiv za sebe. Način na koji se to radi naziva se modelom izvedbe. Postoje dva glavna modela i jedan hibrid:

  • Kompilacija - jednokratni prijevod cijelog programa u strojni kod.
  • Tumačenje - uzastopno izvršavanje svakog izraza.
  • Transkopacija - prevođenje na jezik nižeg nivoa, na primjer C ili assembler, i njegovu naknadnu kompilaciju.

Da biste prevodili, potreban vam je poseban program prevoditelja ili tumača, bez kojeg ne možete raditi s jezikom.

Skupljanje i tumačenje

Tumač zasebno radi sa svakom retkom programa, analizira ga i odmah izvršava. Njegova prisutnost je potrebna od početka do samog kraja programa.

Glavni nedostaci modela interpretacije su:

  • stalno pronalaženje prevoditelja u memoriji računala;
  • ponovljena obrada ponavljajućih naredbi.

Unatoč tome, tumačiti jezici su vrlo pogodan za ciklički razvoj i ispravljanje pogrešaka, jer oni omogućuju vam da brzo napraviti promjene u programu.



Kompilator radi samo jednom, odmah pretvarajući sve upute u računalno prihvatljiv oblik - kôd stroja ili neki kôd bajtova bajtova, a zatim ostavlja memoriju računala. Ovdje se izvršenje odvaja od procesa prevođenja, što je učinkovitiji model.

Glavni nedostaci modela kompilacije su:

  • velika poteškoća.

Prije prevođenja programa u strojno razumljiv jezik, prevoditelj više puta prolazi kroz početnu nastavu, analizira ga i ispituje.

Oblikovanje programa

Nema jasnog razgraničenja sustava, budući da se tradicionalno interpretirani jezici mogu sastaviti i obrnuto.

Razvrstavanje programskih jezika na visokoj razini prema modelu izvedbe:

  • Interpretirano - Python, Haskell, PHP, jаvascript.
  • Sastavljeno izravno u strojni kod: C, C ++, Fortran, ASM.
  • Sastavljeno u bytecode: Python, Java.
  • Transkompiled: Haskell, Fortran, C, C ++.

Obrada podataka

Svaki programski jezik funkcionira s informacijama koje treba manipulirati na neki način, provjeriti ispravnost i mijenjati. Podaci mogu biti vrlo različiti - brojevi, linije ili složene strukture. Naravno, svaka vrsta mora raditi drugačije, ali kako bi točno odredila kako, prvo je potrebno razumjeti kakve podatke rade računalo.

Na temelju metode za određivanje raznolikosti podataka, konstruirana je klasifikacija programskih jezika prema tipskom sustavu.

  • Nepotpisani jezici.
  • Uvezeni jezici različitog stupnja težine.

Nepotvrđeni su assembler jezici, koji mogu obraditi izravno binarne podatke. Vrsta podataka uopće nije važna.

Za upisane jezike važno je za koje podatke rade. Neke operacije su definirane samo za brojeve, npr. Podjela, ostale su samo za žice. Međutim, neki sustavi omogućuju programeru određene slobode. Na primjer, oni mogu samostalno definirati i "implicitno" pretvoriti jednu vrstu podataka u drugu, na temelju semantike naredbe. To je vrlo povoljno, ali komplicira debugging, jer može dovesti do neprimjetne pogreške. Živahni primjer neupadljivog upisivanja je jаvascript.

Jako upisali jezika, kao što su Java, kao sloboda ne dopušta, i zahtijevaju određivanje vrste i njihove prividne pretvorbe, ako je potrebno.

Postoji i klasifikacija visokih programskih jezika u vrijeme provjere tipa podataka:

  • statički su jezici obično kompilirani. Provjera tipa događa se kada se program analizira prije nego što se prevede na jezik stroja.
  • Dinamički jezici provjeravaju vrste podataka tijekom izvršenja.

Glavni način interakcije

Vrlo apstraktni jezici mogu se podijeliti prema osnovnoj programskoj paradigmi. Postoje desetine metodologija za programiranje, od kojih su neke vrlo slične jedna drugoj pa je nemoguće stvoriti jasan sustav razlika. Kratka klasifikacija programskih jezika izgleda ovako:

  • algoritamski, imperativni, proceduralni. Potrebni su eksplicitni sekvencijalni opis algoritma za rješavanje problema. Operatori se istodobno kombiniraju u proceduralne skupine, odvojeno od samih podataka. Primjeri postupovnih jezika su Pascal, Basic;
  • logično, deklarativno. Maksimalno formalizirano opisuje sam zadatak i traženi rezultat. Otopina mora logično slijediti iz ovog opisa;
  • objektno orijentiran, strukturiran. Temelji se na konceptu objekta koji kombinira podatke i metode njihove obrade.

Predmeti u programiranju

Jezici posljednje skupine opisuju sve entitete u obliku neovisnih objekata koji skrivaju složenu mehaniku. Osnovni pojmovi OOP (objektno orijentirano programiranje) su:

  • enkapsulacija - skrivanje funkcionalnosti unutar objekta;
  • nasljeđivanje nekim objektima metoda drugih;
  • polimorfizam - promjena suštine sa očuvanjem vanjskog sučelja.
Objektno orijentirano programiranje

Također možete klasificirati jezike objektno orijentiranog programiranja primjenom osnovnih pojmova ovog pristupa - baštinu, inkapsulaciju i polimorfizam. Osim klasičnih mehanizama, postoje i drugi, poput prototipa, koji se koriste u jаvascript-u.

OOP metodologija se smatra najnaprednijim, učinkovitijim i na neki način moderan. Međutim, u mnogim slučajevima, drugi pristupi, na primjer funkcionalni, mogu biti učinkovitije za rješavanje određenog problema.

Generacije programskih jezika

Klasifikacija programskih jezika iz povijesti njihovog izgleda smatra se uvjetnom jer ne uzima u obzir specifičnosti specifičnih sustava. Međutim, to vam omogućuje praćenje načina na koji su se koncepti promijenili tijekom vremena, a zadatci s kojima se suočavaju programeri postaju složeniji.

U pokušajima povezivanja klasifikacije i evolucije programskih jezika, razlikovale su se nekoliko velikih skupina nazvanih generacijama:

  • Prva generacija - niski strojni jezici, vezani za implementaciju određenog računala. "Programi" na tim jezicima izgledali su poput redaka prekidača postavljenih u željeni položaj ili bušenih kartica (bušenih vrpci). Dakle, sve su naredbe bile niz nula i one - binarni kod. Primjer: jezik ARM procesora.
  • U drugoj generaciji jezici su postali malo razumljiviji za neku osobu, ali nisu ih mogli odvojiti od određenog aparata. Ovo je vrijeme montažnog jezika s njegovim mnemoničkim kodovima i nedvosmislenom montažom u strojno čitljivom obliku. Primjer: Makroassembler.
  • Jezici treće generacije uklonili su od programera brigu o neprincipijelnim detaljima izrade uputa, poput prevođenja programa u strojni kod. Sada je računalo naučilo to samostalno. Sintaksa i rječnik pristupili ljudima, postali su jasniji. U ovoj generaciji su rođeni gotovo svi moderni visoki jezici s širokim područjem primjene, bez obzira na njihovu paradigmu: PHP, Fortran.
  • U četvrtoj generaciji, razina apstrakcije se još više povećala, oštro sužavajući opseg uporabe. Ova grupa uključuje specifične jezike kao FoxPro, Simulink, SQL. Pojavljeni su vizualni programski jezici CAD paketi, sustavi RAD.
  • Konačno, jezici pete generacije morali su sami napisati programe, dobivajući samo opis od programera. Ova ideja nije u potpunosti implementirana, jer za sastavljanje učinkovitog algoritma ponekad nije dovoljno izravna računalna logika, a ljudska intuicija i pamet još uvijek su potrebni. Primjeri jezika pete generacije su MathCAD, Prolog i Merkur.
Generacije programskih jezika

Ustvari, generacije jezika odgovaraju upravo programskim fazama raspravljenima na početku članka, navedene obrnutim redoslijedom. U početku, programer je uzeo sve operacije, a stroj je izvršio samo navedeni niz akcija. Sada računalo može proizvesti rezultat prema formalnom opisu problema.

Lakoća programera je popraćena povećanjem opterećenja stroja, program je sporiji i zahtijeva više resursa.

Unatoč činjenici da tehnološki napredak kreće s skokovima i granicama, jezici prvih generacija uopće nisu nestali. Koriste se u područjima koja zahtijevaju maksimalnu jednostavnost i učinkovitost.

Opseg primjene

Svaki je programski jezik dobar u svom polju, za koji je stvoren. Dakle, za programiranje mikrokontrolera koriste se montažeri, a kod Java nema ništa za napraviti. Programiranje na niskoj razini je učinkovito s C, što vam omogućuje da strogo kontrolirate memorije. Za web programiranje valja odabrati jezika skriptiranja PHP i jаvascript, čiji je prevoditelj ugrađen u svaki moderni preglednik. Važni bankarski programi napisani su u Javi, pružajući kontrolu pogrešaka. Aerospace - također u Java ili Pascal, što čak i zbirka smeća daje kontrolu programeru.

Svi jezici su dobri, samo trebate odabrati odgovarajući zadatak.

Najpopularniji programski jezici

Važnost klasifikacije

Teško je podijeliti stotine postojećih sustava ljudsko-računalnih interakcija u nekoliko različitih skupina. Ipak, pregled klasifikacija programskih jezika kratko prati povijest njihove evolucije i dublje otkriva ideje ugrađene u njih.

Svaki se jezik istodobno odnosi na nekoliko navedenih skupina - može biti snažno upisano, sastavljeno i objektno orijentirano u isto vrijeme. Stoga je nemoguće razmotriti raznolikost programskih sustava kroz prizmu jedne klasifikacije.

Dijelite na društvenim mrežama:

Povezan
Java polja žica. Razvrstavanje polja u Java. Dvodimenzionalni Java rasporedJava polja žica. Razvrstavanje polja u Java. Dvodimenzionalni Java raspored
Što je rekurzija? Rekurzija u programiranju (primjeri)Što je rekurzija? Rekurzija u programiranju (primjeri)
Računalni programski jezici: vrste, opis, primjena i povratne informacijeRačunalni programski jezici: vrste, opis, primjena i povratne informacije
Informatika. Osnove algoritma i programiranjaInformatika. Osnove algoritma i programiranja
Programiranje: Assembler jezik. Osnove Assemblerovog jezikaProgramiranje: Assembler jezik. Osnove Assemblerovog jezika
Programiranje igara: programi, značajke stvaranja i preporukeProgramiranje igara: programi, značajke stvaranja i preporuke
Jezici Europe: Učenje u jezičnom okruženjuJezici Europe: Učenje u jezičnom okruženju
Najpopularniji programski jezici. Programski jezici za početnikeNajpopularniji programski jezici. Programski jezici za početnike
Ocjena programskih jezika 2016Ocjena programskih jezika 2016
Metode opisivanja algoritama i vrsta algoritamaMetode opisivanja algoritama i vrsta algoritama
» » Razvrstavanje programskih jezika prema razinama
LiveInternet