Matryoshka C. Sistemi gjuhësor i programit me shtresa

Le të përpiqemi të imagjinojmë kiminë pa Tabelën Periodike të Mendelejevit (1869). Sa elementë duhej të mbaheshin parasysh, dhe në asnjë rend të veçantë... (Pastaj - 60.)

Për ta bërë këtë, thjesht mendoni për një ose disa gjuhë programimi në të njëjtën kohë. Të njëjtat ndjenja, i njëjti kaos krijues.

Dhe tani ne mund të rijetojmë ndjenjat e kimistëve të shekullit të XNUMX-të, kur atyre iu ofruan të gjitha njohuritë e tyre, dhe pak më shumë, në një Tabelë Periodike.

Matryoshka C. Sistemi gjuhësor i programit me shtresa


Libri "Matryoshka C. Sistemi i shtresave të gjuhës së programit" paraqet të gjitha njësitë e gjuhës C me një shikim. Kjo ju lejon t'i organizoni ato, të korrigjoni informacionin e vjetëruar dhe madje të sqaroni vetë konceptin e programit.

Sot, informacioni i programimit ka nevojë për sistemim edhe më shumë se elementët kimikë 150 vjet më parë.

Domosdoshmëria e parë është mësimdhënia. Mendelejevi filloi të krijonte sistemin e tij kur u përball me pyetjen se me cilin element të fillonte të ligjëronte: O, H, N, Ai, Au... Në të njëjtën kohë, ishte më e lehtë për të - ai u mësonte kiminë më të mirëve - studentë të Universiteti i Shën Petersburgut. Dhe programimi tashmë mësohet në shkollë dhe së shpejti do të fillojë në kopshtin e fëmijëve.

Nevoja e dytë është një qasje shkencore. Me ndihmën e Tabelës Periodike u zbuluan elementë të rinj dhe u korrigjuan informacionet për të vjetrat. Ajo ndihmoi në krijimin e modelit të atomit (1911). Dhe kështu me radhë.

Nevoja e tretë është të qartësohet koncepti i një programi.

Programimi modern ka një këmbë të mbërthyer në vitet 50 të shekullit të XNUMX-të. Në atë kohë, programet ishin të thjeshta, por makinat dhe gjuhët e makinerive ishin komplekse, kështu që gjithçka rrotullohej rreth makinave dhe gjuhëve.

Tani gjithçka është e kundërta: programet janë komplekse dhe parësore, gjuhët janë të thjeshta dhe dytësore. Kjo quhet qasja e aplikuar, të cilën të gjithë duket se e njohin. Por studentët dhe zhvilluesit vazhdojnë të jenë të bindur se gjithçka është njësoj.

Që na kthen në leksionin e parë të Privatdozent Mendeleev. Çfarë t'u thuash studentëve të parë? Ku është e vërteta? Kjo është pyetja.

Libri "Matryoshka C" ofron përgjigjen e tij për këtë pyetje. Sistemi me shtresa i gjuhës së programit". Për më tepër, ai u drejtohet jo vetëm studentëve, por edhe programuesve të trajnuar, pasi jemi ata, pra ne, që duhet të kërkojmë të vërtetën dhe të ndryshojmë botëkuptimin.

Ajo që vijon është një përmbledhje e librit.

1. Hyrje

Në vitin 1969, u krijua gjuha C, e cila u bë gjuha themelore e programimit dhe ka mbetur e tillë për 50 vjet. Pse është kështu? Para së gjithash, sepse C është aplikuar gjuha që dha programin humane shikoni në vend makinë. Kjo arritje u sigurua nga gjuhët nga familja C: C++, JavaScript, PHP, Java, C# dhe të tjera. Së dyti, është një gjuhë e shkurtër dhe e bukur.

