Matryoshka C. Sîstema zimanê bernameya qatkirî

Werin em hewl bidin ku kîmyayê bêyî Tabloya Peryodîk a Mendeleev (1869) xeyal bikin. Diviyabû çend hêman li ber çavan bihata girtin, û ne rêzek taybetî... (Piştre - 60.)

Ji bo vê yekê, tenê yek an çend zimanên bernamekirinê yekcar bifikirin. Heman hest, heman kaosa afirîner.

Û niha em dikarin hestên kîmyazanên sedsala XNUMX-an ji nû ve zindî bikin, dema ku wan hemî zanîna xwe, û hinekî bêtir, di yek Tabloya Peryodîk de pêşkêş kirin.

Matryoshka C. Sîstema zimanê bernameya qatkirî


Pirtûka "Matryoshka C. Pergala qatkirî ya zimanê bernameyê" hemî yekeyên zimanê C bi çavek xuya dike. Ev dihêle hûn wan birêxistin bikin, agahdariya kevnar rast bikin, û tewra jî têgeha bernameyê zelal bikin.

Îro, agahdariya bernamesaziyê ji hêmanên kîmyewî 150 sal berê bêtir pêdivî bi pergalkirinê heye.

Pêdiviya yekem hînkirin e. Mendeleev dest bi afirandina pergala xwe kir dema ku rû bi rû mabû ku bi kîjan elementê re dest bi dersdayînê bike: O, H, N, Ew, Au... Di heman demê de, ji wî re hêsantir bû - wî fêrî kîmyayê kir herî baş - xwendekarên Petersburgê Zanîngeha St. Û bername jixwe li dibistanê tê hînkirin û dê di demek nêzîk de li baxçeyê zarokan dest pê bike.

Pêdiviya duyemîn nêzîkatiyek zanistî ye. Bi alîkariya Tabloya Peryodîk hêmanên nû hatin keşfkirin û agahiyên li ser yên kevin hatin rastkirin. Wê alîkariya afirandina modela atomê kir (1911). Wate ya vê çîye.

Pêdiviya sêyemîn jî zelalkirina têgeha bernameyê ye.

Bernamesaziya nûjen yek lingê xwe di salên 50-î yên sedsala XNUMX-an de asê kiriye. Wê demê, bername hêsan bûn, lê makîne û zimanên makîneyê tevlihev bûn, ji ber vê yekê her tişt li dora makîne û zimanan dizivire.

Naha her tişt berevajî ye: bername tevlihev û seretayî ne, ziman sade û navîn in. Ji vê re nêzîkatiya sepandî tê gotin, ku her kes pê dizane. Lê xwendekar û pêşdebiran berdewam dikin ku bawer bin ku her tişt yek e.

Ku me vedigerîne dersdana yekem a Privatdozent Mendeleev. Çi ji xwendekarên pêşîn re bêjin? Rastî li ku ye? Pirs ev e.

Pirtûka "Matryoshka C" bersiva vê pirsê dide. Pergala qatkirî ya zimanê bernameyê." Wekî din, ew ne tenê ji xwendekaran re, lê di heman demê de ji bernamenûsên perwerdekirî re jî tê şandin, ji ber ku ew, ango em in, yên ku divê li rastiyê bigerin û nêrîna cîhanê biguhezînin.

Ya ku li jêr tê kurteya pirtûkê ye.

1. Destpêk

Di sala 1969 de, zimanê C hate afirandin, ku bû zimanê bingehîn yê bernamekirinê û 50 sal maye. Çima wisa ye? Berî her tiştî, ji ber ku C ye sepandin zimanê ku bername daye mirovan li şûna dîtin makîne. Ev destkeft ji hêla zimanên ji malbata C ve hatî ewleh kirin: C++, JavaScript, PHP, Java, C# û yên din. Ya duduyan jî zimanekî kurt û xweş e.

