OqPoWah.com

Razvrščanje programskih jezikov po ravneh

Programski jeziki so sistemi simbolov in pravila njihove kombinacije, namenjeni interakciji osebe s kompleksnimi stroji. Obstaja na stotine takih organiziranih sistemov, ki opravljajo različne funkcije. Za navigacijo v tej raznolikosti strokovnjaki ustvarjajo splošne klasifikacije programskih jezikov, ki temeljijo na eni ali drugi značilnostni funkciji.

Interakcija človeka in stroja

Pomembno je razumeti, kako ljudje komunicirajo z inteligentnimi mehanizmi, preden nadaljujejo s klasifikacijo programskih jezikov.

Nekega dne je človek mislil, da lahko stroj dela zanj. Tako se je pojavil parni stroj. Potem se je podjetna oseba odločila za prehod na avto tudi duševno delo. Torej je bil računalnik.

Če želite doseči nekaj rezultatov, morate razumeti, kako to storiti. Pri programiranju lahko ločite več stopenj reševanja morebitnih težav:

  1. Formalni logični opis naloge sama.
  2. Izgradnja algoritma, ki opisuje vse korake za dosego cilja, začenši z obdelavo vhodnih podatkov in konča s pridobivanjem rezultata.
  3. Kodiranje - sestavljanje programa v katerem koli programskem jeziku, ki se nato lahko prevede v računalniško prijazen jezik.
  4. Prevod je neposreden prevod.
  5. Sestavljanje tekočega programa (izvedljiv modul) iz vseh komponent.

Gre za hierarhično strukturo, v kateri višje ravni temeljijo na spodnjih. Brez jasne naloge in kompetentnega algoritma ni mogoče ustvariti kakovostnega programa.

Raznolikost programskih jezikov

Struktura programskih jezikov

Razporeditev vseh sistemov interakcije je podobna in v več pogledih določa klasifikacijo programskih jezikov.

Glavni predmeti programskega jezika so konstantni in podobni komponentam človeških jezikovnih sistemov:

  • Sintaksa, ki določa formalna pravila za pisanje programa, veljavne vrste in primer znakov;
  • leksikon, ki vključuje celoten besednjak jezika: imena spremenljivk in funkcij, konstante, strune, operatorje;
  • slovnica, ki kaže, kako pravilno združiti enote jezika za oblikovanje besednih kombinacij in stavkov.

Besednjak in slovnica skupaj definirajo semantiko jezika. Na tej ravni posebne sekvence znakov pridobijo poseben pomen, razumljiv človeku in računalniku. Na primer, beseda v mnogih programskih sistemih obravnava kot začetek ciklične operacije.

Seveda računalniki ne razumejo običajnih besed, samo po sebi kombinacija latinskih črk za njih ne pomeni ničesar. Stroji se ukvarjajo strojna koda - ničle in tiste, ki opisujejo primitivno stanje prisotnosti ali odsotnosti signala. Zato programski jeziki vzpostavljajo jasno korespondenco določenih besed in zaporedij domačih navodil za stroj.

Prvi primitivni sistemi za nadzor strojne opreme - pikčaste kartice - so bili uporabljeni za statve Jacquarda, ki so prenesli na svilo vzorec katere koli zapletenosti. Samopostrežni klavir je bil programiran na enak način.

Obstaja na stotine programskih sistemov in vsako leto so nove. Nekateri med njimi so bistveno drugačni, drugi so zelo podobni in imajo le majhne značilnosti. Vsak je namenjen reševanju svoje naloge, širokega ali visoko specializiranega.

Pregled klasifikacij

Programski jeziki so lahko združeni z več desetimi različnimi znaki. So bistveno ali praktično pomembni.

Obstaja močna odvisnost razvrstitve programskih jezikov na zgodovino razvoja. V preteklih letih so tehnologije postale bolj zapletene in dramatično spremenjene, programatorjevo udobje je prišlo v ospredje, pojavili so se učinkoviti algoritmi, kompleksne ekipe in nove stopnje abstrakcije.

Programski jeziki

Glavne razvrstitve programskih jezikov po vrstah in mehanizmu delovanja temeljijo na naslednjih parametrih:

  • Značilnosti besedišča in slovnice v povezavi s stopnjo abstrakcije in stopnje udobnosti za človeka.
  • Osnovni koncept in metodologija zbiranja algoritmov.
  • Metoda predstavitve podatkov.
  • Organizacija procesa interakcije s strojem, mehanizem izvajanja programa.
  • Področje življenja, v katerem se uporablja jezik.
  • Zgodovinska epoha, v kateri je nastal jezikovni sistem.