Sidoqoftë, vetë gjuha C zakonisht përzihet me montuesin e makinës, duke e komplikuar dhe shtrembëruar perceptimin e saj. Ekstremi tjetër është imponimi i një "filozofie" të caktuar në gjuhë: procedurale, objektore, funksionale, e përpiluar, e interpretuar, e shtypur etj. Kjo shton emocione, por nuk ndihmon për të përshkruar më mirë gjuhën.

E vërteta është në mes, dhe për gjuhën C është rreptësisht në mes midis perceptimit filozofik dhe atij makinerik.

Gjuha C nuk është e pavarur, ajo i bindet gjuhës së zakonshme të shkruar dhe në të njëjtën kohë kontrollon vetë gjuhën e asamblesë. Ky pozicion përshkruan Modeli i të folurit të programit, sipas të cilit programi ndahet në tre lloje vartëse: fjalim, kod, komandë. Gjuha C është përgjegjëse për llojin e dytë, kodin.

Pasi të keni përcaktuar vendin e gjuhës në program, mund të organizoni informacione në lidhje me të, gjë që bën Sistemi gjuhësor i programit me shtresa, që përfaqëson gjuhën C në frymën e sistemit periodik - në një faqe.

Sistemi është ndërtuar duke marrë parasysh bashkësitë e gjuhëve të aplikuara, që rrjedhin nga vartësia e të folurit të tyre. Një grup i njësive Matryoshka C ju lejon të përshkruani dhe krahasoni gjuhë të ndryshme, duke krijuar një seri Matryoshkash: C++, PHP, JavaScript, C#, MySQL, Python etj. Është e denjë dhe e saktë që gjuhë të ndryshme të përshkruhen me njësi të gjuhës themelore.

2. KAPITULLI 1. Modeli i të folurit të programit. Pastro C

Kapitulli i parë paraqet modeli i të folurit të programit, duke reflektuar një qasje të aplikuar. Sipas tij, programi ka tre lloje të dukshme vijuese:

  1. fjalimi - fjalimi i drejtpërdrejtë i programuesit që zgjidh problemin,
  2. koduar - kodimi i një zgjidhjeje në një formë matematikore në gjuhën C (ose ndonjë tjetër)
  3. dhe komanda - komandat direkte të makinës.

Modeli i të folurit shpjegon pse C është një gjuhë e thjeshtë dhe e kuptueshme. Xi është ndërtuar në imazhin dhe ngjashmërinë e fjalës njerëzore që është e njohur për ne.

Lloji i parë i programit është fjalimi i drejtpërdrejtë i programuesit. Fjalimi korrespondon me të menduarit njerëzor. Programuesit fillestarë shkruajnë programe duke përdorur fjalimin - së pari në Rusisht, pastaj hap pas hapi duke i përkthyer veprimet në një gjuhë kodi. Dhe pikërisht mbi këtë model u krijua gjuha C.

Përfundimet e programuesit, të shprehura në të folur, shndërrohen në një formë të koduar numerike. Ky transformim duhet të quhet reflektimi, meqenëse e folura dhe kodi kanë të njëjtën natyrë (reflektimi - lindja - gjinia). Kjo është mjaft e qartë nëse krahasojmë llojet e të folurit (në të majtë) dhe kodin (në të djathtë) të programit.

Matryoshka C. Sistemi gjuhësor i programit me shtresa

Është kurioze që reflektimi ndodh shumë thjeshtë - me vetëm dy lloje shprehjesh.

Megjithatë, përshkrimi modern i gjuhës C (nga viti 1978) nuk përmban një listë të mjaftueshme emrash as për të përshkruar gjuhën në përgjithësi, as për detyrën e reflektimit në veçanti. Prandaj, ne jemi të detyruar të bëhemi kreativë dhe të prezantojmë këta emra.

Zgjedhja e fjalëve duhet të jetë e saktë dhe e qartë. Kjo kërkonte një qasje të veçantë, e shprehur shkurtimisht si vijon: përdorim i rreptë i gjuhës amtare. Për anglezët do të ishte anglisht, por ne nuk jemi anglezë. Kështu që ne do të përdorim atë që kemi dhe do të përpiqemi të flasim rusisht.

