Gjithmonë më dukej se Fortran ishte i pari, i cili, veçanërisht, pasqyrohet në diagramin ndoshta më të famshëm të historisë së gjuhëve të programimit. Në fakt, për sa i përket ndikimit dhe popullaritetit, Fortran ishte sigurisht i pari. Megjithatë, nga pikëpamja historike, nr.

[Për të qenë plotësisht i saktë, gjuha me të vërtetë e parë e programimit ishte, me sa duket, shënimi me të cilin u shkruan programet e Charles Babbage në artikullin e famshëm nga Ada Augusta Byron, konteshë e Lovelace "Sketch Of the Analytical Engine" (artikulli ishte përkthim i një artikull nga Menabrea italiane mbi funksionimin e motorit të ndryshimit të Babbage dhe përmbante një shtesë domethënëse të shkruar nga vetë Ada Augusta). Sidoqoftë, nuk ishte një gjuhë programimi dhe makina për të cilën ishte menduar ekzistonte vetëm në mendjen e një personi të shkëlqyer. Meqë ra fjala, vërej se në vitin 1991 Muzeu i Shkencës në Londër krijoi makinën e tij bazuar në vizatimet e Babbage dhe tani ekziston në gjendje pune]

Pra, gjuha e parë e programimit. Nuk ishte aspak Fortran, por një gjuhë me një emër të mahnitshëm - Plankalkül, domethënë e përkthyer nga gjermanishtja si "Llogaritja e planeve" ose "Plani i llogaritjeve", u zhvillua nga shkencëtari, shpikësi dhe projektuesi gjerman Konrad Zuse në nazist. Gjermania midis 1942 dhe 1945.

[Zuse gjithashtu projektoi disa modele të ndryshme kompjuterash. Për shembull, Z3 i tij u krijua gjithashtu para Marc I dhe ENIAC të famshëm dhe në të njëjtën kohë ishte një makinë plotësisht e plotë. ]

Thuhet se Zuse i arriti të gjitha arritjet e tij në mënyrë absolutisht të pavarur, pa pasur informacione për punën e amerikanëve dhe britanikëve të kryer në një kohë të afërt, dhe pa ditur as për punën e Babbage.

Krijimi i një gjuhe programimi ishte një vazhdim i natyrshëm i punës për krijimin e pjesës "hardware" të kompjuterëve. Vetë Zuse u përpoq ta përdorte atë për të shkruar një program për të luajtur shah. Puna për gjuhën përfundoi rreth vitit 1946, por gjuha nuk u zhvillua dhe madje manuali i shkruar u botua vetëm në vitin 1972. Për shkak të kësaj, gjuha doli të ishte e panjohur dhe nuk pati një ndikim të rëndësishëm në zhvillimin e mëtejshëm të industrisë (në krahasim, për shembull, me Fortran).

Megjithatë, Plankalkül ishte padyshim gjuha e parë e programimit e nivelit të lartë në botë. Konceptet themelore të gjuhës përfshijnë:

  • Prania e nënprogrameve (dhe kjo është në vitet 1940!!!)
  • Prania e operatorit të caktimit (=>)
  • Ciklet
  • Deklaratë e kushtëzuar (nëse)
  • Aftësia për të manipuluar vargje
  • Aftësia për të manipuluar listat
Gjatë krijimit të gjuhës, Zuse mblodhi shumë probleme që u parashtruan nga inxhinierët dhe shkencëtarët. Për të demonstruar se gjuha është me të vërtetë e aftë për të zgjidhur këto probleme, u shkruan një numër i madh i programeve shembullore (në veçanti, rreth 60 faqe shembujsh për një program që luan shah).

Një nga problemet e gjuhës ishte sintaksa e saj jashtëzakonisht komplekse, e cila ishte shumë e pazakontë për një programues modern. Këtu është një shembull i detyrës A = A+1 në gjuhën Plankalkül.

Me këtë tekst dua të filloj një seri artikujsh rreth historisë së zhvillimit të gjuhëve programuese. Është një version i përshtatur i këtij koleksioni.

Programimi u shfaq shumë përpara viteve 50 të shekullit të 20-të. Idetë e para u shprehën nga Charles Babbage (1792-1871), i cili me të drejtë konsiderohet babai i kompjuterit. Ai nuk dinte për transistorët, mikroqarqet dhe monitorët, por ai përshkroi mjaft saktë parimet bazë mbi të cilat do të ndërtoheshin të gjithë kompjuterët. Ideja u zhvillua nga kontesha Ada Lovelace (1815-1852). Vendi i saj në histori ende shkakton shumë polemika, por një gjë është absolutisht e sigurt - ishte Ada që në fakt u bë programuesja e parë e famshme. Falë punës së saj, u bë e qartë se mënyra për të përdorur në mënyrë efektive makinat është përmes algoritmeve të përshkruara në kod.

Motori analitik i Babbage

Por programimi nuk mund të zhvillohej i izoluar nga kompjuterët. Pa to, janë vetëm lojëra me mendje, abstraksion, pavarësisht nga cilësia e ideve. Prandaj, deri në vitet 1950, gjuhët e programimit ishin një grup udhëzimesh makinerie, shpesh shumë të specializuara dhe të zhdukura së bashku me pajisjen e synuar.

Thelbi i problemit

Sot nuk keni nevojë të dini asgjë për arkitekturën e kompjuterit për shumicën e programuesve, vetëm gjuha është e rëndësishme, gjithçka tjetër është dytësore. Në vitet 1950, gjithçka ishte ndryshe - duhej të punoje me kodet elementare të makinës, dhe kjo është pothuajse e njëjtë me programimin me një hekur saldimi.

Një problem tjetër ishte se zhvillimi i gjuhëve ishte përgjegjësi e njerëzve të përfshirë drejtpërdrejt në krijimin e kompjuterëve - kryesisht inxhinierë dhe vetëm programues. Kjo është arsyeja pse ata përfaqësonin gjuhën si një sekuencë të numrave të operacionit dhe qelizave të kujtesës. Përafërsisht, dukej kështu:

01 x y – duke shtuar përmbajtjen e qelizës së memories y në qelizën x;

02 x y – procedurë e ngjashme me zbritje.

Si rezultat, kodi i programit u shndërrua në një seri të pafund numrash:

01 10 15 02 11 29 01 10 11…

Ky lloj kodi mund t'ju duket tmerr sot, por në fillim të viteve 1950 ishte normë.


Kompjuter nga vitet 1940

Programuesit duhej të mësonin komandat e makinës për një kohë të gjatë, më pas të shkruanin me kujdes kodin dhe pas përfundimit, ta kontrollonin edhe disa herë të tjera - rreziku i gabimit ishte i lartë. Problemet u shfaqën kur zhvillimi i makinerive filloi të pengohej nga mungesa e personelit për të shkruar programe. Kërkohej një zgjidhje urgjente.