Lêbelê, zimanê C bixwe bi gelemperî bi berhevkarê makîneyê re tê tevlihev kirin, bi vî rengî têgihîştina xwe tevlihev û xirab dike. Aliyê din jî ferzkirina “felsefeyekê” li ser ziman e: prosedurî, nesne, fonksiyonel, berhevkirin, şîrovekirin, tîpkirin û hwd. Ev hestan zêde dike, lê alîkarî nade ku ziman çêtir rave bike.

Rastî di navîn de ye û ji bo zimanê C di navbera têgihîştina felsefî û makîneyê de bi hişkî di navîn de ye.

Zimanê C ne serbixwe ye, guh dide zimanê nivîskî yê asayî û di heman demê de zimanê meclîsê bixwe jî kontrol dike. Ev helwest diyar dike Modela axaftinê ya bernameyê, li gorî ku bername li sê celebên jêrîn dabeş dibe: axaftin, kod, ferman. Zimanê C ji bo duyemîn, celebê kodê berpirsiyar e.

Piştî ku di bernameyê de cîhê ziman diyar kir, hûn dikarin di derheqê wî de agahdariya ku çêdike organîze bikin Sîstema zimanê bernameya qatkirî, temsîlkirina zimanê C bi ruhê pergala peryodîk - li ser yek rûpel.

Pergal li ber çavan tê avakirin civakên zimanên sepandî, ji bindestiya axaftina wan derdikeve. Yek komek yekîneyên Matryoshka C dihêle hûn zimanên cihêreng danasînin û bidin ber hev, rêzek Matryoshka biafirînin: C++, PHP, JavaScript, C#, MySQL, Python û hwd. Hêjayî û rast e ku zimanên cuda bi yekeyên zimanê bingehîn têne vegotin.

2. BEŞA 1. Modela axaftinê ya bernameyê. C zelal

Beşa yekem pêşkêş dike modela axaftina bernameyê, nêzîkatiyek sepandî nîşan dide. Li gorî wî, bername sê celeb rêzikên eşkere hene:

  1. axaftin - axaftina rasterast a bernameçêker ku pirsgirêkê çareser dike,
  2. kodkirî - kodkirina çareseriyek di formek matematîkî de bi zimanê C (an jî bi rengek din)
  3. û ferman - fermanên makîneya rasterast.

Modela axaftinê diyar dike ku çima C zimanek hêsan û têgihîştî ye. Xi di wêne û mîna axaftina mirovî ya ku ji me re nas e hatî çêkirin.

Yekem cureyê bernameyê axaftina rasterast a bernameçêker e. Axaftin bi ramana mirovan re têkildar e. Bernamesazên destpêk bernameyan bi karanîna axaftinê dinivîsin - pêşî bi rûsî, dûv re gav bi gav çalakiyan vediguhezînin zimanek kod. Û tam li ser vê modelê ye ku zimanê C hate afirandin.

Encamên bernameçêker, ku di axaftinê de têne diyar kirin, di forma hejmarî ya kodkirî de têne veguheztin. Divê ev veguherîn bête gotin biriqanî, ji ber ku axaftin û kod xwediyê heman cewherê ne (raman - zayin - zayend). Heke em cûreyên bernameyê (li milê çepê) û kodê (li milê rastê) bidin ber hev, ev yek pir eşkere ye.

Matryoshka C. Sîstema zimanê bernameya qatkirî

Meraq e ku refleks pir hêsan pêk tê - tenê bi du celeb îfadeyan.

Lêbelê, danasîna nûjen a zimanê C (ji 1978-an vir ve) navnîşek navan têr nake, ne ji bo danasîna ziman bi gelemperî, hem jî ji bo karê refleksê bi taybetî. Ji ber vê yekê, em neçar in ku afirîner bin û van navan bidin nasîn.

Hilbijartina peyvan divê rast û zelal be. Vê yekê nêzîkatiyek taybetî hewce dikir, ku bi kurtî wiha hate vegotin: karanîna hişk a zimanê zikmakî. Ji bo Îngilîzan ew ê Îngilîzî be, lê em ne Îngilîzî ne. Ji ber vê yekê em ê tiştên ku hene bikar bînin û hewl bidin ku bi rûsî biaxivin.