Reflektimi kryhet nga dy lloje shprehjesh:

  1. llogaritjen (HF) - pasqyron një ndryshim në vetitë e një objekti. Vetia e një objekti shprehet me një numër, atëherë një veprim në një pronë është një veprim në një numër - një veprim.
  2. vartësia (Pch) - pasqyron një ndryshim në rendin e veprimeve. Prototipi i Pch është një fjali komplekse e të folurit, prandaj shumica e llojeve të Pch fillojnë me lidhëzat nënrenditëse "nëse", "përndryshe", "ndërsa", "për". Llojet e tjera të PC-ve i plotësojnë ato.

Nga rruga, a mund të besoni se në përshkrimin C nuk ka asnjë emër për shprehjet e llogaritjes - ato quhen thjesht "shprehje"? Pas kësaj, nuk do të jetë më për t'u habitur që nuk ka asnjë emër dhe asociacion për llojin e vartësisë, dhe në të vërtetë pakësimin e emrave, përcaktimeve dhe përgjithësimeve në përgjithësi. Kjo sepse K/R e famshme (“The C Language”, Kernighan/Ritchie, 1978) nuk është një përshkrim, por një udhëzues për përdorimin e gjuhës.

Megjithatë, do të doja të kisha një përshkrim të gjuhës. Prandaj ai ofrohet Sistemi gjuhësor i programit me shtresa.

3. KAPITULLI 2. Sistemi i shtresave. Shkurtimisht C

Çdo përshkrim duhet të jetë i saktë dhe jashtëzakonisht konciz. Në rastin e një gjuhe programi, një përshkrim ballor është i vështirë.

Këtu kemi një program. Ai përbëhet nga module. Modulet përbëhen nga nënprograme dhe koleksione (strukturë). Nënprogramet përbëhen nga shprehje individuale: deklarata, llogaritje, nënrenditje. Ka deri në dhjetë lloje të vartësisë. Nënrenditja lidh nënnivelet dhe nënprogramet. Ka edhe disa reklama. Megjithatë, deklaratat përfshihen jo vetëm në nënprograme dhe nënnivele, por edhe në module dhe koleksione. Dhe shumica e shprehjeve përbëhen nga fjalë që janë aq të vështira për t'u përshkruar sa që zakonisht jepen thjesht në dy lista - fjalë origjinale dhe të prejardhura, me të cilat do të njiheni gjatë mësimit dhe përdorimit të gjuhës. Le të shtojmë shenjat e pikësimit dhe një sërë shprehjesh të tjera për këtë.

Në një prezantim të tillë, nuk është e lehtë të kuptosh se kush i qëndronte kujt.

Një qasje e drejtpërdrejtë hierarkike për të përshkruar një gjuhë do të ishte tepër komplekse. Një kërkim rrethrrotullimi çon në një përshkrim të gjuhës bazuar në natyrën e të folurit dhe anën komanduese. Kështu, lindi Sistemi i Shtresave, duke përkuar pjesërisht me Sistemin Periodik të Mendelejevit, i cili është gjithashtu fije. Siç doli 42 vjet pas publikimit të tij (1869), periodiciteti i sistemit shoqërohet me elektronikë shtresat (1911, modeli i atomit Bohr-Rutherford). Gjithashtu, sistemet Layered dhe Periodic janë të ngjashme në renditjen tabelare të të gjitha njësive në një faqe.

Përshkrimi i njësive gjuhësore është i shkurtër - vetëm 10 lloje shprehjesh dhe 8 lloje të njësive të tjera, si dhe kuptimplotë dhe vizual. Edhe pse e pazakontë për njohjen e parë.

