Gjuha e parë e programimit ishte emri dhe autori i saj. Si e zgjidhni gjuhën (e parë) të programimit? Ose si të bëni pyetjet e duhura? Runtime - ekzekutimi i programit

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 XX. 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 përshkroi me saktësi parimet bazë mbi të cilat do të ndërtohen të gjithë kompjuterët. Ideja u zhvillua nga kontesha Ada Lovelace (1815-1852). Vendi i tij 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 me efikasitet makinat janë algoritmet e përshkruara në kod.

Motori analitik i Babbage

Por programimi nuk mund të zhvillohej i izoluar nga kompjuterët. Pa to, është thjesht një lojë e mendjes, një 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, gjë që është pothuajse si programimi me një saldator.

Një problem tjetër ishte se njerëzit që ishin të përfshirë drejtpërdrejt në krijimin e kompjuterëve ishin përgjegjës për zhvillimin e gjuhëve - kryesisht inxhinierë dhe vetëm programues të detyruar. Prandaj, ata përfaqësonin gjuhën në formën e një sekuence të numrit të operacioneve dhe qelizave të kujtesës. Përafërsisht, dukej kështu:

01 x y - duke shtuar përmbajtjen e qelizës së kujtesës y në qelizën x;

02 x y - Procedurë e ngjashme zbritjeje.

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

01 10 15 02 11 29 01 10 11…

Sot, ky kod do t'ju duket i tmerrshëm, por në fillim të viteve 1950 ishte normë.


Kompjuter i viteve 1940

Programuesit duhej të studionin udhëzimet e makinës për një kohë të gjatë, pastaj të shkruanin me kujdes kodin, dhe pas përfundimit, ta kontrollonin përsëri disa herë - rreziku i gabimit ishte i madh. Problemet u shfaqën kur zhvillimi i makinerive u pengua nga mungesa e stafit për të shkruar programe. Kërkohej një vendim urgjent.

Koleksionisti i parë

Zgjidhja qëndronte në sipërfaqe: ishte e nevojshme të përktheheshin përcaktimet numerike 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ë komandën 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 e asamblesë. Me shumë mundësi, ajo u shfaq në të njëjtën kohë në disa vende në të njëjtën kohë. Për titullin dhe popullarizimin konsiderohen autorët e librit "Përgatitja e programeve për një kompjuter dixhital" nga Wilkes, Wheeler dhe Gill. Është e lehtë të merret me mend se emri Assembler vjen nga fjala angleze assemble - për të mbledhur, për të mbledhur, 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 çdo qelizë memorie. Kjo çoi në tre gjëra themelore:

  • Shfaqja e konceptit të një ndryshoreje simbolike ose thjesht një ndryshoreje.
  • Krijimi i tabelave me ndihmën e të cilave mund të gjeni korrespondencën e simboleve, operacioneve dhe qelizave të kujtesës.
  • Të kuptuarit se programimi mund të jetë një art.

Ky ishte katalizatori për një përparim gjuhësor.

Kompiluesit dhe paragjykimet

Asambleri bëri të mundur krijimin e transformimeve të thjeshta. Për shembull, përkthimi i 01 në ADD. Makro assembler e zgjeroi këtë ide dhe u dha programuesve mundësinë për të shembur disa udhëzime në një. Për shembull, nëse në një program vazhdimisht shtoni një vlerë në një vend memorie dhe kontrollonit nëse ishte plot, e gjithë kjo mund të shkruhet në makro INCRT dhe të përdoret 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ë paloseshin operacionet bazë në makro. Duhej një mjet që do t'i lironte programuesit nga kopjimi i vazhdueshëm. Kështu erdhi përpiluesi.

Tani e dimë që falë përpiluesit mund të krijojmë një gjuhë programimi me absolutisht çdo sintaksë, gjëja kryesore është që ai të përkthen saktë kodin tonë në udhëzime makine. 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 shtrenjtë, mund të kthente përparimin teknologjik disa vite më parë. Një pjesë e arsyes ishte emocioni - ishte e vështirë të largoheshe nga forma e udhëzimeve të makinerisë, për të humbur kontrollin e proceseve. Programuesit kishin frikë seriozisht se pas kompilimit nuk do të ishin në gjendje të kuptonin komandat e ekzekutueshme. Sot nuk e marrim me mend se si duket kodi i makinës, por në ato ditë dukej si një problem i rëndësishëm.