Nemogoče je jasno razvrstiti jezike in programske sisteme, vendar jih je mogoče razdeliti in sistematizirati glede na bistveno pomembne značilnosti.

Priročnost za človeka

Navodila, napisana v strojnem jeziku, so razumljiva za računalnik, vendar so zelo neprimerna za osebo. Težko jih je razumeti, skoraj ni mogoče hitro spremeniti ali sestaviti z njimi zapletenega algoritma. Za povečanje učinkovitosti so se programerji dvignili na nove stopnje abstrakcije in so učili stroj, da bi sprejemal čim bolj razumljiva navodila in jih samostojno prevedel v strojno kodo. Razmislite o razvrstitvi in ​​značilnostih programskih jezikov na različnih ravneh:

  • Koda naprave. To je tudi programski jezik, na katerega lahko z ustrezno pripravo napišete navodila.
  • Nizka raven. Res je nizka raven zbirni jeziki, ki uporabljajo navadne strojne napotke, kodirane z mnemonskimi kodami.
  • Srednji nivo. Sisteme programiranja te skupine se lahko štejejo za nizko in visoko raven, odvisno od specifičnih idej o stopnji abstrakcije. To vključuje C in C + +.
  • Visoka raven. Ti jeziki vam omogočajo ustvarjanje kompleksnih algoritmov, vendar zahtevajo dodatno obdelavo pred izvedbo, zato je generirana koda manj učinkovita in počasnejša.
  • Zelo visok nivo. Za to majhno skupino je značilen izraz super-močnih ekip in operaterjev. Tukaj je mogoče nositi Algol-68.

Značilnost jezikov na nižji ravni je njihova računalniška odvisnost. So tesno povezani s posebnostmi organizacije določenega tipa računalnika, vendar so v celoti podobni drug drugemu. Zagotavljajo:

  • visoka hitrost izvedbe in največja kompaktnost ustvarjenih programov;
  • neposredna interakcija z viri strojne opreme;
  • popoln nadzor nad pomnilnikom.

Glavne slabosti jezikov na nižji ravni:

  • za vsak tip računalnika je potrebno uporabiti določen ukazni sistem, odvisno od značilnosti naprave;
  • kompleksnost in nizka hitrost programskega procesa;
  • velika verjetnost napak, ki jih je težko slediti;
  • pomanjkanje mobilnosti programov, nezmožnost, da jih vodijo na drugem računalniku.

Programski sistemi na visoki ravni niso vezani na določen strojni sistem ukazov in se lahko izvajajo na katerem koli računalniku. Zaradi visoke stopnje abstrakcije si pri pripravi navodil lahko privoščijo uporabo različnih konceptov in metodologij. Zato je razvrstitev programskih jezikov na visoki ravni zelo obsežna in zapletena.

Obdelava programa z računalnikom

Za izvedbo zahtevnega pouka mora računalnik najprej zmanjšati abstraktnost in ga prevedeti v jezik, ki je razumljiv samemu sebi. Način, kako se to naredi, se imenuje model uspešnosti. Obstajata dva glavna modela in en hibrid:

  • Kompilacija - enkratni prevod celotnega programa v strojno kodo.
  • Tolmačenje - zaporedna izvedba vsakega izraza.
  • Transcopation - prevajanje v jezik nižjega nivoja, na primer C ali asembler, in njena naknadna kompilacija.

Če želite prevajati, potrebujete poseben program prevajalnika ali tolmača, brez katerega ne morete delati z jezikom.

Sestavljanje in tolmačenje

Prevajalec dela z vsako vrstico programa ločeno, analizira in takoj izvrši. Njena prisotnost je potrebna od začetka do konca programa.

Glavne pomanjkljivosti modela tolmačenja so:

  • stalna ugotovitev prevajalca v računalnem pomnilniku;
  • ponavljajoča se obdelava ponavljajočih se ukazov.

Kljub temu so razloženi jeziki zelo primerni za ciklični razvoj in odpravljanje napak, saj vam omogočajo, da hitro spremenite program.




Kompilator deluje le enkrat in takoj pretvori vsa navodila v računalniško prijazno kodo strojne kode ali vmesno kodo bajtov in nato zapusti računalniški pomnilnik. Tu je izvedba ločena od postopka prevajanja, kar je bolj učinkovit model.