Njësitë gjuhësore ndahen në 6 nivele:

  1. njësitë - rreshtat e tabelave
  2. departamentet - grupe të veçanta të gjinive (pjesë të rreshtit të parë)
  3. gjini - qeliza (niveli kryesor i ndarjes)
  4. superspecie - ndarës të specieve (niveli i rrallë)
  5. llojet - formulat e njësive në fund të qelizës ose veçmas
  6. modelet - vetë njësitë (vetëm për fjalë)

Shembull fjalësh përshkruan fjalor - një nënsistem i veçantë i përbërë nga të njëjtat gjashtë nivele.

Komponenti i të folurit i gjuhës C është mjaft i dukshëm, megjithëse ende meriton përshkrim. Por pjesa komanduese e gjuhës lidhet pikërisht me kontrollin e kompilimit, gjatë të cilit krijohet lloji i tretë i programit - komanda. Këtu kemi ardhur te aspekti më emocionues i gjuhës C: bukuria.

4. KAPITULLI I MËPOSHTËM. Si i pashëm

Gjuha C është baza e programimit modern. Pse? Së pari, për shkak të korrespondencës më të madhe me të folurit. Së dyti, sepse i anashkaloi bukur kufizimet e përpunimit të numrave të makinës.

Çfarë saktësisht propozoi Xi? Imazhi dhe shtresa.

Fjala "imazh" është një përkthim i fjalës angleze "lloj", e cila vjen nga greqishtja "prototip" - "lloj". Në gjuhën ruse, fjala "lloj" nuk përcjell gurthemelin e konceptit që shprehet; për më tepër, ajo ngatërrohet me kuptimin ndihmës "lloj".

Fillimisht, imazhi zgjidhi një problem thjesht të llogaritjes së makinës, dhe më pas u bë një pistë për lindjen e gjuhëve të objekteve.

Shtresa zgjidh menjëherë disa probleme - si në makinë ashtu edhe të aplikuar. Prandaj, shqyrtimi do të fillojë me një imazh me një detyrë të vetme dhe do të kalojë në një shtresë me shumë detyra.

Një nga veçoritë e pakëndshme të programimit historik është se shumica e koncepteve, përfshirë ato themelore, jepen pa përkufizime. "Gjuha e programimit (emri i lumenjve) ka lloje të numrave të plotë dhe lundrues..." dhe ata gërvishteshin më tej. Nuk është e nevojshme të përcaktohet se çfarë është një "lloj" (imazh), sepse vetë autorët nuk e kuptojnë plotësisht këtë dhe do ta mbyllin atë "për hir të qartësisë". Nëse ngjiten në mur, ato do të japin një përkufizim të paqartë dhe të padobishëm. Ndihmon shumë të fshihesh pas fjalëve të huaja: për autorët rusë - prapa anglishtes (lloji), për anglezët - pas frëngjisht (nënrutinë), greqisht (polimorfizëm), latinisht (kapsulim) ose kombinime të tyre (polimorfizëm ad-hoc).

Por ky nuk është fati ynë. Zgjedhja jonë është përkufizime me një maskë të ngritur në rusisht të pastër.

imazh

imazh është një emër prefigurativ i një sasie, që përcakton 1) vetitë e brendshme të sasisë dhe 2) zgjedhjen e veprimeve për sasinë.

Fjala "lloj" (lloji) korrespondon me pjesën e parë të përkufizimit: "vetitë e brendshme të një sasie". Por kuptimi kryesor i imazhit është në pjesën e dytë: "përzgjedhja e operacioneve ndaj sasive".

Pika fillestare për futjen e një imazhi në C është një llogaritje normale, siç është operacioni i mbledhjes.

letër Matematika, qoftë e shkruar me dorë apo e shtypur, nuk bën shumë dallime midis llojeve të numrave, zakonisht duke supozuar se janë realë. Prandaj, operacionet e tyre të përpunimit janë të paqarta.