Sidoqoftë, përpiluesi ishte 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 i shkollës, ne e dimë rendin e llogaritjeve në shprehjen "2 + 3 * 5", por makina lexon kodin në një drejtim, kështu që përgjigja do të jetë e gabuar. Po, shembulli i mësipërm mund të zgjidhet duke krijuar një makro, por për shprehjet komplekse të nivelit "(2 + 3 * 5 + 4/6) * 10 + 16- (14 + 15) * 8" një qasje thelbësisht e ndryshme ishte kërkohet.

Epoka e një formacioni të ri

John Backus, krijuesi i Fortran, arriti të gjejë një algoritëm për analizimin e pirgut. 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 moshës 60 vjeçare, 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 pamë shumë versione: Fortran 1, II, 66, 77, 90, 95, 2008, dhe një tjetër do të dalë vitin e ardhshëm (Fortran 2015 ishte planifikuar, por për shkak të vonesave, emri mund të ndryshojë në 2018) . Ishte në Fortran që për herë të parë shumë atribute të një gjuhe të nivelit të lartë u zbatuan njëkohësisht, duke përfshirë:

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

Një tjetër trashëgimi e rëndësishme e Fortran, për të cilën 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 makinave. Për shembull, kishte diçka si kjo:

Nëse (shprehje) dong, dozero, dopos

Arsyeja ishte arkitektura e kompjuterit IBM, e cila kërkonte një udhëzim 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 stack-busting (d.m.th., analizimi i të gjithë vargut) nuk ishte një zgjidhje efikase, por vërtetoi se sa i thjeshtë dhe logjik mund të jetë zbatimi.

Gjuhë për të gjithë

Fortran 1 ishte një gjuhë shkencore e bazuar në numrin kompleks dhe operacionet me pikë lundruese. Ai as nuk dinte të përpunonte tekstin, për këtë 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 tij është thelbësisht e ndryshme, sa më afër anglishtes natyrore. Praktikisht nuk kishte aritmetikë, vetëm shprehje të formës:

Zhvendosni të ardhurat në zbritjen totale të shpenzimeve

Cobol u bë personifikimi i distancës maksimale nga mendimi i mëparshëm makineriaritmetik në atë universal. Dhe më e rëndësishmja, tani ishte e mundur të punohej me tekst dhe shënime.

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, e mbyllur midis fillimit dhe fundit, eliminoi nevojën për një GOTO.

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

Balena e katërt e viteve 1950 ishte Lisp (gjuha e përpunimit LISt), e krijuar posaçërisht për t'i shërbyer inteligjencës artificiale. Karakteristika e tij kryesore nuk është puna 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 ende përdoret në mënyrë aktive në AI sot.

Kështu, vitet 1950 ndryshuan mendësinë e programuesve, dhuruan katër gjuhë themelore dhe e vendosën botën në binarët e revolucionit kompjuterik.
Herën tjetër, le të flasim për mënyrën se si gjuhët dhe bota e programimit u zhvilluan në vitet 1960.

Konsistonte në instalimin e çelësave në panelin e përparmë të pajisjes kompjuterike. Natyrisht, vetëm programe të vogla mund të përpilohen në këtë mënyrë.

Me zhvillimin e teknologjisë kompjuterike, u shfaq një gjuhë makine, me ndihmën e së cilës një programues mund të vendoste udhëzime, duke operuar me qelizat e kujtesës, duke përdorur plotësisht aftësitë e makinës. Sidoqoftë, përdorimi i shumicës së kompjuterëve në nivelin e gjuhës së makinës është i vështirë, veçanërisht kur bëhet fjalë për I/O. Prandaj, ne duhej të braktisnim përdorimin e tij.

Për shembull, për të lexuar një bllok të dhënash nga një disketë, programuesi mund të përdorë 16 komanda të ndryshme, secila prej të cilave kërkon 13 parametra, si numri i bllokut në disk, numri i sektorit në pistë, etj. Kur disku operacioni përfundon, kontrolluesi kthen 23 vlera që tregojnë praninë dhe llojet e gabimeve që do të analizohen.