Refleksyon bi du cureyên îfadeyan pêk tê:

  1. hesabkirînî (HF) - guherînek di taybetmendiyên tiştekê de nîşan dide. Taybetmendiya heyberê bi jimarekê tê diyar kirin, wê demê kiryarek li ser taybetmendiyekê kiryarek li ser jimarekê ye - operasyonek.
  2. bindestî (Pch) - guherînek di rêza çalakiyan de nîşan dide. Prototîpa Pch hevokek tevlihev a axaftinê ye, ji ber vê yekê pir celebên Pch bi hevgirêdanên jêrîn "eger", "wekî din", "dema", "ji bo" dest pê dikin. Cûreyên din ên PC-ê wan temam dikin.

Bi awayê, hûn dikarin bawer bikin ku di danasîna C de navek ji bo îfadeyên hesabkirinê tune - ji wan re bi tenê "îfade" tê gotin? Piştî vê yekê, wê êdî ne ecêb be ku nav û komeleyek ji bo celebê bindestiyê û bi rastî jî kêmbûna nav, pênas û bi giştî kêmbûna navan. Ji ber ku K/R-ya navdar (“Zimanê C”, Kernighan/Ritchie, 1978) ne ravekirinek e, lê rêbernameyek e ku meriv ziman bikar bîne.

Lê dîsa jî ez dixwazim ravekirina ziman hebe. Ji ber vê yekê ew tê pêşkêş kirin Sîstema zimanê bernameya qatkirî.

3. BEŞA 2. Sîstema qat. Kurte C

Divê her şiroveyek rast û pir kurt be. Di warê zimanek bernameyê de, ravekirina pêşîn dijwar e.

Li vir bernameyeke me heye. Ew ji modulan pêk tê. Modul ji binavber û berhevokan (avahî) pêk tên. Binrûtîn ji îfadeyên takekesî pêk tên: danezan, hesab, binavkirin. Bi qasî deh cureyên bindestiyê hene. Subordination bineast û binerûtîn ve girêdide. Gelek reklam jî hene. Lêbelê, danezan ne tenê di binrûtîn û jêrasta de, lê di modul û berhevokan de jî cih digirin. Û piraniya biwêjan ji peyvên ku danasîna wan ew qas dijwar e pêk tê ku ew bi gelemperî di du navnîşan de têne dayîn - peyvên orîjînal û jêhatî, ku hûn ê di tevahiya fêrbûn û karanîna ziman de bi wan re bibin nas. Em îşaretên xalbendiyê û çend bêjeyên din jî li vê yekê zêde bikin.

Di pêşkêşiyek weha de, ne hêsan e ku meriv fêm bike ka kî li ser kê radiweste.

Nêzîkatiya rasterast a hiyerarşîk ji bo danasîna zimanekî dê pir tevlihev be. Lêgerîna dorhêlê li ser bingeha xwezaya axaftinê û aliyê fermanî ve dibe sedema danasîna ziman. Ji ber vê yekê, Sîstema Layer ji dayik bû, beşek bi Sîstema Peryodîk ya Mendeleev re, ku ew jî. ply. Wekî ku 42 sal piştî weşandina wê (1869) derket holê, perîyodîkbûna pergalê bi elektronîkî ve girêdayî ye. qatan (1911, modela atomê Bohr-Rutherford). Di heman demê de, pergalên Layered û Periodic di rêza tabloya hemî yekîneyên li ser yek rûpelê de wekhev in.

Danasîna yekeyên ziman kurt e - tenê 10 cureyên biwêjan û 8 cûreyên yekeyên din, her weha watedar û dîtbarî. Her çend ji bo nasîna yekem ne asayî be.