Dhoma e makinës Matematika i ndan në mënyrë rigoroze numrat në numra të plotë dhe në thyesa. Lloje të ndryshme numrash ruhen ndryshe në memorie dhe përpunohen nga udhëzime të ndryshme të procesorit. Për shembull, udhëzimet për shtimin e numrave të plotë dhe thyesave janë dy instruksione të ndryshme që korrespondojnë me dy nyje të ndryshme procesori. Por nuk ka asnjë komandë për shtimin e argumenteve të numrave të plotë dhe të pjesshëm.

Aplikuar matematika, pra gjuha C, ndan llojet e numrave, por kombinon veprimet: mbledhja për numrat e plotë dhe/ose thyesat shkruhet me një shenjë veprimi.

Një përkufizim i qartë i imazhit të konceptit na lejon të flasim patjetër për dy koncepte të tjera: madhësia и operacion.

Madhësia dhe funksionimi

Sasia - numri në procesim.

Operacion - përpunimi i vlerave të vlerave fillestare (argumentet) për të marrë numrin përfundimtar (totalin).

Madhësia dhe funksionimi janë të ndërlidhura. Çdo veprim është një sasi sepse ka një rezultat numerik. Dhe çdo vlerë është rezultat i transferimit të një vlere në/nga regjistri i procesorit, domethënë rezultati i operacionit. Pavarësisht nga kjo marrëdhënie, gjëja kryesore është mundësia e përshkrimit të tyre të veçantë, ndonëse me përsëritjen e një fjale në seksione të ndryshme të fjalorit, gjë që ndodh në MA3.

Qasja e makinës i ndau të gjithë numrat e përdorur nga programuesi në komandat и të dhënat. Më parë, të dy ishin numra, për shembull, komandat shkruheshin në kode numerike. Sidoqoftë, në gjuhët e aplikuara, komandat pushuan së qeni numra dhe u bënë fjalë и shenjat e veprimit. Vetëm "të dhënat" mbeten si numra, por është absurde të vazhdosh t'i quash kështu, sepse në kalimin nga një makinë në një këndvështrim matematikor, numrat janë sasi që ndahen me origjinalin (të dhënat) dhe përfundimtar (kërkohet). "Ditum i panjohur" do të tingëllojë budalla.

Ekipet u ndanë gjithashtu në dy lloje veprimesh: matematikore dhe shërbimi. Veprime - veprime matematikore. Do të kalojmë më vonë tek gjërat zyrtare.

Në gjuhët C, operacionet e zakonshme të letrës dhe makinerive të paqarta, ose të vetme, matematikore pothuajse universalisht bëhen të shumëfishta.

Operacionet e shumëfishta janë disa operacione me të njëjtin emër me lloje të ndryshme argumentesh dhe veprime të ndryshme, të ngjashme në kuptim.

Argumentet me numra të plotë korrespondojnë me një operacion të tërë, dhe argumentet fraksionale korrespondojnë me një operacion të pjesshëm. Ky ndryshim është veçanërisht i qartë gjatë operacionit të ndarjes, kur shprehja 1/2 jep një total prej 0, jo 0,5. Një shënim i tillë nuk korrespondon me rregullat e matematikës së letrës, por gjuha C nuk përpiqet t'i pajtohet me to (ndryshe nga Fortran) - ajo luan sipas saj aplikuar rregullat.

Në rastin e përzierjes së numrave të plotë dhe thyesave, përfshihet e vetmja e saktë hedhjen e vlerave të argumentit - transformimi selektiv i një vlere nga një imazh në tjetrin. Në të vërtetë, kur shtohet një numër i plotë dhe një numër thyesor, rezultati është i pjesshëm, kështu që imazhi i operacionit mbledh operacioni i konvertimit të një argumenti numër të plotë në një vlerë thyesore.