"Fjalët" në gjuhën e makinës quhen udhëzime, secila prej të cilave përfaqëson një veprim elementar për procesorin qendror, siç është, për shembull, leximi i informacionit nga një qelizë memorie.

Çdo model procesori ka grupin e vet të udhëzimeve të makinës, megjithëse shumica e tyre janë të njëjta. Nëse procesori A e kupton plotësisht gjuhën e procesorit B, atëherë procesori A thuhet se është i pajtueshëm me procesorin B. Procesori B do të thuhet se është i papajtueshëm me procesorin A nëse A ka udhëzime që nuk njihen nga procesori B.

Gjatë viteve '60, kërkesa për zhvillimin e softuerit u rrit dhe programet u bënë shumë të mëdha. Njerëzit filluan të kuptojnë se krijimi i softuerit ishte një detyrë shumë më e vështirë sesa e kishin imagjinuar. Kjo çoi në zhvillimin e programimit të strukturuar. Me zhvillimin e programimit të strukturuar, procedurat dhe funksionet ishin avancimi i radhës. Për shembull, nëse ekziston një detyrë që ekzekutohet disa herë, atëherë ajo mund të deklarohet si funksion ose procedurë dhe në ekzekutimin e programit thjesht thirret. Në këtë rast, kodi i përgjithshëm i programit bëhet më i vogël. Funksionet ju lejojnë të krijoni programe modulare.

Përparimi tjetër ishte përdorimi i strukturave, gjë që çoi në kalimin në klasa. Strukturat janë lloje të të dhënave të përbëra të ndërtuara duke përdorur lloje të tjera. Për shembull, struktura e kohës. Ai përfshin: orë, minuta, sekonda. Programuesi mund të krijojë një strukturë kohore dhe të punojë me të si një strukturë më vete. Një klasë është një strukturë që ka variablat dhe funksionet e veta që punojnë me këto variabla. Kjo ishte një arritje shumë e madhe në fushën e programimit. Tani programimi mund të ndahet në klasa dhe jo i gjithë programi, i përbërë nga 10'000 rreshta kodi, mund të testohet, por programi mund të ndahet në 100 klasa dhe secila klasë mund të testohet. Kjo e bëri shumë më të lehtë shkrimin e një produkti softuerik.

Gjuha e asamblesë

Në rastin kur është e nevojshme të keni një program efikas, në vend të gjuhëve të makinerisë, përdoren gjuhë të orientuara nga makina afër tyre - asemblerë. Njerëzit përdorin instruksione mnemonike në vend të udhëzimeve të makinës.

Por edhe puna me assembler është mjaft e ndërlikuar dhe kërkon trajnim të veçantë.

Programimi i strukturuar supozon struktura kontrolli të mirëpërcaktuara, blloqe programi, pa udhëzime kërcimi (GOTO), rutina të pavarura, rekursion dhe mbështetje të variablave lokale.

Thelbi i kësaj qasjeje qëndron në mundësinë e ndarjes së programit në elementët e tij përbërës.

Krijuar gjithashtu funksionale gjuhë (aplikative) (Shembull: Lisp - eng. Përpunimi i LISTAVE, 1958) dhe ngacmues truri gjuhët (shembull: Prolog - eng. Programimi në LOGic, 1972).

Megjithëse programimi i strukturuar prodhoi rezultate të jashtëzakonshme kur përdoret, edhe ai dështoi kur programi arriti një gjatësi të caktuar. Shkrimi i një programi më kompleks (dhe të gjatë) kërkonte një qasje të re ndaj programimit.

OOP

Si rezultat, parimet e programimit të orientuar nga objekti u zhvilluan në fund të viteve 1970 dhe në fillim të viteve 1980. OOP kombinon parimet më të mira të programimit të strukturuar me koncepte të reja të fuqishme, thelbi i të cilave quhet enkapsulim, polimorfizëm dhe trashëgimi.

Shembuj të gjuhëve të orientuara nga objekti janë Object Pascal, C ++, Java, etj.

OOP ju lejon të organizoni në mënyrë optimale programet duke e ndarë problemin në pjesët përbërëse të tij dhe duke punuar me secilën veç e veç. Një program në një gjuhë të orientuar nga objekti, që zgjidh një problem, në fakt përshkruan një pjesë të botës që lidhet me këtë problem.

