Kujutise allikas: pixabay.com
Olen selle blogi kirjutanud arvestades, et inimesed, kes seda loevad, on absoluutsed algajad. Inimestel, kellel on taust nagu, ma mõtlen, et mitte just tehnoloogilisel taustal oleks tegelikult raske programmeerimist õppima hakata, kui pole kedagi, kes neid juhendaks. Seetõttu olen kirjutanud selle ajaveebi neile viisakalt. Mis on siis keeltest rääkides, mis on täpselt kõrgetasemeline keel ja madala taseme keel? Miks neid isegi nii nimetatakse? Ja kui palju nad erinevad üksteisest?
Ütlematagi selge, et olen neid kõiki siin blogis käsitlenud.
Kõrgetasemeline või madala taseme infograafika
Mis on kõrgetasemelised keeled?
Peate olema asi Mis on kõrgetasemeline keel? kuid öelge mulle, et neid on lihtsam mõista ja nad on kasutajasõbralikud. Nende keelte abil saab kirjutada rakendusi, mis on teisaldatavad erinevatel platvormidel (näiteks Linux või Windows) ja on sõltumatud mis tahes arhitektuurist (näiteks mitteintell ARM või kurikuulus Intel). Kõrgetasemeline keel Näide: kirjutage programm pythonis, mis töötab vaikimisi suvalises Linuxi süsteemis, siis lihtsalt kompileerige see py2exe abil mis tahes exe-faili ja käivitage see siis Windowsiga.
Sarnased näited on Python, C, Fortran või Pascal. Selliseid keeli peetakse kõrgetasemelisteks keelteks, kuna need on inimkeeltele lähemal ja masinakeeltest palju kaugemal. Inimese keelt öeldes ei pea ma silmas seda, mida me oma igapäevases elus räägime. See tähendab, et kood on midagi, mida saame aru saada, kui teame programmeerimise põhitõdesid. Kirjutatud kood on inimestel peaaegu loetav, midagi sellist, mida saab lugeda ja hääldada.
Järgnevalt on toodud mõned näited masinikeelest, mille abil saate Fortranis ja C ekraanil printida lihtsa programmi.
Fortranis:
program NewProgramF90
write(*, *) "This is a printed program"
end program NewProgramF90
Nüüd saate seda kompileerida, kasutades järgmist:
gfortran newprogram.f90 -o newprogram -f90-gcc
Ja siis lihtsalt käivitage see.
Sarnane programm C-s:
#include
main()
(
printf("This is a printed program");
)
Puhtale algajale on see kõige lihtsam.
Kuid kuna me räägime arvutitest, on arvuti jaoks seda raske mõista. Nii et arvutitele mõistlikuks teha ja kõrgetasemelise keelega loodud programmi käivitada, tuleb see kompileerida masinakeelde.
Pildi allikas: github.com
Ja siin tuleb vahele madala taseme keel. Erinevalt varasemast, kus oli vaid mõned kõrgetasemelised keeled, on tänapäeval n arvu kõrgtasemel keeli, näiteks C, Cobol, FORTRAN, Pascal, Java, Perl, Python, PHP, Ruby, C ++, BASIC ja Visual Basic .
Mis on madala taseme keeled?
Madala taseme keeled - need keeled, mis on masinakeelele väga lähedased. Neid tuntakse ka assamblee keeltena. Lähimad keeled pärast kokkupanemist masina keelele on C ja C ++. Mõned inimesed nimetavad C- ja C + + -i isegi madala taseme keelteks. Masinkood on tuntud kui madal tase, kuna erinevalt kõrgetasemelistest programmeerimiskeeltest ei vaja see muud kui kompilaatorit või midagi muud. See töötab otse protsessoril ja nad on äärmiselt arhitektuursed.
Madala taseme keeled on sobivamad uute opsüsteemide arendamiseks või mikrokontrollerite püsivara koodide kirjutamiseks. Nad saavad natuke raske tööga midagi ette võtta (tegelikult on selleks palju rasket tööd, et konkreetne olla), kuid ilmselt ei taha te sellesse mõnda suuremat rakendust kirjutada. Sarnane on olukord ka C-ga (tegelikult nimetatakse seda Cee-ks). C on tegelikult väga lai keel, millest alustada. See võimaldab teil otse registreerida ja anda viivitamatu juurdepääsu erinevatele mälukohtadele.
Kuid samal ajal on sellel ka palju konstruktsioone, mis võimaldavad riistvaral laadida abstraktsiooni. Ausalt öeldes tähistavad C ja C ++ kahes keeles erinevaid keeli, kuna enamus keeli on neilt võtnud oma raamatukogud. Praktikas on nii C kui ka C ++ madal tase, nagu ma teile juba varem ütlesin, sest ettevõtte tasandil on rakenduste kirjutamine üsna keeruline. Kuid teoreetiliselt on mõlemad tegelikult kõrgetasemelised keeled.
Soovitatavad kursused
- Professionaalne IT-turbe kursus
- Ruby on Rails treeningkomplekt
- Professionaalne CSS-i kursus
- Online HTML5 ja CSS3 kursus
Kõrgetasemelise ja madala taseme keelt iseloomustavad tunnused:
Asi on selles, et minult on korduvalt küsitud erinevates intervjuudes ja muudes kohtades, mis mulle kõige paremini meeldib - madala või kõrge taseme programmeerimine. Mulle tundub, et sellist asja nagu parim pole olemas. Vastus on, et neil mõlemal on oma eriala ja te ei saa üksteist asendada. Seega mulle tegelikult meeldivad nad mõlemad.
Madala taseme programmeerimine on keeruline ja nõuab palju kogemusi ja teadmisi. Kõrgetasemeliste keelte tunnusjooned on kõik loomingulised asjad, st rakendused, mida inimesed kasutavad oma igapäevases elus ja seda saab siluda palju lihtsamalt kui madala taseme puhul. Ja siin saate töötada väga uute tehnoloogiatega, kuna kogukonna toetamise tõttu täiendatakse pidevalt paljusid neist keeltest.
Kui küsite selle kohta ükskõik milliselt kõrgetasemeliselt keelekodeerijalt, mis neile meeldib, oleks vastus teile kaugel sellest, mida vajate. Nad ei ütle sulle, kumb on parem.
Tõenäoliselt ütlevad nad, et nad on kirglikumad konkreetse kõrgetasemelise keele ja mitte kõigi nende suhtes. Ma ei tea, et see juhtub. Kõige kuulsamad näited on Python ja Ruby ning kui näitate neile mõnda programmi, mis on kirjutatud montaažina, siis lähevad need tõenäoliselt hasta-la-vista.
Pildi allikas: mathworks.com
Mis on paljude kõrgetasemeliste keelte puhul tegelikult ülimaitsev, on see, et need kuuluvad hübriidkategooriasse. Näiteks on python äärmiselt objektorienteeritud, kuid toetab samal ajal ka sulgureid ja esmaklassilisi funktsioone. Ehkki see pole nii võimas kui Scala, on tal siiski võime esindada enam-vähem kraami kui puhtalt keeles.
Kõrgetasemelised keeled on madala tasemega keeltega võrreldes tavaliselt aeglased. Selle põhjuseks on asjaolu, et kõrgetasemelistel keeltel on enne riistvara juurde jõudmist palju abstraktsioone ja koodikihte. Kuna masinkood on lähemal, on see väljundi töötlemiseks ja tagastamiseks tegelikult kiire. Tõenäoliselt tõlgitakse Pythonis üks kood tuhandetes masinasõnades ridades.
Muidugi on kõrgetasemelised keeled võrdsed seal, kus töötlemata jõudlus pole vajalik, kuna te ei saa arendada nii stabiilset ja suurt rakendust madalal kui kõrgel tasemel. See on üks asi, mida tasub meeles pidada.
C programmeerimine - madala / kõrge taseme segadus
Ehkki C-l on palju Pascali keelega sarnaseid omadusi, peetakse seda mõnikord madala taseme keeleks, kuna see toetab bittide, osutite kasutamist ja otsest juurdepääsu mälule. C on tegelikult kõrgetasemeline keel, mis hõlmab ka madalat taset. See on peamine põhjus, miks programmeerijad sõltuvad C-st selle ületamatute omaduste üle kõigest.
Võib tunduda imelik, et kuigi C-d käsitletakse madala taseme keelena, on see äärmiselt kaasaskantav. Fanaatiliselt võib öelda, et tegelikult laiendatakse C-d nii, et riistvara oleks võimalikult äärmuslik.
Montaažikeel seevastu on vaevalt kaasaskantav. Teisaldatavuse püüdmine on madala taseme korral suur asi, eriti Java puhul, mis töötab JVM-i ehk virtuaalse masina korral. C-l või VM-is töötaval assambleel pole kunagi puhast juurdepääsu riistvarale.
Täpsemalt öeldes muutub keel madalaks, kui see on spetsiaalselt üles ehitatud otse riistvarale kasutamiseks. Madala taseme keeltel on väga vähem süntaksit, erinevalt kõrge taseme keeltest, kus on palju kodeeringuid.
Madalad keeled, mis võimaldavad riistvarale täielikku juurdepääsu, oleks projektide kirjutamiseks tegelikult halb valik.
Millal kasutada madalat taset?
Masinkood näeb välja umbes selline, mis töötab eriti kiiresti, kuna see on riistvarale väga lähedal.
8B542408 83FA0077 06B80000 0000C383
FA027706 B8010000 00C353BB 01000000
B9010000 008D0419 83FA0376 078BD98B
C84AEBF1 5BC3
Eespool on funktsioon, mis on kirjutatud 32-bitisele arhitektuurile, st x86 masinkoodile, et arvutada Fibonacci arv.
Masinkoodi kirjutamine on vaieldamatult üsna ärritav, kuna see eeldab numbriliste koodide kontrollimist aeg-ajalt kõigi muude käitatavate käskude korral. Kelle kuradil on selleks aega? Ja see on põhjus, miks madala taseme programmeerimine sündis.
Kuid kui küsida madala taseme programmeerimise kohta kõrgetasemelistelt programmeerijatelt, saate vastuse järgmiselt:
Kujutise allikas: pixabay.com
Järeldus
Madala taseme keeltel on täiendav eelis, kuna nad kaotavad kontrolli keskseadme üle, kuid nende koodid on programmeerimiskaaslaste poolt äärmiselt raskesti mõistetavad ja siluvad. Igal teisel arhitektuuriperekonnal on oma komplekteerimiskeel, mis tähendab, et ühe jaoks kirjutatud koodi on teise jaoks võimatu kasutada. Mis lühidalt tähendab, kood pole teisaldatav.
Kõrgetasemelise keele eelised on see, et kõrgetasemelised keeled on teisalt eriti kaasaskantavad ja neid kasutatakse enamasti tarkvara kirjutamiseks, mida saab kasutada mitmel platvormil ja arhitektuuris. Kumbki neist ei saa teineteist asendada, sest nad mõlemad on sama mündi kaks külge.
Soovitatavad artiklid
Siin on mõned artiklid, mis aitavad teil saada rohkem üksikasju kõrgetasemeliste keelte ja madala taseme keelte kohta, nii et lihtsalt minge lingi kaudu.
- Kõige olulisemad näpunäited Haskelli programmeerimiskeel
- HTML5 ja Flash - leidke erinevused
- Teksti kaevandamine vs loomuliku keele töötlemine - 5 parimat võrdlust
- 12 parimat sammu R-programmeerimiskeele installimiseks (lühijuhend)
- 8 parimat mobiilirakenduse programmeerimiskeelt, mida peaksite teadma
- Oluline on teada Haskelli programmeerimiskeelt