Mbeten një sërë operacionesh shumësDhe beqare. Operacione të tilla përcaktohen vetëm për një lloj argumentesh: mbetja e ndarjes - argumentet e numrave të plotë, grumbullimi (operacionet bitwise) - numrat e plotë natyrorë. Ma3 tregon shumësinë e operacioneve me shenja (#^) që tregojnë imazhet për të cilat është përcaktuar operacioni. Kjo është një veti e rëndësishme, por e anashkaluar më parë e çdo operacioni.

Të gjitha funksionet janë operacione arbitrare të njësisë. Përjashtim bëjnë operatorët - funksionet pa kllapa, e integruar në gjuhë (veprimet origjinale).

Asistencë

Asistencë - veprimi që shoqëron operacionin.

Nëse e konsiderojmë operacionin si veprim kryesor, atëherë mund të dallojmë dy shoqërues që ofrojnë operacionin dhe ndryshojnë prej tij. Këto janë 1) kontrolli i ndryshueshëm dhe 2) vartësia. Ky veprim quhet ndihma.

Këtu duhet të devijojmë dhe të themi veçmas për përkthimet ruse të teksteve të programimit. Një fjalë e re u fut në tekstin e K/R për të regjistruar veprimet Deklarata (shprehje), e cila u përpoq të ndante konceptet e një komande makinerie në veprime të ndryshme: 1) funksionimi, 2) deklarimi dhe 3) vartësia (të quajtura "konstruksione kontrolli"). Kjo përpjekje u varros nga përkthyesit rusë, duke zëvendësuar "shprehjen" me fjalën "operator", e cila:

  1. është bërë sinonim i fjalës së makinës "komandë",
  2. doli të jetë sinonim i shprehjes "shenjë veprimi",
  3. dhe gjithashtu mori një numër të pakufizuar vlerash shtesë. Dmth është kthyer në diçka të ngjashme me artikullin anglisht “uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

Merrni parasysh veprimet shoqëruese, ose ndihma.

Kontroll i ndryshueshëm

Kontroll i ndryshueshëm (UP) - krijimi/fshirja e qelizave të ndryshueshme.
UE ndodh në mënyrë implicite kur deklaron një ndryshore, e cila tashmë është shkruar për një arsye tjetër - për të treguar imazhin e vlerës. Vetëm një pamje menaxhohet në mënyrë eksplicite variabla shtesë duke përdorur funksionet malloc() dhe free().

Duhet të theksohet se veprimet e nënkuptuara janë më të përshtatshme për të shkruar, pasi ato nuk kërkojnë të shkruajnë asgjë, por janë më të vështira për t'u kuptuar - ato janë më të vështira për t'u marrë parasysh dhe interpretuar.

Nënshtrimi

Nënshtrimi — lidhni/çaktivizoni seksionet e shtresave.

Gjuha C ofroi një metodë të aplikuar të kontrollit të rendit të veprimeve, të ndryshme nga assembler - vartësi. Ai pasqyron dhe zhvillon një fjali të ndërlikuar të të folurit me një ndarje të qartë në pjesën kryesore (fjalë nënrenditëse) dhe në pjesën e nënrenditur (nënnivele/pjese nënrutinë).

Si deklarata ashtu edhe parashtrimi janë tërësisht të ndërtuara mbi konceptin avokat.

Avokat

Avokat është një grup i kufizuar selektiv i një niveli të shprehjeve.

Shtresa në mënyrë eksplicite dhe implicite mori disa detyra njëherësh:

  1. organizimin e programit
  2. kufizimi i dukshmërisë së emrave (në mënyrë implicite),
  3. menaxhimi i variablave (qelizat e memories) (të nënkuptuar),
  4. përcaktimi i fjalive të nënrenditura për nënrenditjen,
  5. përkufizimet e funksioneve dhe përzgjedhjeve dhe të tjera.

Nuk kishte koncept të shtresës në gjuhët e makinerisë, kështu që nuk shfaqej në K/R, dhe nëse diçka nuk ishte aty, atëherë futja e saj në librat pasues do të ishte herezi dhe mendim i lirë. Prandaj, koncepti i një shtrese nuk u shfaq fare, megjithëse është jashtëzakonisht i dobishëm dhe mjaft i dukshëm.