Një shembull i regjistrimit të një programi në gjuhë të ndryshme

Gjuha e nivelit të lartë (Delphi)

X: = mëkat (y * Pi) + 1;

Asambleri X86 (bashkëprocesori)

Fldpi fmul qword ptr [Y] fsin fld1 fadd p st (1), st (0) fstp qword ptr [X]

Kodi i makinës (heksadecimal, çdo komandë fillon në një linjë të re)

D9 EB DC 0D D0 97 40 00 D9 FE D9 E8 DE C1 DD 1D 98 97 40 00

Kodi i makinës (përfaqësim binar)

11011001 11101011 11011100 00001101 11010000 10010111 01000000 00000000 11011001 11111110 11011001 11101000 11011110 11000001 11011101 00011101 10011000 10010111 01000000 00000000

Lidhjet


Fondacioni Wikimedia. 2010.

  • Ay-ay
  • Kabanov, Nikolay Alexandrovich

Shihni se çfarë është "Historia e gjuhëve të programimit" në fjalorë të tjerë:

    Historia e gjuhës programuese Python- Python u konceptua në vitet 1980, dhe krijimi i tij filloi në dhjetor 1989 nga Guido van Rossum në Qendrën për Matematikën dhe Shkenca Kompjuterike në Holandë. Gjuha Python u konceptua si një pasardhëse e gjuhës programuese ABC, e aftë për të trajtuar ... ... Wikipedia

    Afati kohor i gjuhëve të programimit- Listat e gjuhëve të programimit Sipas kategorisë Kronologjike Gjenealogjike Kronologjia e gjuhëve të programimit Një listë kronologjike e gjuhëve programuese. Përmbajtja ... Wikipedia

    Krahasimi i gjuhëve të programimit- Ky artikull duhet të wikified. Ju lutemi plotësoni atë sipas rregullave të formatimit të artikullit. Konventat ... Wikipedia

    Një histori e shkurtër e zhvillimit të gjuhëve të programimit- Me zhvillimin e teknologjisë kompjuterike lindën teknika të ndryshme programimi. Në çdo fazë, u krijua një qasje e re që ndihmoi programuesit me kompleksitetin në rritje të programeve. Përmbajtja 1 Fillimi i zhvillimit 2 Gjuha e asamblesë 3 Struktura ... Wikipedia

    Historia e logjikës- studion zhvillimin e shkencës për format dhe ligjet e të menduarit të saktë (logjikën). Shfaqja e logjikës si një analizë e zhvilluar e parimeve të konkluzionit lidhet ekskluzivisht me tre qytetërime lokale, përkatësisht: Kina, India dhe Antike ... ... Wikipedia

    Historia e Linux- Ky artikull ose seksion ka nevojë për rishikim. Ju lutemi përmirësoni artikullin sipas rregullave për shkrimin e artikujve ... Wikipedia

    Historia e softuerit të lirë- Shprehja "Software i lirë", ose softuer me burim të hapur, i referohet produkteve të shpërndara sipas kushteve të licencave liberale, të cilat i ofrojnë përdoruesit më shumë opsione sesa licencat tradicionale të softuerit ... ... Wikipedia

Një nga idetë më revolucionare që çoi në krijimin ishte ideja e shprehur në vitet 20 të shekullit të 19-të nga C. Babbage për një regjistrim paraprak të rendit të veprimeve të makinës -. Nga ky moment fillon historia e gjuhëve të programimit.

Një moment revolucionar në historinë e gjuhëve të programimit ishte shfaqja e një sistemi për kodimin e udhëzimeve të makinës duke përdorur karaktere speciale, i propozuar nga John Mauchley, një punonjës i Universitetit të Pensilvanisë. Sistemi i kodimit të Mauchly magjepsi një nga punonjëset e kompanisë së tij, Grace Murray Hopper, e cila ia kushtoi tërë jetën e saj kompjuterave dhe programimit.

Ndërsa punonte në kompjuterin Mark-1, G. Hopper dhe grupi i saj duhej të përballeshin me shumë probleme. Në veçanti, ata dolën me rutina.