Yekeyên ziman li 6 astan têne dabeş kirin:

  1. yekîneyên - rêzên sifrê
  2. beşan - komên taybetî yên nifşan (beşên rêza yekem)
  3. cins - hucre (asta sereke ya dabeşkirinê)
  4. supercure - cudakerên cureyan (asta kêm)
  5. cureyên - formulên yekîneyê li binê hucreyê an ji hev cuda
  6. nimûne - yekeyên xwe (tenê ji bo peyvan)

Peyvên nimûne diyar dike ferhenga - jêrpergalek veqetandî ku ji heman şeş astan pêk tê.

Beşa axaftinê ya zimanê C pir eşkere ye, her çend ew hîn jî ravekirinê heq dike. Lê beşa fermanê ya ziman tam bi kontrolkirina berhevkirinê ve girêdayî ye, ku tê de celebê sêyem bernameyê tê afirandin - ferman. Li vir em têne ser hêla herî balkêş a zimanê C: bedewî.

4. BEŞÊN LI PIŞTÎ. Handsome Si

Zimanê C bingeha bernamesaziya nûjen e. Çima? Ya yekem, ji ber peywendiya herî mezin a axaftinê. Ya duyemîn, ji ber ku ew bi xweşikî sînorên hilberandina jimareya makîneyê derbas kir.

Xi bi rastî çi pêşniyar kir? Wêne û qat.

Peyva "image" wergera peyva Îngilîzî "type" ye, ku ji "prototype" - "type" ya Yewnanî tê. Di zimanê rûsî de peyva "cûre" kevirê bingehîn yê têgîna ku tê îfade kirin nagihîne; ji bilî vê, ew bi wateya alîkar "cûre" re tê tevlihev kirin.

Di destpêkê de, wêne pirsgirêkek tenê hesabkirina makîneyê çareser kir, û dûv re bû rêgezek ji dayikbûna zimanên objeyan.

Qat tavilê gelek pirsgirêk çareser kir - hem makîne û hem jî sepandin. Ji ber vê yekê, nirxandin dê bi wêneyek yek-peywirê dest pê bike û berbi qatek pir-peywirê ve biçe.

Yek ji taybetmendiyên ne xweş ên bernamesaziya dîrokî ev e ku piraniya têgînan, yên bingehîn jî di nav de, bêyî pênase têne dayîn. "Zimanê bernamesaziyê (navê çeman) cureyên jimarên bêkêmasî û hejmarî hene..." û ew bêtir xera kirin. Ne hewce ye ku meriv "cûre" (wêneyek) diyar bike, ji ber ku nivîskar bi xwe vê yekê bi tevahî fam nakin û "ji bo zelaliyê" wê bêdeng bikin. Ger bi dîwêr ve bên girêdan, dê pênaseyeke nezelal û bêkêr bidin. Ew gelek arîkar dike ku meriv li pişt peyvên biyanî veşêre: ji bo nivîskarên rûsî - li pişt îngilîzî (cûre), ji bo îngilîzan - li pişt fransî (subrûtîn), yûnanî (polymorphism), latînî (encapsulasyon) an jî berhevokên wan (polîmorfîzma ad-hoc).

Lê qedera me ne ev e. Hilbijartina me pênaseyên bi rûsîka rakirî bi rûsî ya paqij e.

Wêne

Wêne navek pêşnumreya mîqdarekê ye, 1) taybetmendiyên xwerû yên mîqdarê û 2) hilbijartina operasyonan ji bo mîqdarê diyar dike.

Peyva "cûre" (cure) bi beşa yekem a pênaseyê re têkildar e: "Xweserên xwerû yên mîqdarekê." Lê wateya sereke ya wêneyê di beşa duyemîn de ye: "hilbijartina operasyonan li ser mîqdaran."

Xala destpêkê ji bo danasîna wêneyek di C de hesabek normal e, wek operasyona zêdekirinê.

Kaxez Matematîk, çi bi destan were nivîsandin, çi çapkirî be, pir ferqê naxe navbera cureyên jimareyan, bi gelemperî ku ew rast in. Ji ber vê yekê, operasyonên wan ên hilberandinê ne zelal in.