Glavne slabosti kompilacijskega modela so:

  • velika težava.

Preden prevedemo program v strojno razumljiv jezik, prevajalec večkrat prehaja skozi začetno navodilo, ga analizira in preizkuša.

Sestavljanje programa

Ni jasnih razmejitev sistemov, saj se lahko tradicionalno razlagajo jeziki in obratno.

Razvrščanje programskih jezikov na visoki ravni po modelu izvedbe:

  • Interpretirani - Python, Haskell, PHP, jаvascript.
  • Sestavljeno neposredno v strojno kodo: C, C + +, Fortran, ASM.
  • Sestavljeno v bytecode: Python, Java.
  • Transkompilirano: Haskell, Fortran, C, C + +.

Obdelava podatkov

Vsak programski jezik deluje z informacijami, ki jih je treba na nek način manipulirati, preveriti pravilnost in spremeniti. Podatki so lahko zelo raznoliki - številke, linije ali zapletene strukture. Seveda mora vsaka vrsta delovati drugače, vendar je treba natančno določiti, kako je najprej treba razumeti, s kakšnimi podatki se ukvarja računalnik.

Na podlagi metode za določanje raznolikih podatkov je izdelana klasifikacija programskih jezikov s tipskim sistemom.

  • Nedotaknjeni jeziki.
  • Izpisani jeziki različnih stopenj resnosti.

Neodpisani so zbirni jeziki, ki lahko obdelujejo neposredno binarne podatke. Vrsta podatkov sploh ni pomembna.

Za tipizirane jezike je pomembno, s kakšnimi podatki se ukvarjajo. Nekatere operacije so opredeljene samo za številke, na primer delitev, druge pa so samo za nizov. Vendar pa nekateri sistemi omogočajo programeru določene svoboščine. Na primer, lahko samostojno definirajo in "implicitno" pretvarjajo eno vrsto podatkov v drugo, na podlagi semantike ukaza. To je zelo priročno, vendar otežuje razhroščevanje, saj lahko povzroči neopazno napako. Živahen primer neprekinjenega vnašanja je jаvascript.

Strogo tipizirani jeziki, na primer Java, ne dovoljujejo take svobode in po potrebi zahtevajo navedbo vrst in njihovo izrecno konverzijo.

Ob preverjanju vrste podatkov je tudi razvrstitev visokokakovostnih programskih jezikov:

  • statični jeziki so običajno kompilibilni. Preverjanje tipa se pojavi, ko je program analiziran, preden se prevede v strojni jezik.
  • Dinamični jeziki preverjajo vrste podatkov med izvajanjem.

Glavni način interakcije

Visoko abstraktne jezike je mogoče razdeliti glede na osnovno programsko paradigmo. Obstaja več deset metodologij za programiranje, med katerimi so nekatere zelo podobne, zato ni mogoče ustvariti jasnega sistema razlik. Kratka razvrstitev programskih jezikov je taka:

  • algoritemski, nujni, postopkovni. Zahtevati izrecen zaporedni opis algoritma za reševanje problema. Operaterji so hkrati združeni v postopkovne skupine, ločeni od samih podatkov. Primeri proceduralnih jezikov so Pascal, Basic;
  • logično, deklarativno. Največji formalizirani opisujejo nalogo in zahtevani rezultat. Rešitev mora logično slediti temu opisu;
  • objektno usmerjen, strukturiran. Temelji na konceptu predmeta, ki združuje podatke in metode obdelave.

Predmeti v programiranju

Jeziki zadnje skupine opisujejo vse entitete v obliki neodvisnih predmetov, ki skrivajo kompleksno mehaniko. Temeljni koncepti OOP (objektno orientiranega programiranja) so:

  • inkapsulacija - skriva funkcijo znotraj objekta;
  • dedovanje nekaterih predmetov metod drugih;
  • polimorfizem - sprememba bistva z ohranjanjem zunanjega vmesnika.
Objektno programiranje

Jezikov objektno orientiranega programiranja lahko razvrstite tudi z izvajanjem osnovnih pojmov tega pristopa - dedovanja, inkapsulacije in polimorfizma. Poleg klasičnih mehanizmov obstajajo tudi drugi, kot je prototip, ki se uporablja v jаvascriptu.

Metodologija OOP velja za najbolj progresivna, učinkovita in na nek način modna. Vendar pa so v nekaterih primerih lahko drugi pristopi, na primer funkcionalni, bolj učinkoviti pri reševanju določenega problema.

Generacije programskih jezikov