Në agimin e historisë së gjuhëve të programimit, kodi i makinës ishte i vetmi mjet komunikimi midis një personi dhe një kompjuteri. Arritja e madhe e krijuesve të gjuhëve të programimit ishte se ata arritën ta bënin vetë kompjuterin të funksiononte si përkthyes nga këto gjuhë në kodin e makinës.

Në fund të viteve 40, përpara se G. Hopper t'i bashkohej firmës së John Mauchly, ky i fundit krijoi një sistem të quajtur "Short Code", i cili ishte një gjuhë programimi primitive e nivelit të lartë. Në të, programuesi shënoi problemin që do të zgjidhej në formën e formulave matematikore dhe më pas, duke përdorur një tabelë të veçantë, të përkthyer karakter pas karakteri, i shndërroi këto formula në kode me dy shkronja. Më pas, një program i veçantë kompjuterik i konvertoi këto kode në kod binar të makinës. Sistemi i zhvilluar nga J. Mauchly ishte në thelb një nga interpretuesit e parë primitivë.

Tashmë në 1951, Hopper krijoi përpiluesin e parë në botë, dhe ajo gjithashtu prezantoi vetë termin. Kompiluesi Hopper kryente funksionin e kombinimit të udhëzimeve dhe, gjatë përkthimit, bëri organizimin e nënprogrameve, përzgjedhjen, shndërrimin e udhëzimeve të nivelit të lartë (në atë kohë pseudokodet) në instruksione makinerie.

Mesi i viteve 50 karakterizohet nga një përparim i shpejtë në historinë e gjuhëve të programimit. Roli i programimit në instruksionet e makinës filloi të zvogëlohej. Një lloj i ri i gjuhës programuese filloi të shfaqej, duke vepruar si një ndërmjetës midis makinave dhe programuesve. I pari dhe një nga më të zakonshmet ishte Fortran, i zhvilluar nga një grup programuesish në IBM në 1954 (versioni i parë).

Në mesin e viteve 1960, Thomas Kurtz dhe John Kemeny, anëtarë të departamentit të matematikës në Kolegjin Dartmouth, krijuan një gjuhë të specializuar programimi që përbëhej nga fjalë të thjeshta angleze. Gjuha e re u emërua BAZË.

Në fillim të viteve '60, të gjitha gjuhët ekzistuese të programimit të nivelit të lartë mund të numëroheshin në njërën anë, por më vonë numri i tyre arriti në tre mijë. Sigurisht, shumica dërrmuese e gjuhëve nuk kanë marrë ndonjë shpërndarje të gjerë në historinë e gjuhëve të programimit; në praktikë, përdoren jo më shumë se dy duzina. Zhvilluesit i orientuan gjuhët e programimit në klasa të ndryshme detyrash, në një shkallë ose në një tjetër i lidhën ato me arkitektura specifike kompjuterike dhe zbatuan shijet dhe idetë personale. Në vitet '60 në historinë e gjuhëve të programimit, u bënë përpjekje për të kapërcyer këtë "përçarje" duke krijuar një gjuhë programimi universal. Mendimi i parë i këtij drejtimi ishte PL / I (Programm Language One), 1967. Më pas ALGOL-68 (1968) pretendoi këtë rol. Supozohej se gjuhë të tilla do të zhvillohen dhe përmirësohen dhe do të zëvendësojnë të gjitha të tjerat. Megjithatë, asnjë nga këto përpjekje deri më sot nuk ka qenë e suksesshme. Gjithëpërfshirja e gjuhës çoi në të pajustifikuara, nga pikëpamja e programuesit, kompleksitetin e konstruksioneve, joefikasitetin e përpiluesve.

Në fund të viteve 50, ALGOL (ALGOL, nga ALGOrithmic Language - gjuha algoritmike) u shfaq në historinë e gjuhëve të programimit. ALGOL është menduar për regjistrim, të cilat janë ndërtuar në formën e një sekuence procedurash të përdorura për të zgjidhur detyrat e caktuara.