Makîne Matematîk bi hişkî jimareyan li jimar û perçeyan dabeş dike. Cûreyên cûrbecûr hejmar di bîranînê de cûda têne hilanîn û ji hêla rêwerzên cûda yên pêvajoyê ve têne hilberandin. Mînakî, rêwerzên ji bo lê zêdekirina jimar û perçeyan du rêwerzên cûda ne ku bi du girêkên cuda yên pêvajoyê re têkildar in. Lê fermanek ji bo lê zêdekirina argumanên jimare û perçeyî tune.

Applied matematîk, ango zimanê C, cureyên jimareyan ji hev vediqetîne, lê kiryaran li hev dike: lêzêdekirina ji bo jimar û/an perçeyan bi yek nîşana kirdeyê tê nivîsandin.

Danasînek zelal a wêneya têgînê dihêle ku em bê guman li ser du têgehên din biaxivin: mezinahî и emelî.

Mezinahî û operasyon

Qebûr - jimareya ku têne çêkirin.

Operasyon - Pêvajoya nirxên nirxên destpêkê (arguman) ji bo bidestxistina hejmara dawîn (tevahî).

Mezinahî û operasyon bi hev ve girêdayî ne. Her operasyon mîqdarek e ji ber ku encamek wê ya hejmarî heye. Û her nirx encama veguheztina nirxek / ji qeyda pêvajoyê ye, ango encama operasyonê. Tevî vê pêwendiyê, ya sereke îmkana danasîna wan a cuda ye, her çend bi dubarekirina yek peyvê di beşên cihê yên ferhengê de, ya ku di MA3-ê de diqewime.

Nêzîkatiya makîneyê hemî hejmarên ku ji hêla bernameçêker ve hatî bikar anîn dabeş kirin ferman dike и Danny. Berê, her du jî hejmar bûn, mînakî, ferman bi kodên jimareyî dihatin nivîsandin. Lêbelê, di zimanên sepandî de, ferman ji jimarebûnê nema û bûn bi gotinan и nîşanên çalakiyê. Tenê "dane" wekî jimar dimîne, lê bêwate ye ku meriv bi vî rengî gazîkirina wan bidomîne, ji ber ku di derbasbûna ji makîneyek berbi nêrînek matematîkî de, hejmar hejmarên ku li orîjînal têne dabeş kirin (Danny) û dawî (pêwîst). "Data nenas" dê bêaqil xuya bike.

Tîm jî li du celeb çalakiyan hatin dabeş kirin: matematîkî û xizmetguzarî. Tevgerên matematîkî - operasyon. Em ê paşê li ser tiştên fermî bigirin.

Di zimanên C de, kaxez û makîneyên asayî yên nezelal, an yekane, operasyonên matematîkî hema hema bi gelemperî pirjimar dibin.

Operasyonên pirjimar çend operasyonên bi heman navî yên bi celebên argumanan û cûda, di wateyê de, kirinên wekhev in.

Argumanên yekjimar bi tevayî operasyonê re têkildar in, û argumanên fraksîyonî bi operasyonek perçekî re têkildar in. Ev cûdahî bi taybetî di dema operasyona dabeşkirinê de diyar dibe, dema ku îfadeya 1/2 bi tevahî 0 dide, ne 0,5. Nîşanek wusa bi qaîdeyên matematîkê yên kaxezê re nagunce, lê zimanê C hewl nade ku wan bişopîne (berevajî Fortran) - ew li gorî xwe dilîze. sepandin qaîdeyên.

Di rewşa tevlihevkirina jimar û perçeyan de, tenê ya rast tê de ye avêtin nirxên argumana - veguherîna bijartî ya nirxek ji wêneyek wêneyek din. Bi rastî, dema ku hejmareke yekjimar û jimareyek perçekî lê zêde bike, encam perçe ye, ji ber vê yekê wêneyê operasyonê hildide operasyona veguhertina argumanek yekjimar bo nirxek perçeyî.