Zgjedhësi i parë

Zgjidhja ishte e qartë: ishte e nevojshme të përktheheshin përcaktimet dixhitale të operacioneve në shkronja. Kjo do të thotë, në vend të "01 10 15" përdorni "SHTO 10 15". Kjo kërkonte përkthim shtesë të karaktereve në udhëzimet e makinës, por duke pasur parasysh problemin, sakrifica ishte minimale.

Zgjidhja doli të ishte aq e qartë sa nuk dihet me siguri se kush e shpiku i pari gjuhën Asambleje. Me shumë mundësi, ai u shfaq në disa vende menjëherë. Autorët e librit "Përgatitja e programeve për një kompjuter dixhital" Wilkes, Wheeler dhe Gill konsiderohen përgjegjës për emrin dhe popullarizimin. Nuk është e vështirë të merret me mend se emri Assembler vjen nga fjala angleze assemble - për të mbledhur, montuar, e cila përshkruan mjaft saktë procesin. Më vonë, simbolet filluan të kenë të bëjnë jo vetëm me operacionet më të thjeshta, por edhe me adresimin, gjë që thjeshtoi shumë lexueshmërinë e kodit.

Tani kjo duket si një zgjidhje elementare, por atëherë zbatimi ishte një proces kompleks, që kërkonte krijimin e tabelave të korrespondencës, duke caktuar një përcaktim për secilën qelizë memorie. Kjo çoi në tre gjëra themelore:

  • Shfaqja e konceptit të një ndryshoreje simbolike ose thjesht një ndryshoreje.
  • Krijimi i tabelave me të cilat mund të gjeni korrespondencë midis simboleve, operacioneve dhe qelizave të kujtesës.
  • Të kuptuarit se programimi mund të bëhet një art.

Kjo u bë katalizatori për një përparim gjuhësor.

Kompiluesit dhe paragjykimet

Asambleri bëri të mundur krijimin e transformimeve të thjeshta. Për shembull, transferimi i 01 në ADD. Makro assembler zgjeroi këtë ide dhe u dha programuesve aftësinë për të shembur udhëzime të shumta në një. Për shembull, nëse në një program vazhdimisht shtoni një vlerë në një vend memorie dhe kontrollonit nëse ishte plot, mund t'i shkruani të gjitha këto në një makro INCRT dhe ta përdorni, duke ndryshuar vetëm variablat. Në fakt, makro assemblers u bënë gjuhët e para të nivelit të lartë.

Por kishte një problem të rëndësishëm me këtë qasje - çdo herë para krijimit të kodit, ishte e nevojshme të kolapsoheshin operacionet bazë në makro. Duhej një mjet që do t'i lironte programuesit nga kopjimi i vazhdueshëm. Kështu u shfaq përpiluesi.

Tani e dimë që falë kompajlerit mund të krijojmë një gjuhë programimi me absolutisht çdo sintaksë, gjëja kryesore është që ai të përkthen saktë kodin tonë në komanda të makinës. Dhe në atë kohë, ekspertët ishin skeptikë për gjuhët e nivelit të lartë. Kjo ishte pjesërisht për shkak të performancës së kompjuterëve - thjeshtimi i sintaksës me transformime komplekse ishte i kushtueshëm dhe mund ta kthente përparimin teknologjik disa vite prapa. Një pjesë e arsyes ishin emocionet - ishte e vështirë të largoheshe nga forma e komandave të makinës, të humbasësh kontrollin mbi proceset. Programuesit kishin frikë seriozisht se pas kompilimit nuk do të ishin në gjendje të kuptonin komandat e ekzekutueshme. Sot nuk na intereson se si duket kodi i makinës, por atëherë dukej si një çështje e rëndësishme.

Sidoqoftë, përpiluesi u bë mënyra e vetme për të dalë nga situata, por këtu u shfaq një vështirësi tjetër - shprehjet aritmetike. Ekzekutimi i tyre nuk është i njëjtë me mënyrën se si makina lexon kodin. Nga kursi shkollor ne e dimë rendin e llogaritjeve në shprehjen “2+3*5”, por makina e lexon kodin në një drejtim, kështu që përgjigja do të jetë e pasaktë. Po, shembulli i mësipërm mund të zgjidhet duke krijuar një makro, por shprehjet komplekse në nivelin "(2 + 3 * 5 + 4/6) * 10 + 16- (14 + 15) * 8" kërkonin një qasje thelbësisht të ndryshme.

Epoka e një formacioni të ri

John Backus, krijuesi i Fortran, arriti të gjejë një algoritëm për analizën e stivës. Ai filloi të punonte për të në vitin 1954 dhe iu deshën gati 5 vjet për të provuar të drejtën e ekzistencës së gjuhëve të nivelit të lartë. Emri i plotë i Fortran është IBM Formula Translating System, ose FORmula RANslator. Pavarësisht se është 60 vjeç, ajo mbetet një nga gjuhët më të njohura të programimit dhe është jashtëzakonisht e kërkuar në Shkencën e të Dhënave. Gjatë kësaj kohe, ne kemi parë shumë versione: Fortran 1, II, 66, 77, 90, 95, 2008, dhe vitin e ardhshëm do të dalë një tjetër (Fortran 2015 ishte planifikuar, por për shkak të vonesave emri mund të ndryshojë në 2018) . Ishte në Fortran që shumë atribute të një gjuhe të nivelit të lartë u zbatuan njëkohësisht për herë të parë, duke përfshirë:

  • shprehjet aritmetike dhe logjike;
  • DO loop (forma e hershme e ciklit FOR);
  • deklaratë e kushtëzuar IF;
  • nënprograme;
  • vargjeve.

Një tjetër trashëgimi e rëndësishme e Fortran-it që programuesit modernë as nuk e dinë është përdorimi i kufizimeve të ndryshueshme për numrat e plotë. Të gjithë duhej të fillonin me një nga 6 personazhet I, J, K, L, M, N (që rrjedhin nga I-Nteger). Nga këtu lindi zakoni i marrjes së variablave i, j etj. për numërime.


IBM 704 - makina në të cilën u krijua Fortran

Në të njëjtën kohë, Fortran mbeti një gjuhë afër makinerive. Për shembull, ishte kjo:

Nëse (shprehje) dog, dozero, dopos

Arsyeja ishte arkitektura e kompjuterit IBM, e cila kërkonte një komandë për të përdorur regjistrin e saktë: negativ, zero ose pozitiv. Afërsia me makinat u shfaq edhe në komandën e mirënjohur GOTO (më vonë u trashëgua nga Basic), që nënkuptonte një kalim të drejtpërdrejtë në një ose një komandë tjetër.