Klasifikacija programskih jezikov iz zgodovine njihovega videza je pogojna, saj ne upošteva posebnih značilnosti določenih sistemov. Vendar pa vam omogoča, da ugotovite, kako so se koncepti s časom spremenili in da so naloge, s katerimi se srečujejo programerji, postali bolj zapleteni.

Pri poskusih povezovanja razvrščanja in razvoja programskih jezikov je bilo razločenih več velikih skupin, imenovanih generacij:

  • Prva generacija - nizek nivo strojnih jezikov, vezanih na izvedbo določenega računalnika. »Programi« v teh jezikih so izgledali kot vrstice stikal, nameščenih v želenem položaju, ali punch kartice (luknjani trakovi). Tako so bili vsi ukazi zaporedje ničelnih in tisti - binarna koda. Primer: jezik procesorja ARM.
  • V drugi generaciji so jeziki postali malo bolj razumljivi za osebo, vendar jih niso mogli ločiti od določenega aparata. To je čas sestavljenega jezika z mnemonskimi kodami in nedvoumno sestavljanje v strojno berljivi obliki. Primer: Macroassembler.
  • Jeziki tretje generacije so od programerja odstranili skrb za nepristranske podrobnosti priprave navodil, kot je prevajanje programa v strojno kodo. Zdaj se je računalnik naučil storiti sam. Sintaksa in besednjak približal človeka, postal je jasnejši. V tej generaciji so se rodili skoraj vsi sodobni visoki jezikovni jeziki s širokim področjem uporabe, ne glede na njihovo paradigmo: PHP, Fortran.
  • V četrti generaciji se je stopnja abstrakcije še povečala, kar je močno zmanjšalo obseg uporabe. V to skupino spadajo taki specifični jeziki kot FoxPro, Simulink, SQL. Pojavi se vizualni programski jeziki: CAD paketi, sistemi RAD.
  • Nazadnje, jeziki pete generacije so morali sami pisati programe, pri čemer so dobili samo opis programerja. Ta ideja ni bila v celoti izvedena, saj za pripravo učinkovitega algoritma včasih ni dovolj neposredne računalniške logike, človeška intuicija in zdrava pamet pa sta še vedno potrebna. Primeri jezikov pete generacije so MathCAD, Prolog in Mercury.
Generacije programskih jezikov

Pravzaprav generacije jezikov natančno ustrezajo programskim fazam, ki so opisane na začetku članka, ki so navedene v obratnem vrstnem redu. Na začetku je programer prevzel vse operacije, stroj pa je izvedel samo določeno zaporedje akcij. Zdaj lahko računalnik proizvede rezultat v skladu z formaliziranim opisom problema.

Enostavnost programskega dela spremlja povečanje obremenitve na stroju, program je počasnejši in zahteva več virov.

Kljub dejstvu, da se tehnološki napredek premika s skokom in mejami, jeziki prvih generacij sploh niso izginili. Uporabljajo se na območjih, ki zahtevajo največjo enostavnost in učinkovitost.

Področje uporabe

Vsak programski jezik je dober na svojem področju, za katerega je bil ustvarjen. Torej, za programiranje mikrokontrolerjev sestavljajo se uporabljajo, in z Java ni nič storiti. Programiranje gonilnikov na nizki ravni je učinkovito pri C, kar vam omogoča strogo upravljanje pomnilniških virov. Za spletno programiranje je vredno izbrati skriptni jeziki PHP in jаvascript, katerega tolmač je vgrajen v vsak sodoben brskalnik. Pomembni bančni programi so napisani v Java, ki zagotavljajo nadzor nad napakami. Aerospace - tudi v Java ali Pascal, ki celo program za zbiranje smeti daje programeru nadzor.

Vsi jeziki so dobri, samo izberite ustrezno nalogo.

Najbolj priljubljeni programski jeziki

Pomen klasifikacije

Težko je razdeliti na stotine obstoječih sistemov človeško-računalniške interakcije v več različnih skupin. In vendar, pregled klasifikacij programskih jezikov na kratko sledi zgodovini njihovega razvoja in globlje razkrije ideje, ki so v njih vgrajene.

Vsak jezik se istočasno nanaša na več skupin, ki so navedene na seznamu - lahko je hkrati natipkano, prevedeno in objektno usmerjeno. Zato je nemogoče upoštevati raznolikost programskih sistemov skozi prizmo enotne razvrstitve.

Zdieľať na sociálnych sieťach:

Príbuzný