Gelek operasyon mane pircarû yekoyek. Karên weha tenê ji bo yek celeb argumanan têne destnîşan kirin: Bermayiya dabeşkirinê - argumanên yekjimar, stacking (operasyonên bitwise) - hejmarên bêkêmasî yên xwezayî. Ma3 bi îşaretên (#^) pirjimariya operasyonan destnîşan dike ku wêneyên ku ji bo wan operasyon hatine diyarkirin nîşan dide. Ev taybetmendiyek girîng e, lê berê ji her operasyonê hatî paşguh kirin.

Hemî fonksiyon operasyonên yekîneya kêfî ne. Vebijêrk operator e - fonksiyonên ne-bracket, di ziman de hatiye avakirin (operasyonên eslî).

Alîkarî

Alîkarî - çalakiya bi operasyonê re.

Ger em operasyonê wekî çalakiya sereke bihesibînin, wê hingê em dikarin du yên pê re yên ku operasyonê pêşkêş dikin û jê cûda dibin ji hev cuda bikin. Ev 1) kontrola guhêrbar û 2) bindest in. Ev çalakî tê gotin alîkarî.

Li vir pêdivî ye ku em li ser wergerên rûsî yên pirtûkên dersê yên bernamekirinê ji hev dûr bikevin û ji hev cuda bibêjin. Ji bo qeydkirina kiryaran di metna K/R de peyvek nû hate destnîşan kirin îfade (biwêj), ku hewl da ku têgehên fermanek makîneyê li kiryarên cihêreng dabeş bike: 1) operasyon, 2) daxuyan, û 3) bindestî (bi navê "avakirinên kontrolê"). Ev hewldan ji hêla wergêrên rûsî ve hate veşartin, li şûna "îfade" peyva "operator", ku:

  1. bûye hevwateya peyva makîneyê "ferman",
  2. derket holê ku bi hevoka "nîşana çalakiyê" re ye,
  3. û di heman demê de hejmarek bêsînor nirxên zêde jî wergirtin. Yanî ew veguheriye tiştekî dişibihe gotara îngilîzî ya “uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

Çalakiyên pêvekirî bifikirin, an alîkarî.

Kontrola guherbar

Kontrola guherbar (UP) - şaneyên guhêrbar afirandin / jêbirin.
UE dema ku guhêrbarek diyar dike, ku jixwe ji ber sedemek din hatî nivîsandin - ji bo ku wêneya nirxê destnîşan bike, bi eşkere pêk tê. Tenê yek nêrîn bi eşkere tê rêvebirin guherbarên zêde fonksiyonên malloc () û belaş () bikar tînin.

Pêdivî ye ku were zanîn ku kiryarên nepenî ji bo nivîsandinê hêsantir in, ji ber ku ew qet hewceyî nivîsandinê nakin, lê fêmkirina wan dijwartir e - hesibandin û şîrovekirina wan dijwartir e.

Bindestbûn

Bindestbûn - beşên qatê girêdan / neçalak bikin.

Zimanê C rêbazek sepandî ya kontrolkirina rêza çalakiyan pêşkêşî dike, ji assembler - subordination cuda ye. Ew hevokeke tevlîhev a axaftinê bi dabeşkirineke zelal li beşa sereke (benda binavkirî) û beşa jêrîn (beşên jêrastî/binermî) nîşan dide û pêş dixe.

Hem daxuyanî û hem jî radestkirin bi tevahî li ser konseptê hatine avakirin pel.

Pel

Pel komek bijartî ya yek-asta sînorkirî ye.

Qat bi eşkere û nepenî çend peywir bi yekcarî girt ser xwe:

  1. organîzekirina bernameyê
  2. bisînorkirina dîtina navan (bi eşkere),
  3. birêvebirina guhêrbaran (hucreyên bîrê) (navdêr),
  4. danasîna bendên binerd ji bo binavbûnê,
  5. pênaseyên fonksiyon û hilbijartî û yên din.