Duke iu rikthyer problemit të shprehjeve aritmetike, algoritmi i forcës brutale të stivit (d.m.th., analizimi i të gjithë vargut) nuk ishte një zgjidhje efikase, por vërtetoi se sa i thjeshtë dhe logjik mund të ishte zbatimi.

Gjuhë për të gjithë

Fortran 1 ishte një gjuhë shkencore e bazuar në numrin kompleks dhe operacionet me pikë lundruese. Ai nuk dinte as të përpunonte tekstin për ta bërë këtë, ai duhej ta kthente atë në kode të veçanta. Prandaj, Fortran doli të ishte i papërshtatshëm për biznes, ku u krijua posaçërisht gjuha Cobol.

Sintaksa e saj është thelbësisht e ndryshme, sa më afër anglishtes natyrore. Praktikisht nuk kishte aritmetikë, vetëm shprehje si:

Zhvendosni të ardhurat në zbritjen totale të shpenzimeve

Cobol është bërë personifikimi i distancës maksimale nga të menduarit makineri-aritmetik të mëparshëm në të menduarit universal njerëzor. Dhe më e rëndësishmja, tani ishte e mundur të punohej me tekst dhe regjistrime.

Gjuha tjetër themelore ishte Algol (Gjuha ALGOrithmic), e destinuar për raporte dhe botime shkencore. Për herë të parë, gjërat që ishin të natyrshme për ne u shfaqën në të:

  • dallimet ndërmjet caktimit:= dhe barazisë logjike =;
  • duke përdorur një cikli for me tre argumente: vlera fillestare, limiti, hapi;
  • Struktura e bllokut të programeve midis fillimit dhe fundit, kjo eliminoi nevojën për të përdorur GOTO.

Nga Algol erdhën C, C++, C#, Java dhe shumë gjuhë të tjera të njohura sot.

Balena e katërt e viteve 1950 ishte Lisp (gjuha e përpunimit LISt), e zhvilluar posaçërisht për t'i shërbyer inteligjencës artificiale. Karakteristika e tij kryesore ishte puna jo me të dhëna imperative, por me funksione. Për ta bërë këtë, John McCarthy duhej të siguronte shumë mekanizma për funksionimin normal: shtypje dinamike, shpërndarje automatike të memories, grumbullues mbeturinash. Në fund të fundit, ishte Lisp që u bë paraardhësi i gjuhëve të tilla si Python dhe Ruby, dhe ai vetë përdoret ende në mënyrë aktive në AI.

Kështu, vitet 1950 ndryshuan mënyrën se si mendojnë programuesit, lindën katër gjuhë themelore dhe e vendosën botën në rrugën e revolucionit kompjuterik.
Herën tjetër do të flasim për mënyrën sesi gjuhët dhe bota e programimit u zhvilluan në vitet 1960.

Nëse po mendoni të mësoni programim, gjuha e programimit që vendosni të zgjidhni fillimisht ka një rëndësi të madhe, ajo duhet të lidhet me atë që dëshironi të bëni në të ardhmen dhe të jetë e rëndësishme. Ndërsa programimi në përgjithësi nuk është për dembelët, disa gjuhë janë më të lehta për t'u mësuar se të tjerat dhe kanë komunitete që janë të përkushtuara për të mësuar dhe ofrojnë aftësi të dobishme për të mësuar gjuhë të tjera programimi.

Skema e përzgjedhjes

Ka pyetje që bëhen aq shpesh saqë krijohen diagrame të tëra për t'iu përgjigjur atyre. Këtu, për shembull, është një prej tyre, i dedikuar për zgjedhjen e gjuhës së parë të programimit.

Kur zgjidhni gjuhën tuaj të parë të programimit, duhet të vlerësoni me maturi faktorët e mëposhtëm:

  • Tregu i punës.
  • Perspektiva afatgjata për gjuhën.
  • Vështirësi për të mësuar një gjuhë.
  • Çfarë saktësisht mund të krijoni në procesin e studimit dhe, duke u treguar të tjerëve, të ruani motivimin.

Popullariteti dhe kërkesa

JavaScript

JavaScript, për të mos u ngatërruar me Java, është një gjuhë programimi që u zhvillua në vitet '90 nga Brendan Eich, dikur i Netscape Communications dhe tani i Fondacionit Mozilla. JavaScript është një nga teknologjitë themelore që fuqizon komunitetin e internetit siç e njohim ne. Mos u mashtroni, megjithëse JavaScript ekziston jashtë shfletuesit, ai ekziston kryesisht në kontekstin e aplikacioneve dhe shërbimeve të lidhura.

Gjuha në vetvete është dinamike dhe u jep programuesve fleksibilitetin për të përdorur stile programimi të orientuara nga objekti (pasi vetë gjuha është kryesisht e orientuar nga objekti), si dhe funksionale dhe imperative. Ai nxjerr pjesën më të madhe të sintaksës së tij nga C, dhe nëse planifikoni të bëni ndonjë zhvillim ueb në çfarëdo mënyre, mësimi i JavaScript duhet të jetë në listën tuaj.

Për fat të mirë, JavaScript është relativisht e lehtë për t'u mësuar, tashmë në shfletuesin tuaj për të luajtur me të, dhe megjithëse ka kohë që ekziston, po fiton shpejt popullaritet. Shumë prej jush që e kanë nominuar, kanë vënë re se fitimi juaj për para kur mësoni JavaScript është i madh, sepse mund ta përdorni menjëherë për të ndërtuar gjëra për ueb, gjë që mund të jetë shumë mirë ajo që shumë njerëz mësojnë të kodojnë.

Python

Unë gjithashtu mund të rekomandoj Python.

Pavarësisht nga një sërë problemesh të qenësishme historikisht për Python, ai vazhdon të jetë një mjet kryesor në një sërë nyjesh:

Impresionuese, apo jo? Sa i përket projekteve të mëdha dhe të njohura të shkruara në Python, këto janë monstra të tilla si:

Ju gjithashtu mund të gjeni në faqen tonë të internetit.

Kompjuterët kanë ende një kuptim të dobët të gjuhëve natyrore që njerëzit përdorin për të komunikuar, ose të paktën jo ende.

Nga ana tjetër, njerëzit nuk i kuptojnë mirë gjuhët e makinerisë. Prandaj, u krijuan gjuhë programimi që mbulojnë këtë boshllëk në të kuptuarit, në modelin e të menduarit midis njeriut dhe kompjuterit.

Gjuhët e programimit mund të jenë:

  • e thjeshtë,
  • komplekse dhe
  • e pakuptueshme (për shembull, grafik).

Historia e gjuhëve të programimit