Pa një shtresë, është e pamundur të shpjegohen shkurtimisht dhe qartë shumë nga veprimet dhe rregullat e programit. Për shembull, pse goto është aq e thjeshtë sa tre kopekë e keqe, dhe koha e ndërlikuar është e mirë. Mund të betohesh vetëm i pafuqishëm, siç bëri Dijkstra ("aftësia e programuesve është një funksion që varet në mënyrë të kundërt nga shpeshtësia e shfaqjes së deklaratave goto në programet e tyre." Me pak fjalë, vetëm dhitë përdorin goto. Niveli i justifikimit është Zoti.) Vërtetë, kjo nuk është aq e frikshme nëse librat tuaj Ne nuk duhet të shpjegojmë asgjë fare, por, siç e kemi thënë tashmë, ky nuk është fati ynë.

Meqë ra fjala, mund të supozohet se Dan Ritchie e la goto pikërisht si një çelës për të kërkuar ndonjë koncept të paemërtuar, sepse nuk kishte nevojë apo bukuri në shprehjen goto. Por kishte nevojë për një shpjegim të thjeshtë dhe të kuptueshëm të parimeve të reja të gjuhës, të cilat vetë Richie nuk donte t'i jepte dhe që bazohen pikërisht në konceptin avokat.

Devijimi

Devijimi — ndryshimi i vetive të zakonshme të emrit të ri.

Devijimi më i rëndësishëm lidhet pikërisht me vetitë e shtresës së programit dhe përshkruhet me një fjalë "statike", e cila ka një kuptim të ndryshëm në çdo lloj shtrese.

5. KAPITULLI I FUNDIT. Përbashkësia e gjuhëve të aplikuara

Gjuhët e aplikuara janë figurative gjuhët (që kanë një imazh, "të shtypur"). Ato bazohen në përdorimin e qartë ose të nënkuptuar të imazhit. Për më tepër, këtu shfaqet përsëri një kontradiktë: një imazh i qartë është më i kuptueshëm, por më pak i përshtatshëm, dhe anasjelltas.

Matryoshka C. Sistemi gjuhësor i programit me shtresa

(Shfaqja e tabelës nuk është dorëzuar ende, kështu që tabela shfaqet me një foto.)

Pas C, zhvillimi i gjuhëve të aplikuara mori rrugën e rritjes së figurativitetit të tyre. Më e rëndësishmja për të kuptuar imazhet e larta është pasardhësi i drejtpërdrejtë i C - gjuha C++. Ai zhvillon idenë e një përzgjedhje arbitrare të operacioneve për sasitë dhe e mishëron atë në bazë të përzgjedhjes së shprehjes sintetike, e cila merr një emër të ri - objekt. Sidoqoftë, C++ nuk është aq konciz dhe shprehës sa C për shkak të mbingarkesës së llojeve të reja të koleksionit dhe rregullave të lidhura me to. Nga rruga, le të flasim për "mbingarkimin".

Mbingarkesa dhe polimorfizmi

Fjala "mbingarkesë" është një term i vjetëruar i mësimit të makinës për krijimin operacione të shumta.

Programuesit e makinerive (sistemit). pluralitet operacionet mund të jenë fare të bezdisshme: “Çfarë do të thotë kjo shenjë (+): shtimi i numrave të plotë, shtimi i thyesave apo edhe zhvendosja?! Në kohën tonë nuk shkruanin kështu!” Prandaj konotacioni negativ i fjalës së zgjedhur ("i tepërt", "i lodhur"). Për një programues aplikacioni, operacionet e shumta janë gurthemeli, arritja kryesore dhe trashëgimia e gjuhës C, aq e natyrshme sa që shpesh nuk njihen.