Di zimanên makîneyê de têgîna qatê tune bû, ji ber vê yekê ew di K/R de xuya nedikir, û heke tiştek li wir tune bû, wê hingê danasîna wê di pirtûkên paşerojê de dê bibe heretî û ramana azad. Ji ber vê yekê, têgîna qatek qet xuya nedikir, her çend ew pir bikêr û zelal e.

Bê qat, ne mimkûn e ku bi kurtî û zelalî gelek kiryar û rêgezên bernameyê rave bikin. Mînakî, çima goto bi qasî sê kopekan xirab e, û dema dijwar baş e. Hûn tenê dikarin bêçare sond bixwin, wek ku Dijkstra kir ("kêrahatiya bernamenûsan fonksiyonek e ku berevajî wê bi pirbûna peydabûna gotinên goto di bernameyên wan de ve girêdayî ye." Bi kurtasî, tenê bizin goto bikar tînin. Asta rastdariyê Xwedê ye.) Rast e, ger pirtûkên we ne ew qas tirsnak e Em qet ne hewce ne ku tiştek rave bikin, lê, wekî me berê jî got, ev ne çarenûsa me ye.

Bi awayê, meriv dikare were texmîn kirin ku Dan Ritchie goto tam wekî mifteyek ji bo lêgerîna têgehek bênav hiştiye, ji ber ku di vegotina goto de hewcetî û bedewî tunebû. Lê pêdivî bi ravekirineke sade û têgihîştî ya prensîbên nû yên zimên hebû, yên ku Richie bixwe nedixwest bide, û ku tam li ser bingeha têgînê ne. pel.

Ferq

Ferq - guhertina taybetmendiyên asayî yên navê nû.

Veguheztina herî girîng bi rastî bi taybetmendiyên qata bernameyê ve girêdayî ye, û bi yek peyva "statîk" ve tête diyar kirin, ku di her cûre qatê de wateyek cûda heye.

5. BEŞA DAWÎ. Hevbeşiya zimanên sepandî

Zimanên sepandî ne mecalî zimanan (wêneyek heye, "nivîsandin"). Ew li ser karanîna eşkere an nepenî ya wêneyê têne çêkirin. Wekî din, li vir dîsa nakokî xuya dike: wêneyek eşkere bêtir têgihîştin, lê kêmtir hêsan e, û berevajî.

Matryoshka C. Sîstema zimanê bernameya qatkirî

(Rêxistina tabloyê hîn nehatiye radest kirin, ji ber vê yekê tablo bi wêneyek tê xuyang kirin.)

Piştî C, pêşkeftina zimanên sepandî rê li ber zêdekirina rengdêriya wan girt. Ya herî girîng ji bo têgihîştina wêneya bilind nijada rasterast a C ye - zimanê C++. Ew ramana hilbijarkek keyfî ya operasyonan ji bo mîqdaran pêş dixe û wê li ser bingeha bijartina îfadeya sentetîk, ku navek nû - tişt distîne, pêk tîne. Lêbelê, C++ ji ber bargiraniya celebên berhevokê yên nû û qaîdeyên têkildar bi wan re wekî C ne kurt û diyarker e. Bi awayê, em li ser "zêde bargiran" biaxivin.

Zêdebûn û polymorphism

Peyva "zêde barkirin" ji bo afirandinê termek fêrbûna makîneyê ya kevnar e operasyonên piralî.

Bernamesazên makîneyê (pergalê). pirdengî Operasyon dikarin aciz bibin: "Ev nîşana (+) tê çi wateyê: lê zêdekirina jimaran, zêdekirina perçeyan, an jî guheztin?! Di dema me de wisa nedinivîsandin!” Ji ber vê yekê wateya neyînî ya peyva bijartî ("zêdetir", "westiyayî"). Ji bo bernamenûsek serîlêdanê, gelek operasyon kevirê bingehîn, destkeft û mîrateya sereke ya zimanê C ne, ew qas xwezayî ye ku ew bi gelemperî nayên naskirin.