Ka disa qindra gjuhë programimi në përdorim sot, por shumë të tjera nuk janë më në përdorim. Me kalimin e kohës, gjuhë të reja programimi u zhvilluan për detyra të reja.

Gjenerata zero

  • (elektro)
  • programuar nga struktura e pajisjes së tyre
  • shumë e specializuar,
  • Opsionet e programimit janë të kufizuara.

Jacquard tezgjah

Një shembull i makinave të tilla është një makinë gërshetimi jacquard me një pajisje të programueshme. Është bërë në 1804 nga francezi Joseph Marie Jacquard. Nga rruga, për nder të tij, pëlhura dekorative e modeluar quhet jacquard ose jacquard.

Duke përdorur makinën, ishte e mundur që lehtësisht dhe masivisht të prodhoheshin qëndisje në pëlhurë duke përdorur karta të shpuara, të paraqitura në figurën më poshtë:

Oriz. 1. Kartat me grusht për tezgjahun Jacquard

Kartat e grushtimit u programuan me një sekuencë veprimesh për makinat për të riprodhuar një dizajn në pëlhurë.

Makina e Babbage

Internet dhe Web

Janë shfaqur gjuhë të specializuara:

  • JavaScript.

Shumë faqe interneti janë shkruar duke përdorur PHP dhe JavaScript.

Disa gjuhë para-ekzistuese, me ardhjen e Internetit dhe Web-it, gjetën pika të reja dhe u orientuan në ueb:

  • Rubin,
  • Pynton,
  • Java.

Deri në vitet 2000, gjuhët e vjetra të programimit po vdesin gradualisht, të reja po shfaqen, por nuk ka një koncept të pranuar përgjithësisht se çfarë ndodh me këto gjëra.

Çdo gjuhë programimi është një gjuhë artificiale që ka ciklin e vet të jetës. Në mënyrë të ngjashme, sistemet operative të familjes Windows kanë gjithashtu ciklet e tyre të jetës: .

Cikli jetësor i një gjuhe programimi:

  • Krijim,
  • adoptimi i hershëm (përdorimi fillestar i gjuhës),
  • sukses (industrial),
  • zbehje, zëvendësim me gjuhë të tjera.

Në botën moderne, pjesa më e madhe e softuerëve është shkruar në 10-15 gjuhë, megjithëse gjatë gjithë kohës që dimë, janë krijuar më shumë se qindra gjuhë programimi. Janë 300 ose 400 gjuhë të regjistruara zyrtarisht.

Çfarë është një gjuhë programimi

Gjuha është

  • sintaksë (rregullat për shkrimin e programeve),
  • semantika (sjellja e elementeve që përfshihen në rregullat e shkrimit dhe janë të integruara në gjuhë),
  • runtime (ambient i ekzekutimit).

Sintaksa përcakton formën e paraqitjes tekstuale të programeve, pra si duhet të shkruhen, cilat fjalë përfshihen në gjuhë, si vendosen presjet, hapësirat, etj.

Sintaksa duke përdorur Lisp si shembull

Një nga gjuhët më të thjeshta të programimit që kanë një gramatikë formale është gjuha e listës LISP.

Oriz. 10. Programi LISP

LISP është një gjuhë shumë e vjetër që prodhon lista. Gramatika e një gjuhe të tillë është një gramatikë listash, të lexuara nga lart poshtë.

  • Në Lisp ka shprehje: mund të ketë një atom, ose një listë;
  • atomi është një numër ose simbol,
  • numër - një numër, domethënë me një shifër plus ose minus, të paktën një,
  • simboli - këto janë shkronja, sa herë të doni, mundeni edhe shumë herë,
  • list – listë, shprehje në kllapa më shumë se një herë.

Një program Lisp është një listë me lista. Nuk ka shenja pikësimi në Lisp, por ka kllapa. Mund të ketë programe kaq të gjata në Lisp, ku në fund ka 2-3 fletë, të përbëra vetëm nga kllapa mbyllëse.

Përkthyesi më i thjeshtë Lisp merr vetëm 19 rreshta! Asnjë gjuhë tjetër nuk e ka këtë luks.

Semantika

Nëse gramatika përshkruan format e paraqitjes: shkronjat, numrat, kllapat, atëherë semantika përshkruan se si funksionon programi, çfarë nënkuptojnë këto shkronja, numra, kllapa, si funksionojnë, ndërveprojnë me njëri-tjetrin, etj.

Opsionet për përfaqësimin e semantikës janë mjaft të kufizuara.

Semantika mund të jetë:

  • përshkruar në gjuhën natyrore, njerëzore. Shumë gjuhë mund të përshkruhen vetëm në këtë mënyrë. Në fakt, ky është rasti kryesor kur ka thjesht një dokument ku përshkruhet në rusisht ose anglisht se filani funksionon në atë mënyrë, një ekip bën këtë, një tjetër bën kështu e kështu, etj. ;
  • specifikuar zyrtarisht (në gjuhë të specializuara, për shembull, për disa llogaritje, sjellja e elementeve mund të përshkruhet zyrtarisht);
  • përcaktuar nga zbatimi origjinal (përdoret rrallë, por kjo është "shpresa e fundit" për një përshkrim kur semantika është shumë komplekse ose jo shumë e rëndësishme);
  • përshkruar nga një grup testesh (rastesh), domethënë, se duhet të funksionojë në këtë mënyrë, dhe kjo duhet të funksionojë në këtë mënyrë.

Semantika ndahet në dy pjesë:

  • statike,
  • dinamike.

Semantika statike

  • u jep kuptim ndërtimeve leksikore;
  • përcakton vlerat e pranueshme të variablave dhe parametrave;
  • përshkruan kufizimet sintaksore, për shembull, duke përdorur sintaksë nuk do të jetë e mundur të përshkruhet se nuk mund të shtoni vargje me numra.

Semantika dinamike ose frontale e ekzekutimit

  • përcakton natyrën e përgjithshme të ekzekutimit të programit;
  • përshkruan se si funksionojnë operacionet e integruara dhe bibliotekat e integruara. Kjo është pjesa kryesore e semantikës që nevojitet për të kuptuar se si do të jetojë dhe funksionojë programi pasi të jetë shkruar;
  • specifikon kërkesat për përkthyesin.

Sistemi i llojeve të të dhënave në gjuhët e programimit

Një pjesë e rëndësishme e semantikës është sistemi i tipit - një grup rregullash dhe shprehjesh për metodat që shkruhen në ideologjinë e gjuhës dhe se si ato ndërveprojnë me njëra-tjetrën.

Në mënyrë tipike, një gjuhë programimi ka një sistem të llojeve të të dhënave - vargje, numra, lista, etj. Ekziston, për shembull, gjuha Force, ku të gjitha të dhënat janë vetëm , me fjalë të tjera, ka gjuhë ku llojet e të dhënave nuk janë ndërtuar fare.