Zhvillimi i idesë së Algol për strukturimin e zhvillimit të algoritmeve gjeti pasqyrimin e tij më të lartë në historinë e gjuhëve të programimit kur shkencëtari zviceran Niklaus Wirth krijoi gjuhën Pascal në fillim të viteve '70. Pascal fillimisht u zhvillua si një gjuhë arsimore dhe, në të vërtetë, tani është një nga gjuhët kryesore për mësimdhënien e programimit në shkolla dhe universitete.

Periudha nga fundi i viteve '60 deri në fillim të viteve '80 karakterizohet në historinë e gjuhëve të programimit nga një rritje e shpejtë e numrit të gjuhëve të ndryshme, të cilat, në mënyrë paradoksale, shoqëruan krizën e softuerit. Kjo krizë ishte veçanërisht e mprehtë për departamentin ushtarak amerikan. Në janar 1975, Pentagoni vendosi të rivendoste rendin në kaosin e përkthyesve dhe ngriti një komitet të ngarkuar me zhvillimin e një gjuhe universale. Gjuha fituese u quajt ADA.

Gjuha C (versioni i parë - 1972), e cila është shumë e popullarizuar në mesin e zhvilluesve të sistemeve softuerike (përfshirë), ka lënë një gjurmë të madhe në historinë e gjuhëve të programimit. C kombinon veçoritë e një gjuhe të nivelit të lartë dhe të një gjuhe të orientuar nga makina, duke i lejuar programuesit të aksesojë të gjitha burimet e makinës, gjë që gjuhët si Basic dhe Pascal nuk e bëjnë.

Për shumë vite, softueri është ndërtuar në bazë të gjuhëve operacionale dhe procedurale si Fortran, Basic, Pascal, Ada, C. Programimi klasik operacional dhe/ose procedural kërkon që programuesi të përshkruajë në detaje se si të zgjidhë një problem, d.m.th. formulimi i algoritmit dhe regjistrimi i veçantë i tij. Sidoqoftë, vetitë e pritshme të rezultatit zakonisht nuk specifikohen. Konceptet bazë të gjuhëve të këtyre grupeve janë operatori dhe të dhënat. Në një qasje procedurale, operatorët kombinohen në grupe - procedura. Programimi i strukturuar në tërësi nuk shkon përtej fushëveprimit të këtij drejtimi, ai vetëm rregullon gjithashtu disa teknika të dobishme të teknologjisë së programimit.

Një drejtim thelbësisht i ndryshëm në historinë e gjuhëve të programimit lidhet me metodologjitë (ndonjëherë të quajtura "paradigma") të programimit joprocedural. Këto përfshijnë programimin e orientuar drejt objektit dhe atë deklarativ. Një gjuhë e orientuar nga objekti krijon një mjedis në formën e shumë objekteve të pavarura. Çdo objekt sillet si një kompjuter i veçantë, ato mund të përdoren për të zgjidhur problemet si "kuti të zeza" pa u thelluar në mekanizmat e brendshëm të funksionimit të tyre. Nga gjuhët e programimit të objekteve të njohura në mesin e profesionistëve, duhet përmendur para së gjithash C ++; për një rreth më të gjerë programuesish preferohen mjedise si Delphi dhe Visual Basic.

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, ato kanë komunitete të dedikuara 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 skema të tëra për t'iu përgjigjur atyre. Për shembull, këtu është një prej tyre kushtuar zgjedhjes së gjuhës së parë të programimit.

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

  • Tregu i punës.
  • Perspektivat afatgjata të gjuhës.
  • Vështirësi në mësimin e një gjuhe.
  • Çfarë saktësisht mund të krijoni në procesin e të mësuarit dhe duke u treguar të tjerëve për t'ju mbajtur të motivuar.

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, më parë në pronësi të Netscape Communications dhe tani nga Fondacioni Mozilla. JavaScript është një nga teknologjitë themelore që bazohet komuniteti i internetit siç e njohim ne. Mos u mashtroni, JavaScript ekziston edhe jashtë shfletuesit, por 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 shumicën e sintaksës së tij nga C, dhe nëse planifikoni të bëni ndonjë zhvillim të uebit 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, tani në shfletuesin tuaj për të luajtur, dhe megjithëse ka qenë për një kohë, po fiton shpejt popullaritet. Shumë prej jush që e caktuan atë, kanë vënë re se fitimi i dollarit në mësimin e JavaScript-it është i madh sepse mund ta përdorni menjëherë për të ndërtuar gjëra për ueb-in, gjë që shumë mirë mund të jetë ajo që shumë njerëz mësojnë të programojnë.