Bi zimanê C++ pirdengî ne tenê ji bo operasyonên orîjînal, lê di heman demê de ji bo fonksiyonan - hem takekesî û hem jî di nav çînan de - rêbazan dirêj kirin. Bi gelek rêbazan re şiyana derbaskirina wan di dersên dirêjkirî de derket, ku bi rengek nezelal jê re "polîmorfîzm" dihat gotin. Têkiliya pirmorfîzmê û bargiraniyê tevliheviyek teqemenî çêkir ku di du polîmorfîzmê de parçe bû: "rast" û "ad-hoc". Tenê tevî navên hatine destnîşankirin jî meriv vê yekê fêm dike. Rêya reklamê bi navên biyanî hatiye vekirin.

Daxuyaniya forma "zêde barkirin" di peyvê de çêtir tête diyar kirin ragihandina zêde - lê zêdekirina danezanek fonksiyonek bi heman navî bi argumanên wêneyek cûda.

Daxuyaniya forma "polymorphism" çêtir tê gotin ji nû ve ragihandin - Daxuyaniyek hevgirtî di qatek dirêjkirina nû ya fonksiyonek bi heman navî de digel argumanên heman wêneyê.

Wê hingê ew ê hêsan be ku meriv fêm bike ku heman rêbazên wêneyên cûda (arguman) - zêde jî ragihandû yek wêne - ji nû ve ragihandin.

Peyvên rûsî biryar didin.

Runway

Nêrîna têgehên zimanên pir mecazî girîngiya pênasekirina zelal a têgehên bingehîn piştrast dike. Digel ku C-ya rast hatî destnîşan kirin, fêrbûna zimanên fîgurên bilind dê hêsan û kêfxweş be.

Ev bi taybetî ji bo girîng e zimanên nehênî yên pir mecazî (PHP, JavaScript). Ji bo wan, girîngiya nesneyan (wêneyên pêkhatî) ji ya C++-ê hîn bilindtir dibe, lê têgeha wêneyê nezelal û nezelal dibe. Ji aliyê rehetiyê ve sadetir bûne, lê ji aliyê têgihiştinê ve dijwartir bûne.

Ji ber vê yekê, divê hûn bi zimanê C-yê dest bi fêrbûna zimanên bernamesaziyê bikin û di rêza ku zimanên malbata C de xuya dibin de pêşde biçin.

Heman tişt ji bo danasîna zimanan jî derbas dibe. Zimanên cihêreng ji zimanê C xwedan heman, an piçûktir, komek yekîneya zayendan in. Hejmara celeb û nimûneyan dibe ku di her du aliyan de cûda bibin: C++ ji C-ê bêtir celeb hene, lê JavaScript-ê hindiktir e.

Zimanê MySQL hêjayî gotinek taybetî ye. Wusa dixuye ku tiştek hevpar tune, lê ew ji hêla Matryoshka ve bêkêmasî tê vegotin, û naskirina wî zûtir û hêsantir dibe. Ya ku girîng e, ji ber girîngiya wê ya ji bo tevneyê - riya xwarinê ya bernameya nûjen. Û cihê ku MySQL heye, SQLyên din jî hene. Welê, her cûre Fortran-Pascal-Pythons jî ji hêla Matryoshka ve têne şirove kirin, gava ku ew bi destên xwe ve diçin.

Ji ber vê yekê, tiştên mezin li benda me ne - danasînek sepandî ya zimanê C û ravekirinek yekbûyî ya zimanên ku li pey wê ne. “Armancên me diyar in, erkên me diyar in. Hevalno, werin ser kar! (Bi bahoz, li çepikan dirêj dibe, vediguhere ovê. Her kes radibe ser piyan.)"

Nêrînên we dê bi baldariyek mezin bêne guhdarî kirin, dê alîkariya we di afirandina malpera kuçikên hêlînê de bi spasdariyek mezin were wergirtin. Agahdariya bêkêmasî ya di derbarê pirtûkê de li ser malperê ye, ku bi şehrezayî di Matryoshka C de veşartî ye.

Source: www.habr.com

Add a comment