Në gjuhën C++ pluralitet i shtrirë jo vetëm në operacionet origjinale, por edhe në metodat e funksioneve - si individuale ashtu edhe të kombinuara në klasa. Me metoda të shumta erdhi aftësia për t'i kapërcyer ato në klasa të zgjeruara, e cila u quajt në mënyrë të paqartë "polimorfizëm". Kombinimi i polimorfizmit dhe mbingarkesës prodhoi një përzierje shpërthyese që u nda në dy polimorfizma: "e vërtetë" dhe "ad-hoc". Është e mundur të kuptohet kjo vetëm pavarësisht nga emrat e caktuar. Rruga drejt reklamës është e shtruar me emra të huaj.

Një deklaratë e formës "mbingarkesa" shprehet më mirë në fjalë njoftim shtesë — shtimi i një deklarate të një funksioni me të njëjtin emër me argumente të një imazhi të ndryshëm.

Një deklaratë e formës "polimorfizëm" quhet më mirë rishpallje — një deklaratë e mbivendosur në një shtresë të re shtesë të një funksioni me të njëjtin emër me argumente të të njëjtit imazh.

Atëherë do të jetë e lehtë të kuptohet se të njëjtat metoda të imazheve (argumenteve) të ndryshme - shpallur shtesë, dhe një imazh - rishpallur.

Fjalët ruse vendosin.

Pistë

Shqyrtimi i koncepteve të gjuhëve shumë figurative konfirmon rëndësinë e një përkufizimi të qartë të koncepteve themelore. Me C të përshkruar saktë, mësimi i gjuhëve me figura të larta do të jetë i lehtë dhe i këndshëm.

Kjo është veçanërisht e rëndësishme për gjuhë të nënkuptuara shumë figurative (PHP, JavaScript). Për ta, rëndësia e objekteve (imazhe të përbëra) bëhet edhe më e lartë se në C++, por vetë koncepti i një imazhi bëhet i nënkuptuar dhe i pakapshëm. Nga pikëpamja e komoditetit janë bërë më të thjeshta, por nga pikëpamja e të kuptuarit janë bërë më të vështira.

Prandaj, duhet të filloni të mësoni gjuhë programimi me gjuhën C dhe të ecni më tej në rendin në të cilin shfaqen gjuhët e familjes C.

E njëjta gjë vlen edhe për përshkrimin e gjuhëve. Gjuhë të ndryshme kanë të njëjtin grup gjinish ose më të vogla se gjuha C. Numri i llojeve dhe mostrave mund të ndryshojë në të dy drejtimet: C++ ka më shumë lloje se C, ndërsa JavaScript ka më pak.

Gjuha MySQL meriton përmendje të veçantë. Duket se nuk ka asgjë të përbashkët, por ai përshkruhet në mënyrë të përsosur nga Matryoshka, dhe njohja me të bëhet më e shpejtë dhe më e lehtë. E cila është e rëndësishme, duke pasur parasysh rëndësinë e saj për ueb - rruga e ngrënies së programimit modern. Dhe ku ka MySQL, ka SQL të tjera. Epo, të gjitha llojet e Fortran-Pascal-Python-ëve përshkruhen gjithashtu nga Matryoshka, sapo të kenë në dorë.

Pra, gjëra të mëdha na presin - një përshkrim i aplikuar i gjuhës C dhe një përshkrim i unifikuar i gjuhëve që e ndjekin atë. “Qëllimet tona janë të qarta, detyrat tona janë të përcaktuara. Shkoni në punë, shokë! (Duartrokitje e stuhishme, e zgjatur, e kthyer në ovacione. Të gjithë ngrihen në këmbë.)"

Mendimet tuaja do të dëgjohen me shumë vëmendje, ndihma juaj në krijimin e faqes së internetit të kukullave fole do të merret me mirënjohje të madhe. Informacione më të plota rreth librit gjenden në faqen e internetit, të fshehura me zgjuarsi në Matryoshka C.

Burimi: www.habr.com

Shto një koment