Nëse ekziston një sistem tipi, atëherë gjuhët e programimit mund të ndahen në dy klasa të pavarura, të cilat janë dhënë më poshtë.

Sistemi i tipit të të dhënave:

  • gjuhë e shtypur ose e pashtypur
  • shtypje statike ose dinamike
  • shtypje e fortë ose e dobët

Nëse shtypja është statike, atëherë llojet e të gjitha shprehjeve që shkruhen në program njihen deri në momentin e ekzekutimit të tij, pra kur përshkruhen funksionet, klasat, variablat, atëherë kushtet vendosen menjëherë ose parashikohen në mënyrë eksplicite në mënyrë që lloji i një ndërtimi të tillë është i njohur që në fillim.

Nëse shtypja është dinamike, atëherë, përkundrazi, lloji i objekteve të gjuhës së kontekstit është i panjohur deri në momentin e ekzekutimit, domethënë lloji i një funksioni ose ndonjë gjëje do të jetë i panjohur deri në fund.

Shtypja e fortë do të thotë që nëse një entitet ka një lloj dhe ai njihet, atëherë ky lloj mund të zëvendësohet, por vetë objekti ka një lloj fiks dhe nuk ndryshon.

Me shtypje të dobët, lloji i një objekti mund të jetë i ndryshëm në varësi të kontekstit dhe asaj që bëni me të.

Ju duhet të mbani gjurmët e sistemit të tipit të gjuhës. Për shkak të llojit të specifikuar gabimisht të vetëm një simboli, jo shumë të dukshëm në fillim të programit, lloji i të gjithë shprehjes ndryshon dhe për këtë arsye mund të rezultojnë gabime shumë të çuditshme.

Karakteristika tjetër e rëndësishme e gjuhës është

Paradigma e gjuhës së programimit

  • nga greqishtja - shabllon, shembull, mostër;
  • ky është një sistem idesh dhe konceptesh që përcaktojnë stilin e të shkruarit të programeve në këtë gjuhë - mënyra se si gjuha përfshin shkrimin e programeve në të (wiki);
  • gjuha “favorizon” një ose më shumë paradigma (multi-paradigma).

Paradigmat kryesore

  • imperativ: një program është një grup udhëzimesh vijuese që ndryshojnë gjendjen e brendshme të kompjuterit, të dhënat, etj. Domethënë, një program është një udhëzim;
  • funksional: një program është një grup funksionesh matematikore. Puna e programit është llogaritja e vlerës së funksioneve;
  • i orientuar nga objekti: zona e subjektit përshkruhet duke përdorur objekte me veti dhe metoda. Një program është një proces i ndërveprimit ndërmjet objekteve;
  • logjike: një program është një grup deklaratash rreth fushës lëndore. Puna e programit është të vërtetojë vërtetësinë e pohimeve në lidhje me këtë fushë lëndore.

Shpesh i njëjti problem praktik mund të arrihet duke përdorur ndonjë nga paradigmat e listuara më sipër.

Një pjesë tjetër e rëndësishme e një gjuhe që duhet marrë parasysh kur përdorni një gjuhë është Runtime - si funksionon gjuha.

Runtime - ekzekutimi i programit

Programi mund të ekzekutohet në mënyra të ndryshme:

  1. Mënyra më e thjeshtë dhe më naive për të ekzekutuar një program është interpretimi - leximi i kodit burimor në momentin e nisjes. Kështu funksionojnë gjuhët e lehta, të skriptimit. Vetë programuesi punon gjithashtu: kur ka shkruar një program, ai shikon me sytë e tij programin e tij dhe kupton se si do të funksionojë programi i tij dhe çfarë të bëjë;
  2. Një mënyrë e zakonshme për të ekzekutuar programet është përpilimi i tyre në kodin e makinës, një hap i veçantë përpara ekzekutimit të tyre. Ekziston një mjet i veçantë - një përpilues, ku lexohen burimet e programit, bëhet diçka me to, duke i kthyer ato në kode makinerie që janë të kuptueshme për sistemin aktual. Pastaj ky kod ekzekutohet drejtpërdrejt nga hardueri;
  3. Metoda hibride është përpilimi dhe ekzekutimi i bajtit në një makinë virtuale. Përpiluesi lexon kodin burimor dhe më pas prodhon bytekodin që ekzekutohet në makinën virtuale.

Të tre metodat e listuara janë të ndryshme dhe përdoren për qëllime të ndryshme. Këto teknika mund të kombinohen - përkthyesi mund të përpilojë disa pjesë të programit në fluturim për ta bërë atë të funksionojë më shpejt. Kodi i gjeneruar në mënyrë dinamike mund të interpretohet pa kompilim.

Përfaqësues të gjuhëve

gjuha C

– një nga më të njohurit, një nga më të rëndësishmit për sa i përket kodit të shkruar fizikisht në të, praktikisht është "gjithçka jonë".

Është krijuar në vitin 1972, krijuesit janë Dennis Ritchie dhe kolegët e tij. D. Ritchie krijoi gjithashtu sistemin Linux dhe shumë gjëra të tjera të dobishme.

  • imperativ,
  • përpiluar,
  • menaxhimi manual i kujtesës (duke përdorur disa operacione të integruara në gjuhë, ju duhet të shpërndani elementët e memories tek variablat dhe më pas t'i lironi ato kur nuk janë më të nevojshme).

Nga rruga, C është ende e rëndësishme sot, e përdorur për:

  • programimi i sistemit (për shembull, kerneli Linux është shkruar në C),
  • shtypja e numrave (të ashtuquajturit thërrmues numrash, domethënë për llogaritjet e mëdha ku shpejtësia është e rëndësishme),
  • programimi i mikrokontrolluesve dhe sistemeve të integruara.

C është një gjuhë e nivelit të ulët, mund të themi se është Assembler me fytyrë njeriu, sepse një person mund të konvertojë manualisht pothuajse çdo ndërtim C në Assembler dhe rezultatet do të jenë operacione mjaft të kuptueshme.

Programet C janë shumë kompakte. Ato nuk janë shumë më të mëdha sesa nëse programe të ngjashme do të shkruheshin në Kuvend. Për më tepër, zhvillimi në C është shumë më i shpejtë sesa në Asamble.

Prandaj, C tani përdoret për detyrat ku kërkohet performanca, menaxhimi i kujtesës është shumë i rëndësishëm dhe madhësia kompakte e vetë programit ka një rëndësi të madhe. Nëse keni një mikrokontrollues të vogël që është i integruar në ndonjë pajisje, atëherë programi për të ka shumë të ngjarë të shkruhet në Asamble ose në C.

Oriz. 11. Shembull i një programi të thjeshtë C.

Java

  • Krijuar në vitin 1995,
  • krijuesit: James Gosling dhe Sun Microsystems (Gosling ka punuar për këtë kompani).
  • I orientuar nga objekti, imperativ (C është imperativ, por JO i orientuar nga objekti),
  • shtypur në mënyrë strikte dhe statike,
  • byte-kompiluar me makinë virtuale,
  • pa akses në kujtesë, grumbullim automatik i plehrave (kjo e fundit funksionon mirë nëse ka një të tretën ose një të katërtën e memories së lirë).

Në vitet '90, JAVA fitoi popullaritet të madh si një gjuhë me shumë platforma. Pasi të keni shkruar një makinë virtuale për një platformë të caktuar, le të themi për Windows, Linux ose Mac, mund të ekzekutoni çdo program JAVA në të pa ripërpilim. Prandaj, gjuha ishte e njohur në epokën e internetit, kur kishte platforma të ndryshme (versione të ndryshme të Windows, Mac të ndryshëm). Programet JAVA funksionuan shpejt dhe mjaft mirë në platforma të ndryshme.

Përdoret për:

  • programimi i aplikacioneve, duke përfshirë programimin në ueb,
  • sistemet e integruara (nëse C përdoret për mikrokontrolluesit, atëherë JAVA përdoret për telefonat celularë, terminalet, etj.),
  • sisteme shumë të ngarkuara me një numër të madh përdoruesish (programe bankare, sisteme të kontrollit të trafikut ajror, etj.).

Duhet bërë një dallim midis specifikimeve të gjuhës Java dhe zbatimeve të ndryshme JVM:

  • Sun JDK (nga Sun, tani Oracle),
  • IBM JDK (shitet për para),
  • OpenJDK (plotësisht falas)
  • e kështu me radhë.

Oriz. 12. Një shembull i një programi të thjeshtë në JAVA.

Siç mund të shihet në Fig. 12, ju duhet të shkruani shumë letra për të kryer veprime të thjeshta. Java shpesh quhet Cobol e re sepse përmban të njëjtat veti negative që dikur e bënë Cobol një gjuhë të keqe.

Sidoqoftë, JAVA është shumë popullor, në veçanti, pjesa e klientit të sistemit operativ është shkruar në të.

Lisp

  • Ai me të vërtetë përfundon Lis t P rocessor (LisP);
  • krijuar në vitin 1958;
  • krijues: John McCarthy;
  • një gjuhë e pastër funksionale, pavarësisht sintaksës mjaft të çuditshme;
  • shtypur fort dhe dinamikisht;
  • përgjithësisht i interpretueshëm;
  • pa akses në memorie, grumbullim automatik i plehrave, i cili bie mbi interpretuesin dhe jo mbi makinën virtuale.

Përdoret për:

  • programimi dhe kërkimi shkencor;
  • inteligjenca artificiale – Lisp u krijua që në fillim duke kërkuar me inteligjencë. Në fund të viteve 1950 dhe në fillim të viteve 1960, ekzistonte një ndjenjë e fortë në qarqet shkencore se inteligjenca artificiale do të krijohej. Pastaj besohej se tiparet kryesore të inteligjencës artificiale do të ishin aftësia për të vepruar me gjuhë natyrale, tekst, lexuar, folur dhe bërë disa gjëra inteligjente. Lisp u krijua për të përpunuar të dhëna semantike nga teksti që ju lejon të bëni gjëra të tilla mirë;
  • çdo gjë, por, si rregull, nuk përdoret shumë në mënyrë efektive.

Gjuha Lisp, e zhvilluar në vitin 1958, ka pësuar shumë ndryshime.

Ka shumë zbatime dhe dialekte:

  • CommonLisp (i krijuar në vitet 1970) është një zbatim klasik që konsiderohet kryesori;
  • Skema (skema) është një dialekt i thjeshtuar që hedh disa gjëra nga CommonLisp dhe e bën më të lehtë për t'u bërë;
  • Clojure është një dialekt i Lisp për sa i përket gjuhës, por funksionon në majë të një makinerie JAVA, domethënë kompilohet në bytecode dhe ekzekutohet sikur të ishte një program JAVA.

Oriz. 13. Programi LISP: renditje me flluska

Python

  • Emërtuar pas shfaqjes britanike të viteve 1970 Monty Pynton's Flying Circus (shakatë janë të vjetra, por qesharake)
  • krijuar në vitin 1991
  • krijuesi – holandezi Guido van Rossum
  • gjuhë shumëparadigme, e orientuar nga objekti, imperativ, funksional
  • shtypur fuqishëm dhe dinamikisht
  • interpretuar, përpiluar nga byte me makinë virtuale (në varësi të zbatimit)

Përdoret për:

  • programim skripti
  • programimi në ueb
  • programimi shkencor (ekzistojnë paketa të mëdha, të fuqishme për të punuar me modelimin, probabilitetin, statistikat dhe fusha të tjera që kombinojnë përvojën e fituar në fusha të tjera)

Python është një specifikim i gjuhës. Ekzistojnë disa zbatime themelore:

  • CPython - kryesore (referencë)
  • Jython - në krye të JVM
  • PyPy – Python në Python ("Python në Python" punon më shpejt dhe më mirë se CPython dhe Jython)

Oriz. 14. Programi Python: Renditja me flluska

Python ka një veçori të rëndësishme - në vend të kllapave (të rrumbullakëta, kaçurrela), dhëmbëzat që përdorin hapësira përdoren për të theksuar blloqet e kodit dhe elementët strukturorë, gjë që është mjaft e pazakontë për të gjitha gjuhët. Përveç Python, pothuajse askush nuk e ka këtë veçori.

Zgjedhja e një gjuhe për detyrën

Si të zgjidhni një gjuhë për një detyrë kur e dini se çfarë duhet të bëni, por nuk e dini se çfarë?

Këshillë e rëndësishme: përdorni atë që dini të programoni. Kjo është shumë më mirë sesa të përdorni diçka që NUK dini si ta programoni.

Ekosistemi

Gjuha që dëshironi të përdorni nuk duhet të jetë një gjuhë "e zhveshur", ajo duhet të ketë një ekosistem që përfshin:

  • mjetet e zhvillimit (IDE miqësore për përdoruesit)
  • biblioteka dhe korniza të gatshme
  • mjetet e testimit për ekzekutimin e rasteve të testimit: kornizat dhe mjetet e testimit
  • sistemet e paketimit dhe vendosjes në mënyrë që kodi i shkruar të paketohet dhe postohet diku në mënyrë që të tjerët ta përdorin lehtësisht. Gjuha C nuk e ka këtë veçori, por gjuhët Ruby dhe Python e kanë.
  • komunitetit. Nuk ka nevojë të përdorni gjuhë të vdekura, sado të lezetshme të jenë ato. Nëse nuk keni kë të pyesni, do të mbeteni në një rrugë pa krye. Besohet se disa komunitete janë më miqësore, të tjerët më pak. Për shembull, komuniteti Ruby është i mrekullueshëm, por komuniteti Java është i tmerrshëm - as nuk keni nevojë të kërkoni asgjë atje.

Popullariteti

Është e vështirë të gjesh njerëz në një ekip që shkruajnë kodin në një gjuhë që përdoret rrallë, për shembull Eiffel. Nga ana tjetër, shumë njerëz do të dynden drejt një vendi bosh në gjuhën mega-popullore JAVA, në të cilën pragu i hyrjes është i ulët, por nuk do të jetë e lehtë të gjesh njerëz që e shkruajnë vërtet mirë.

Sa më popullore të jetë një gjuhë, aq më shumë biblioteka, komunitete, korniza dhe gjëra të tjera ka që rriten vetë nga lart.

Shkalla e të mësuarit

Pothuajse askush nuk e njeh plotësisht gjuhën. Ndërsa punoni, do t'ju duhet të mësoni gjuhën gjithnjë e më shumë. Disa gjuhë janë të lehta për t'u mësuar, ndërsa të tjerat janë shumë të vështira.

JAVA është një gjuhë e lehtë për t'u mësuar dhe e thjeshtë në aftësitë e saj, dhe më pas gjithçka ndërtohet jo përmes gjuhës, por përmes mjeteve.

Është e pamundur të mësosh plotësisht C++, sepse ka gjëra shumë komplekse me gjenerimin e kodit.

Nishimi i gjuhëve

Gjuhët specifike janë më të përshtatshme për zgjidhjen e problemeve të caktuara.

Shembulli 1: një aplikacion ueb që

  • ndërvepron me bazën e të dhënave
  • shërbimi i brendshëm në kompani
  • Ne kemi nevojë për zhvillim të shpejtë, sepse shefi e kërkon vërtet.

Për një detyrë të tillë, Python ose Ruby ka shumë të ngjarë të jenë të përshtatshme. Nuk ka nevojë ta bëni këtë në JAVA

Shembulli 2: sistemi i faturimit të operatorit celular

  • mijëra operacione në sekondë, shumë pagesa dhe transferta të ndryshme
  • besueshmëri e lartë dhe tolerancë ndaj gabimeve
  • fleksibilitet në konfigurim, diagnostikim i problemit

Në këtë rast, zgjedhja jonë është Java, C++, Erlang - gjuhë të pasura me mjete të pasura.

Shembulli 3: Kodi i kompjuterit në bord për një satelit

  • burime të kufizuara (vetëm megabajt memorie dhe shpejtësi shumë e ulët e orës)
  • kohë reale e vështirë në mënyrë që sateliti të mos humbasë orientimin, të prishet ose të shpërthejë
  • detyra rreptësisht të njohura, pa fleksibilitet dhe pa cilësime
  • një numër i madh llogaritjesh

Zgjedhja jonë është gjuhët e ngjashme me C dhe C (dhe madje edhe asembler), sepse ka shumë pak burime dhe këto kërkesa duhet të plotësohen.

Artikulli bazohet në video:

Si të zgjidhni gjuhën e duhur të programimit - Ivan Kalinin

Videoja u filmua në dhjetor 2014, megjithatë, të gjitha informacionet janë relevante dhe nuk kanë statut kufizimesh. Shumë materiale nga këndvështrimi i realiteteve të sotme janë me interes të padyshimtë, për shembull, që shkencëtarët në fund të viteve 1950 - fillimi i viteve 1960 besonin se inteligjenca artificiale ishte tashmë në prag dhe me ndihmën e saj së shpejti do të ishte e mundur të punonte në një kompjuter me gjuhë natyrore, e zakonshme, njerëzore.

Është shumë e rëndësishme të njohësh historinë e përgjithshme të gjuhëve të programimit dhe historinë e zhvillimit të gjuhëve të njohura dhe të panjohura. Në këtë artikull do të njiheni me këtë, por fillimisht le të kujtojmë "Çfarë është një gjuhë programimi?"

Gjuhë programimiështë një sistem shënimesh dhe rregullash që ju lejon të shkruani një program për zgjidhjen e një problemi në formën e një teksti vijues në një formë të përshtatshme për një person.

50-ta

Në vitet pesëdhjetë të shekullit të njëzetë, me ardhjen e kompjuterëve me tub vakum, filloi zhvillimi i shpejtë i gjuhëve të programimit. Programimi filloi me shkrimin e programeve direkt në formën e udhëzimeve të makinës (në kode, siç thonë programuesit). Kompjuterët, të cilët në atë kohë kushtonin dukshëm më shumë se zhvillimi i çdo programi, kërkonin kod shumë efikas.

Për ta bërë më të lehtë kodimin, u zhvillua orientimi në makinë, i cili bëri të mundur shkrimin e udhëzimeve të makinës në formë simbolike. Gjuha e Asamblesë varej nga sistemi i udhëzimeve të një kompjuteri të caktuar. Ishte mjaft i përshtatshëm për programimin e detyrave të vogla që kërkonin shpejtësi maksimale të ekzekutimit.

Megjithatë, projektet e mëdha ishin të vështira për t'u zhvilluar në gjuhën Asambleje. Problemi kryesor ishte se një program i shkruar në Asamble ishte i lidhur me arkitekturën e një kompjuteri të caktuar dhe nuk mund të transferohej në makina të tjera. Kur kompjuteri u përmirësua, të gjitha programet në Asamble duhej të rishkruheshin përsëri.

Pothuajse menjëherë me ardhjen e kompjuterëve, u zhvilluan gjuhë të nivelit të lartë, d.m.th. gjuhë që nuk varen nga një arkitekturë specifike. Për të ekzekutuar një program në një gjuhë të nivelit të lartë, fillimisht duhet të përkthehet në gjuhën e komandës së makinës. Një program i veçantë që kryen një përkthim të tillë quhet përkthyes ose përpilues.

Programi i përkthyer më pas ekzekutohet drejtpërdrejt nga kompjuteri. Ekziston gjithashtu mundësia e përkthimit të programit në një gjuhë të ndërmjetme që nuk varet nga arkitektura e një kompjuteri të caktuar, por, megjithatë, është sa më afër gjuhës së komandës së makinës.

Programi i gjuhës së ndërmjetme ekzekutohet më pas nga një program i veçantë i quajtur përkthyes. Është gjithashtu e mundur të përpilohet në fluturim, kur fragmenti i programit të ekzekutuar përkthehet nga një gjuhë e ndërmjetme në gjuhën e komandës së makinës menjëherë përpara ekzekutimit.

Në mesin e viteve 50, nën udhëheqjen e John Backus, gjuha e programimit algoritmik të nivelit të lartë FORTRAN u zhvillua për IBM. Përkundër faktit se tashmë kishte zhvillime në gjuhë që konvertonin shprehjet aritmetike në kodin e makinës, krijimi i gjuhës FORTRAN (FORmula TRANSlator), i cili siguroi mundësinë për të shkruar një algoritëm llogaritjeje duke përdorur deklarata të kushtëzuara dhe operatorë hyrës/dalës. pikënisja e epokës së gjuhëve të programimit të nivelit të lartë.

Si një alternativë ndaj gjuhës FORTRAN, e synuar fillimisht në arkitekturën IBM, ALGOL (Gjuha ALGOrithmic) u zhvillua nën udhëheqjen e Peter Naur në fund të viteve 50. Qëllimi kryesor i ndjekur nga zhvilluesit e kësaj gjuhe ishte pavarësia nga arkitektura specifike e sistemit kompjuterik.

Për më tepër, krijuesit e gjuhës ALGOL kërkuan të zhvillonin një gjuhë të përshtatshme për të përshkruar algoritme dhe duke përdorur një sistem shënimesh afër atij të miratuar në matematikë. FORTRAN dhe ALGOL ishin gjuhët e para të fokusuara në programimin kompjuterik.

60-ta

Në fund të viteve '60, nën udhëheqjen e Nayard dhe Dahl, u zhvillua gjuha Simula-67, duke përdorur konceptin e llojeve të të dhënave të përcaktuara nga përdoruesi. Në fakt, është gjuha e parë që përdor konceptin e klasave.

70-ta

Në mesin e viteve 70, Wirth propozoi gjuhën Pascal, e cila menjëherë u përdor gjerësisht. Në të njëjtën kohë, me iniciativën e Departamentit të Mbrojtjes së SHBA-së, filloi puna për krijimin e një gjuhe të nivelit të lartë të quajtur Ada - për nder të Ada Lovelace, një programuese dhe vajza e Lord Bajronit.

Krijimi i gjuhës filloi me përcaktimin e kërkesave dhe zhvillimin e specifikimeve. Katër grupe të pavarura punuan në projekt, por të gjithë përdorën Pascal si bazë. Në fillim të viteve 1980, u zhvillua përpiluesi i parë industrial për gjuhën Ada.

C zhvillimi

Gjuha universale e programimit u zhvillua në mesin e viteve 70 nga Denis Ritchie dhe Ken Thompson. Gjuha u bë një gjuhë programimi popullore e sistemeve dhe në një kohë përdorej për të shkruar kernelin e sistemit operativ UNIX.

Standardi i gjuhës C u zhvillua nga një grup pune ANSI në 1982. Standardi Ndërkombëtar për gjuhën C u miratua në vitin 1990. Gjuha C formoi bazën për zhvillimin e gjuhëve të programimit dhe Java.

Gjuha C bëri të mundur heqjen e vërtetë të Assembler gjatë krijimit të sistemeve operative. Për shembull, pothuajse i gjithë teksti i sistemit operativ Unix është shkruar në C dhe, kështu, nuk varet nga një kompjuter i caktuar.

Avantazhi kryesor i C është thjeshtësia dhe mungesa e zgjidhjeve pseudoshkencore. Mekanizmi për kalimin e parametrave në një funksion (vetëm sipas vlerës) përshkruhet thjesht dhe qartë. Një programues që krijon një program C e kupton gjithmonë qartë se si do të ekzekutohet ky program.

Koncepti i një treguesi, variablat statike dhe automatike (stack) të gjuhës C pasqyrojnë më nga afër strukturën e çdo kompjuteri modern, prandaj programet C janë efektive dhe të përshtatshme për korrigjimin e gabimeve.

Aktualisht, shumica dërrmuese e programeve janë shkruar në C dhe C++. Ndërfaqja e çdo sistemi operativ (i ashtuquajturi API - Application Program Interface), d.m.th. një grup thirrjesh sistemi i destinuar për zhvilluesit e aplikacioneve është zakonisht një grup funksionesh në gjuhën C.

Së bashku me gjuhët algoritmike, gjuhët e destinuara për përpunimin e informacionit të biznesit, si dhe gjuhët e inteligjencës artificiale, janë zhvilluar paralelisht. E para përfshin gjuhën COBOL (Gjuha e Përbashkët e Orientuar në Biznes) dhe e dyta përfshin gjuhët LISP (LISt Processing) dhe Prolog.

Gjuha LISP, e zhvilluar në vitet '60 nën udhëheqjen e J. McCarthy, ishte gjuha e parë funksionale e përpunimit të listave që gjeti aplikim të gjerë në teorinë e lojës.

90-ta

Në vitet '90, me përhapjen e internetit, u zgjeruan mundësitë e përpunimit të të dhënave të shpërndara, gjë që ndikoi edhe në zhvillimin e gjuhëve programuese. Janë shfaqur gjuhë të fokusuara në krijimin e aplikacioneve të serverit, të tilla si Perl, Gjuhët e përshkrimit të Dokumentit dhe XML.

Gjuhët tradicionale të programimit C++ dhe Pascal gjithashtu pësuan ndryshime: një gjuhë programimi filloi të nënkuptojë jo vetëm funksionalitetin e vetë gjuhës, por edhe bibliotekat e klasave të ofruara nga mjedisi i programimit.

Theksi u zhvendos nga specifikimi i vetë gjuhëve të programimit në standardizimin e mekanizmave për ndërveprimin e aplikacioneve të shpërndara. Janë shfaqur teknologji të reja - COM dhe CORBA, të cilat specifikojnë ndërveprimin e objekteve të shpërndara.

Fushat e aplikimit të gjuhëve të programimit

Aktualisht, gjuhët e programimit përdoren në një gamë të gjerë fushash të veprimtarisë njerëzore, të tilla si:

  • informatikë shkencore (gjuhët C++, FORTRAN, Java);
  • programimi i sistemit (gjuhët C++, Java);
  • përpunimi i informacionit (gjuhët C++, COBOL, Java);
  • inteligjenca artificiale (LISP, Prolog);
  • aktivitetet botuese (Postscript, TeX);
  • përpunimi i informacionit në distancë (Perl, PHP, Java, C++);
  • përshkrimi i dokumenteve (HTML, XML).

Bazuar në historinë e gjuhëve të programimit, mund të themi se me kalimin e kohës, disa gjuhë janë zhvilluar, kanë fituar veçori të reja dhe kanë mbetur në kërkesë, ndërsa të tjerat kanë humbur rëndësinë e tyre dhe sot janë, në rastin më të mirë, me interes thjesht teorik.


Mbylle