Python

Unë gjithashtu mund të rekomandoj Python.

Pavarësisht nga një sërë problemesh historikisht të natyrshme në Python, ai vazhdon të jetë një mjet kryesor në një sërë fushash:

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.

Unë do t'i lejoj vetes të nxjerr në pah disa prirje të përgjithshme në zhvillimin e gjuhëve të programimit. Lexuesi i mprehtë ndoshta e ka marrë me mend tashmë atë që do të them shumë kohë më parë. Gjuhët po evoluojnë drejt abstraksionit gjithnjë e më shumë. Dhe kjo shoqërohet me një rënie të efikasitetit. Pyetja është: a ia vlen abstraksioni? Përgjigje: ia vlen. Ia vlen, sepse një rritje në nivelin e abstraksionit sjell një rritje të nivelit të besueshmërisë së programimit. Efikasiteti i ulët mund të luftohet duke ndërtuar kompjuterë më të shpejtë. Nëse kërkesat për memorie janë shumë të larta, mund ta rrisni sasinë. Kjo, natyrisht, kërkon kohë dhe para, por mund të zgjidhet. Por ka vetëm një mënyrë për t'u marrë me gabimet në programe: ato duhet të korrigjohen. Më mirë akoma, mos u angazhoni. Më mirë akoma, bëjini ato sa më të vështira që të jetë e mundur. Dhe pikërisht këtë synojnë të gjitha kërkimet në fushën e gjuhëve të programimit. Dhe ju duhet të pajtoheni me humbjen e efikasitetit.

Qëllimi i këtij rishikimi ishte një përpjekje për t'i dhënë lexuesit një ide për të gjithë shumëllojshmërinë e gjuhëve ekzistuese të programimit. Shpesh ekziston një mendim midis programuesve për "zbatueshmërinë e përgjithshme" të një gjuhe të caktuar (C, C ++, Pascal, etj.). Ky mendim lind për disa arsye: mungesa e informacionit, zakoni, inercia e të menduarit. U përpoqa të kompensoja pak faktorin e parë. Sa për pjesën tjetër, mund të them vetëm se një profesionist i vërtetë duhet të përpiqet vazhdimisht të përmirësojë kualifikimet e tij profesionale. Dhe për këtë nuk duhet të keni frikë të eksperimentoni. Po sikur të gjithë rreth tyre të shkruajnë në C / C ++ / VB / Pascal / Perl / Java / ... (nënvizoni të nevojshmen)? Pse të mos provoni diçka të re? Po sikur të rezultojë më efektive? Sigurisht, para se të vendosni të përdorni një gjuhë të re, duhet të studioni me kujdes të gjitha tiparet e saj, duke përfshirë praninë e një zbatimi efektiv, aftësinë për të bashkëvepruar me modulet ekzistuese, etj., Dhe vetëm atëherë të merrni një vendim. Sigurisht, gjithmonë ekziston rreziku për të shkuar në rrugën e gabuar, por ... Vetëm ai që nuk bën asgjë nuk gabon.

Dhe më tej. Kam dëgjuar dhe ndonjëherë kam marrë pjesë në diskutime si "gjuha A është më e mirë se gjuha B". Shpresoj që pas leximit të këtij rishikimi, shumë do të binden për pakuptimësinë e mosmarrëveshjeve të tilla. Maksimumi që mund të diskutohet janë avantazhet e një gjuhe ndaj një tjetre kur zgjidh një problem të caktuar në kushte të caktuara. Këtu, me të vërtetë, ndonjëherë ka diçka për të diskutuar. Dhe vendimi ndonjëherë është larg të qenit i qartë. Sidoqoftë, të argumentosh "në përgjithësi" është absurditet i qartë.

Ky artikull synon të jetë një përgjigje për ata që bërtasin "gjuha e X DUHET TË VDESË". Shpresoj se përgjigja doli të jetë mjaft e përshtatshme dhe bindëse. Shpresoj gjithashtu që artikulli të ketë, përveç vlerave polemike, edhe njohëse.



Artikuj të ngjashëm: