Matryoshka C. Sistema tal-lingwa tal-programm f'saffi

Ejja nippruvaw nimmaġinaw il-kimika mingħajr it-Tabella Perjodika ta' Mendeleev (1869). Kemm kellhom jinżammu f’moħħhom elementi, u fl-ebda ordni partikolari... (Imbagħad - 60.)

Biex tagħmel dan, aħseb biss dwar lingwa ta 'programmar waħda jew diversi f'daqqa. L-istess sentimenti, l-istess kaos kreattiv.

U issa nistgħu nerġgħu ngħixu s-sentimenti tal-kimiċi tas-seklu 19 meta ġew offruti l-għarfien kollu tagħhom, u ftit aktar, f'Tabella Perjodika waħda.

Matryoshka C. Sistema tal-lingwa tal-programm f'saffi


Il-ktieb “Matryoshka C. Sistema f'saffi tal-lingwa tal-programm" tippreżenta l-unitajiet kollha tal-lingwa C f'daqqa t'għajn. Dan jippermettilek torganizzahom, tikkoreġi informazzjoni skaduta, u saħansitra tiċċara l-kunċett stess tal-programm.

Illum, l-informazzjoni tal-ipprogrammar teħtieġ sistematizzazzjoni saħansitra aktar milli kellhom elementi kimiċi 150 sena ilu.

L-ewwel ħtieġa hija t-tagħlim. Mendeleev beda joħloq is-sistema tiegħu meta ffaċċja l-mistoqsija dwar liema element għandu jibda jagħti lezzjonijiet: O, H, N, He, Au... Fl-istess ħin, kien aktar faċli għalih - għallem il-kimika lill-aqwa - studenti ta ' Università ta’ San Pietruburgu. U l-ipprogrammar diġà huwa mgħallem fl-iskola u dalwaqt jibda fil-kindergarten.

It-tieni ħtieġa hija approċċ xjentifiku. Bl-għajnuna tat-Tabella Perjodika, ġew skoperti elementi ġodda u ġiet ikkoreġuta informazzjoni dwar dawk qodma. Hija għenet biex toħloq il-mudell tal-atomu (1911). U l-bqija.

It-tielet ħtieġa hija li jiġi ċċarat il-kunċett ta 'programm.

L-ipprogrammar modern għandu sieq waħda mwaħħla fis-snin 50 tas-seklu XNUMX. Dakinhar, il-programmi kienu sempliċi, iżda l-magni u l-lingwi tal-magni kienu kumplessi, għalhekk kollox idur madwar magni u lingwi.

Issa kollox huwa l-maqlub: il-programmi huma kumplessi u primarji, il-lingwi huma sempliċi u sekondarji. Dan jissejjaħ l-approċċ applikat, li kulħadd jidher li huwa familjari miegħu. Iżda l-istudenti u l-iżviluppaturi jibqgħu konvinti li kollox huwa l-istess.

Li jġibna lura għall-ewwel lecture ta 'Privatdozent Mendeleev. X'għandek tgħid lill-freshmen? Fejn hi l-verità? Dik hija l-mistoqsija.

Il-ktieb "Matryoshka C" joffri t-tweġiba tiegħu għal din il-mistoqsija. Sistema f'saffi tal-lingwa tal-programm". Barra minn hekk, huwa indirizzat mhux biss lill-istudenti, iżda wkoll lill-programmaturi mħarrġa, peress li huma huma, jiġifieri aħna, li għandna nfittxu l-verità u nibdlu l-ħarsa tad-dinja.

Dak li ġej huwa sommarju tal-ktieb.

1. Introduzzjoni

Fl-1969, inħolqot il-lingwa Ċ, li saret il-lingwa ta 'programmar fundamentali u baqgħet hekk għal 50 sena. Għaliex dan hu hekk? L-ewwelnett, għaliex C huwa applikati il-lingwa li tat il-programm uman ħsieb minflok magna. Din il-kisba kienet assigurata minn lingwi mill-familja C: C++, JavaScript, PHP, Java, C# u oħrajn. It-tieni, hija lingwa qasira u sabiħa.

Madankollu, il-lingwa C innifsu huwa ġeneralment imħallat ma 'assemblatur tal-magni, u b'hekk tikkomplika u tgħawweġ il-perċezzjoni tagħha. L-estrem l-ieħor huwa l-impożizzjoni ta 'ċerta "filosofija" fuq il-lingwa: proċedurali, oġġett, funzjonali, ikkumpilat, interpretat, ittajpjat, eċċ. Dan iżid l-emozzjoni, iżda ma jgħinx jiddeskrivi l-lingwa aħjar.

Il-verità tinsab fin-nofs, u għall-lingwa Ċ hija strettament fin-nofs bejn il-perċezzjoni filosofika u dik tal-magni.

Il-lingwa C mhix indipendenti, tobdi lingwa miktuba ordinarja, u fl-istess ħin tikkontrolla l-lingwa tal-assemblaġġ innifsu. Din il-pożizzjoni tiddeskrivi Mudell tad-diskors tal-programm, skond liema l-programm huwa maqsum fi tliet tipi subordinati: diskors, kodiċi, kmand. Il-lingwa C hija responsabbli għat-tieni, it-tip ta' kodiċi.

Wara li ddeterminat il-post tal-lingwa fil-programm, tista 'torganizza informazzjoni dwarha, li tagħmel Sistema tal-lingwa tal-programm f'saffi, li tirrappreżenta l-lingwa Ċ fl-ispirtu tas-sistema perjodika - fuq paġna waħda.

Is-sistema hija mibnija b'kont meħud komunitajiet ta’ lingwi applikati, li jirriżultaw mis-subordinazzjoni tad-diskors tagħhom. Sett wieħed ta 'unitajiet C Matryoshka jippermettilek tiddeskrivi u tqabbel lingwi differenti, u toħloq serje ta' Matryoshkas: C++, PHP, JavaScript, C#, MySQL, Python eċċ. Huwa denju u korrett li lingwi differenti huma deskritti minn unitajiet tal-lingwa fundamentali.

2. KAPITOLU 1. Mudell tad-diskors tal-programm. Ċara Ċ

L-ewwel kapitlu jippreżenta mudell tad-diskors tal-programm, li jirrifletti approċċ applikat. Skond hu, il-programm għandu tliet tipi sekwenzjali ovvji:

  1. diskors - diskors dirett tal-programmatur li jsolvi l-problema,
  2. kodifikat - kodifikazzjoni ta' soluzzjoni f'forma matematika fil-lingwa Ċ (jew kwalunkwe oħra)
  3. u kmand - kmandi diretti tal-magni.

Il-mudell tad-diskors jispjega għaliex C hija lingwa sempliċi u li tinftiehem. Xi hija mibnija fuq ix-xbieha u x-xebh tad-diskors tal-bniedem li huwa familjari għalina.

L-ewwel tip ta 'programm huwa d-diskors dirett tal-programmatur. Id-diskors jikkorrispondi mal-ħsieb tal-bniedem. Programmaturi li jibdew jiktbu programmi bl-użu tad-diskors - l-ewwel bir-Russu, imbagħad pass pass jittraduċu l-azzjonijiet f'lingwa tal-kodiċi. U huwa preċiżament fuq dan il-mudell li nħolqot il-lingwa Ċ.

Il-konklużjonijiet tal-programmatur, espressi fid-diskors, huma kkonvertiti f'forma numerika kodifikata. Din it-trasformazzjoni għandha tissejjaħ riflessjoni, peress li d-diskors u l-kodiċi għandhom l-istess natura (riflessjoni - twelid - sess). Dan huwa pjuttost ovvju jekk inqabblu t-tipi ta 'diskors (fuq ix-xellug) u kodiċi (fuq il-lemin) tal-programm.

Matryoshka C. Sistema tal-lingwa tal-programm f'saffi

Huwa kurjuż li r-riflessjoni sseħħ b’mod sempliċi ħafna – b’żewġ tipi ta’ espressjonijiet biss.

Madankollu, id-deskrizzjoni moderna tal-lingwa C (mill-1978) ma fihax lista suffiċjenti ta 'ismijiet la biex tiddeskrivi l-lingwa b'mod ġenerali, jew għall-kompitu ta' riflessjoni b'mod partikolari. Għalhekk, aħna sfurzati li nkunu kreattivi u nintroduċu dawn l-ismijiet.

L-għażla tal-kliem trid tkun preċiża u ċara. Dan kien jeħtieġ approċċ speċjali, espress fil-qosor kif ġej: użu strett tal-lingwa nattiva. Għall-Ingliżi jkun l-Ingliż, imma aħna mhux Ingliżi. Allura aħna se nużaw dak li għandna u nippruvaw nitkellmu bir-Russu.

Ir-riflessjoni ssir minn żewġ tipi ta’ espressjonijiet:

  1. kalkolu (HF) - tirrifletti bidla fil-proprjetajiet ta 'oġġett. Il-proprjetà ta 'oġġett hija espressa b'numru, allura azzjoni fuq proprjetà hija azzjoni fuq numru - operazzjoni.
  2. subordinazzjoni (Pch) - tirrifletti bidla fl-ordni tal-azzjonijiet. Il-prototip ta 'Pch huwa sentenza kumplessa ta' diskors, għalhekk ħafna tipi ta 'Pch jibdew b'konġunzjonijiet subordinanti "jekk", "mod ieħor", "waqt li", "għal". Tipi oħra ta 'PCs jikkumplimentawhom.

Mill-mod, tista 'temmen li fid-deskrizzjoni C m'hemm l-ebda isem għall-espressjonijiet ta' kalkolu - huma sempliċement imsejħa "espressjonijiet"? Wara dan, ma jibqax sorprendenti li m'hemm l-ebda isem u assoċjazzjoni għat-tip ta 'subordinazzjoni, u tabilħaqq in-nuqqas ta' ismijiet, definizzjonijiet u ġeneralizzazzjonijiet b'mod ġenerali. Dan għaliex il-famuż K/R (“The C Language”, Kernighan/Ritchie, 1978) mhuwiex deskrizzjoni, iżda gwida għall-użu tal-lingwa.

Madankollu, xorta nixtieq li jkolli deskrizzjoni tal-lingwa. Għalhekk huwa offrut Sistema tal-lingwa tal-programm f'saffi.

3. KAPITOLU 2. Sistema ta' saff. Qosor C

Kwalunkwe deskrizzjoni għandha tkun preċiża u estremament konċiża. Fil-każ ta' lingwa tal-programm, deskrizzjoni frontali hija diffiċli.

Hawnhekk għandna programm. Tikkonsisti f'moduli. Il-moduli jikkonsistu f'subroutines u kollezzjonijiet (struttura). Is-subroutines jikkonsistu f'espressjonijiet individwali: dikjarazzjonijiet, kalkoli, subordinazzjoni. Hemm daqs għaxar tipi ta’ subordinazzjoni. Is-subordinazzjoni tgħaqqad is-sottolivelli u s-subroutines. Hemm ukoll diversi reklami. Madankollu, id-dikjarazzjonijiet huma inklużi mhux biss f'subroutines u sottolivelli, iżda wkoll f'moduli u kollezzjonijiet. U l-biċċa l-kbira tal-espressjonijiet jikkonsistu fi kliem li huma tant diffiċli biex jiddeskrivuhom li ġeneralment jingħataw sempliċement f'żewġ listi - kliem oriġinali u derivat, li inti ssir familjari magħhom matul it-tagħlim u l-użu tal-lingwa. Ejja nżidu marki ta' punteġġjatura u għadd ta' espressjonijiet oħra ma' dan.

Fi preżentazzjoni bħal din, mhux faċli li wieħed jifhem min kien fuq min.

Approċċ ġerarkiku dirett biex tiddeskrivi lingwa jkun kumpless żżejjed. Tfittxija roundabout twassal għal deskrizzjoni tal-lingwa bbażata fuq in-natura tad-diskors tagħha u n-naħa tal-kmand. Għalhekk, twieldet is-Sistema tas-Saff, li tikkoinċidi parzjalment mas-Sistema Perjodika ta’ Mendeleev, li hija wkoll ħxuna. Kif irriżulta 42 sena wara l-pubblikazzjoni tagħha (1869), il-perjodiċità tas-sistema hija assoċjata ma 'elettronika saffi (1911, mudell Bohr-Rutherford tal-atomu). Ukoll, is-sistemi f'Saffi u Perjodiċi huma simili fl-arranġament tabulari tal-unitajiet kollha fuq paġna waħda.

Id-deskrizzjoni tal-unitajiet tal-lingwa hija qasira - 10 tipi biss ta 'espressjonijiet u 8 tipi ta' unitajiet oħra, kif ukoll sinifikanti u viżwali. Għalkemm mhux tas-soltu għall-ewwel konoxxenza.

L-unitajiet tal-lingwa huma maqsuma f'6 livelli:

  1. unitajiet - ringieli tal-mejda
  2. dipartimenti - gruppi speċjali ta 'ġeneri (partijiet tal-ewwel linja)
  3. ġeneru - ċelluli (livell ewlieni ta 'diviżjoni)
  4. superspeċi - separaturi tal-ispeċi (livell rari)
  5. tipi - formuli ta 'unità fil-qiegħ taċ-ċellula jew separatament
  6. mudelli - l-unitajiet infushom (għall-kliem biss)

Kliem kampjun jiddeskrivi dizzjunarju - sottosistema separata magħmula mill-istess sitt livelli.

Il-komponent tad-diskors tal-lingwa Ċ huwa pjuttost ovvju, għalkemm għadu jistħoqqlu deskrizzjoni. Iżda l-parti tal-kmand tal-lingwa hija preċiżament relatata mal-kontroll tal-kumpilazzjoni, li matulu jinħoloq it-tielet tip ta 'programm - kmand. Hawnhekk naslu għall-aktar aspett eċċitanti tal-lingwa Ċ: is-sbuħija.

4. KAPITOLI LI ĠEJJIN. Si gustuż

Il-lingwa C hija l-bażi tal-ipprogrammar modern. Għaliex? L-ewwelnett, minħabba l-akbar korrispondenza għad-diskors. It-tieni nett, minħabba li qabeż b'mod sabiħ il-limitazzjonijiet tal-ipproċessar tan-numru tal-magni.

Xi ppropona eżattament? Immaġni u saff.

Il-kelma "immaġni" hija traduzzjoni tal-kelma Ingliża "tip", li ġejja mill-Grieg "prototip" - "tip". Fil-lingwa Russa, il-kelma "tip" ma twassalx il-pedament tal-kunċett li qed jiġi espress; barra minn hekk, hija konfuża mat-tifsira awżiljarja "tip".

Inizjalment, l-immaġni solvut problema ta 'kalkolu purament tal-magni, u mbagħad saret runway għat-twelid ta' lingwi ta 'oġġetti.

Is-saff immedjatament solvuti diversi problemi - kemm magna kif ukoll applikati. Għalhekk, il-konsiderazzjoni se tibda b'immaġni ta 'kompitu wieħed u timxi għal saff b'ħafna kompiti.

Waħda mill-karatteristiċi spjaċevoli tal-ipprogrammar storiku hija li l-biċċa l-kbira tal-kunċetti, inklużi dawk bażiċi, jingħataw mingħajr definizzjonijiet. "Il-lingwa ta 'programmar (isem tax-xmajjar) għandha tipi ta' numri interi u varjabbli ..." u scratched aktar. Mhuwiex meħtieġ li tiddefinixxi x'inhi "tip" (immaġini), għaliex l-awturi nfushom ma jifhmux għal kollox dan u se jsemmu "għall-fini taċ-ċarezza." Jekk jintrabtu mal-ħajt, jagħtu definizzjoni vaga u inutli. Jgħin ħafna biex jinħbew wara kliem barrani: għall-awturi Russi - wara l-Ingliż (tip), għall-Ingliżi - wara l-Franċiż (subroutine), il-Grieg (polimorfiżmu), il-Latin (inkapsulament) jew il-kombinazzjonijiet tagħhom (polimorfiżmu ad-hoc).

Imma dan mhux id-destin tagħna. L-għażla tagħna hija definizzjonijiet b'viżiera mgħollija bir-Russu pur.

Immaġni

Immaġni huwa isem prefigurattiv ta 'kwantità, li jiddefinixxi 1) il-proprjetajiet intrinsiċi tal-kwantità u 2) l-għażla ta' operazzjonijiet għall-kwantità.

Il-kelma "tip" (tip) tikkorrispondi għall-ewwel parti tad-definizzjoni: "proprjetajiet intrinsiċi ta 'kwantità." Iżda t-tifsira ewlenija tal-immaġni tinsab fit-tieni parti: "għażla ta 'operazzjonijiet għal kwantitajiet."

Il-punt tat-tluq għall-introduzzjoni ta 'immaġni f'C huwa kalkolu normali, bħall-operazzjoni ta' żieda.

Karta Il-matematika, kemm jekk miktuba bl-idejn jew stampata, ma tagħmilx ħafna distinzjoni bejn it-tipi ta’ numri, ġeneralment jekk wieħed jassumi li huma reali. Għalhekk, l-operazzjonijiet tal-ipproċessar tagħhom mhumiex ambigwi.

magna Il-matematika taqsam in-numri b'mod strett f'numri interi u frazzjonijiet. Tipi differenti ta 'numri huma maħżuna b'mod differenti fil-memorja u pproċessati minn struzzjonijiet ta' proċessur differenti. Pereżempju, l-istruzzjonijiet għaż-żieda ta 'numri interi u frazzjonijiet huma żewġ istruzzjonijiet differenti li jikkorrispondu għal żewġ nodi ta' proċessur differenti. Iżda m'hemm l-ebda kmand għaż-żieda ta 'argumenti interi u frazzjonali.

Applikata il-matematika, jiġifieri, il-lingwa Ċ, tifred it-tipi ta 'numri, iżda tgħaqqad l-operazzjonijiet: iż-żieda għal interi u/jew frazzjonijiet hija miktuba b'sinjal ta' azzjoni wieħed.

Definizzjoni ċara tal-immaġni tal-kunċett tippermettilna definittivament nitkellmu dwar żewġ kunċetti oħra: kobor и operazzjoni.

Il-kobor u l-operat

Valur — in-numru li qed jiġi pproċessat.

Operazzjoni — l-ipproċessar tal-valuri tal-valuri inizjali (argumenti) biex jinkiseb in-numru finali (total).

Il-kobor u l-operat huma interrelatati. Kull operazzjoni hija kwantità għax għandha riżultat numeriku. U kull valur huwa r-riżultat tat-trasferiment ta 'valur lejn/minn ir-reġistru tal-proċessur, jiġifieri, ir-riżultat tal-operazzjoni. Minkejja din ir-relazzjoni, il-ħaġa prinċipali hija l-possibbiltà tad-deskrizzjoni separata tagħhom, għalkemm bir-ripetizzjoni ta 'kelma waħda f'sezzjonijiet differenti tad-dizzjunarju, li huwa dak li jiġri f'MA3.

L-approċċ tal-magna qasmet in-numri kollha użati mill-programmatur timijiet и l-informazzjoni. Preċedentement, it-tnejn kienu numri, pereżempju, il-kmandi kienu miktuba f'kodiċi numeriċi. Madankollu, fil-lingwi applikati, il-kmandi ma baqgħux numri u saru kliem и sinjali ta' azzjoni. "Dejta" biss tibqa 'bħala numri, iżda huwa assurd li tkompli nsejħulhom hekk, għax fit-tranżizzjoni minn magna għal perspettiva matematika, in-numri huma kwantitajiet li huma diviżi bl-oriġinali (l-informazzjoni) u finali (meħtieġ). "Datum mhux magħruf" se tinstema' stupid.

It-timijiet kienu wkoll maqsuma f’żewġ tipi ta’ azzjonijiet: matematiċi u ta’ servizz. Azzjonijiet matematiċi - operazzjonijiet. Aħna ser naslu għall-għalf uffiċjali aktar tard.

Fil-lingwi C, il-karti u l-magni tas-soltu operazzjonijiet matematiċi mhux ambigwi, jew singoli, kważi universalment isiru multipli.

Operazzjonijiet multipli huma diversi operazzjonijiet tal-istess isem b'tipi differenti ta 'argumenti u azzjonijiet differenti, simili fit-tifsira.

L-argumenti sħaħ jikkorrispondu għal operazzjoni sħiħa, u l-argumenti frazzjonali jikkorrispondu għal operazzjoni frazzjonali. Din id-differenza hija speċjalment ċara waqt l-operazzjoni tad-diviżjoni, meta l-espressjoni 1/2 tagħti total ta '0, mhux 0,5. Tali notazzjoni ma tikkorrispondix mar-regoli tal-matematika tal-karta, iżda l-lingwa C ma tistinkax biex tikkonforma magħhom (b'differenza Fortran) - tilgħab skond tagħha stess applikati regoli.

Fil-każ ta 'taħlit interi u frazzjonijiet, l-uniku wieħed korrett huwa inkluż ikkastjar valuri argument — trasformazzjoni selettiva ta' valur minn immaġni għal oħra. Tabilħaqq, meta żżid numru sħiħ u numru frazzjonali, ir-riżultat huwa frazzjonali, għalhekk l-immaġni tal-operazzjoni jiġbor l-operazzjoni ta 'konverżjoni ta' argument numru sħiħ għal valur frazzjonali.

Għadd ta' operazzjonijiet jibqgħu pluralU waħdieni. Operazzjonijiet bħal dawn huma definiti biss għal tip wieħed ta 'argumenti: bqija tad-diviżjoni - argumenti interi, stivar (operazzjonijiet bit-bit) - interi naturali. Ma3 jindika l-multipliċità ta' operazzjonijiet b'sinjali (#^) li jindikaw l-immaġini li għalihom l-operazzjoni hija definita. Din hija proprjetà importanti iżda li qabel kienet injorata ta' kull operazzjoni.

Il-funzjonijiet kollha huma operazzjonijiet ta' unità arbitrarji. L-eċċezzjoni huma l-operaturi - funzjonijiet mhux parentesi, mibnija fil-lingwa (operazzjonijiet oriġinali).

Il-promozzjoni

Il-promozzjoni - azzjoni li takkumpanja l-operazzjoni.

Jekk inqisu l-operazzjoni bħala l-azzjoni prinċipali, allura nistgħu niddistingwu żewġ dawk li jakkumpanjawhom li jipprovdu l-operazzjoni u huma differenti minnha. Dawn huma 1) kontroll varjabbli u 2) subordinazzjoni. Din l-azzjoni tissejjaħ għajnuna.

Hawnhekk irridu nidħlu u ngħidu separatament dwar traduzzjonijiet Russi tal-kotba tal-ipprogrammar. Kelma ġdida ġiet introdotta fit-test tal-K/R biex jiġu rreġistrati l-azzjonijiet dikjarazzjoni (espressjoni), li ppruvaw jaqsmu l-kunċetti ta 'kmand ta' magna f'azzjonijiet differenti: 1) operazzjoni, 2) dikjarazzjoni, u 3) subordinazzjoni (imsejħa "kostruzzjonijiet ta 'kontroll"). Dan l-attentat ġie midfun minn tradutturi Russi, u ssostitwixxa "espressjoni" bil-kelma "operatur", li:

  1. sar sinonimu mal-kelma tal-magna "kmand",
  2. irriżulta li kien sinonimu mal-frażi "sinjal ta' azzjoni",
  3. u rċeviet ukoll numru illimitat ta 'valuri addizzjonali. Jiġifieri nbidel f’xi ħaġa bħall-artiklu bl-Ingliż “uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh”

Ikkunsidra l-azzjonijiet ta’ akkumpanjament, jew għajnuna.

Kontroll varjabbli

Kontroll varjabbli (UP) - ħolqien/tħassir ta 'ċelloli varjabbli.
UE iseħħ b'mod impliċitu meta tiddikjara varjabbli, li hija diġà miktuba għal raġuni oħra - biex tindika l-immaġni tal-valur. Veduta waħda biss hija mmaniġġjata b'mod espliċitu varjabbli addizzjonali bl-użu tal-funzjonijiet malloc() u free().

Għandu jiġi nnutat li l-azzjonijiet impliċiti huma aktar konvenjenti għall-kitba, peress li ma jeħtieġu xejn kitba, iżda huma aktar diffiċli biex jinftiehmu - huma aktar diffiċli biex jitqiesu u jiġu interpretati.

Subordinazzjoni

Subordinazzjoni — qabbad/iskonnettja sezzjonijiet tas-saff.

Il-lingwa C offriet metodu applikat ta 'kontroll tal-ordni tal-azzjonijiet, differenti minn assembler - subordinazzjoni. Jirrifletti u jiżviluppa sentenza kumplessa ta’ diskors b’diviżjoni ċara fil-parti prinċipali (klawsola ta’ subordinazzjoni) u l-parti subordinata (taqsimiet ta’ sottolivell/subrutina).

Kemm id-dikjarazzjoni kif ukoll is-sottomissjoni huma mibnija għal kollox fuq il-kunċett слой.

Saff

Saff huwa sett limitat ta' espressjonijiet selettivi fuq livell wieħed.

Is-saff b'mod espliċitu u impliċitu ħa diversi kompiti f'daqqa:

  1. jorganizza l-programm
  2. il-limitazzjoni tal-viżibilità tal-ismijiet (impliċitament),
  3. ġestjoni ta' varjabbli (ċelluli tal-memorja) (impliċitu),
  4. definizzjoni ta' klawżoli subordinati għas-subordinazzjoni,
  5. definizzjonijiet ta' funzjonijiet u selezzjonijiet u oħrajn.

Ma kien hemm l-ebda kunċett ta 'saff fil-lingwi tal-magni, għalhekk ma deherx f'K / R, u jekk xi ħaġa ma kienx hemm, allura l-introduzzjoni tagħha fil-kotba sussegwenti tkun ereżija u freethinking. Għalhekk, il-kunċett ta 'saff ma deher xejn, għalkemm huwa estremament utli u pjuttost ovvju.

Mingħajr saff, huwa impossibbli li tispjega fil-qosor u b'mod ċar ħafna mill-azzjonijiet u r-regoli tal-programm. Per eżempju, għaliex huwa goto sempliċi daqs tliet kopecks ħażina, u l-waqt li delikata hija tajba. Tista 'biss taħlef bla sahha, kif għamlet Dijkstra ("il-ħila tal-programmaturi hija funzjoni li tiddependi inversament fuq il-frekwenza ta' okkorrenza ta 'dikjarazzjonijiet goto fil-programmi tagħhom." Fil-qosor, mogħoż biss jużaw goto. Il-livell ta' ġustifikazzjoni huwa Alla.) Veru, dan mhux daqshekk tal-biża 'jekk il-kotba tiegħek M'għandniex għalfejn nispjegaw xejn, iżda, kif diġà għidna, dan mhuwiex id-destin tagħna.

Mill-mod, wieħed jista' jassumi li Dan Ritchie ħalla goto preċiżament bħala ċavetta għat-tiftix għal xi kunċett bla isem, għax ma kien hemm l-ebda ħtieġa jew sbuħija fl-espressjoni goto. Iżda kien hemm bżonn ta’ spjegazzjoni sempliċi u li tinftiehem tal-prinċipji l-ġodda tal-lingwa, li Richie innifsu ma riedx jagħti, u li huma bbażati preċiżament fuq il-kunċett. слой.

Devjazzjoni

Devjazzjoni — it-tibdil tal-proprjetajiet tas-soltu tal-isem il-ġdid.

L-aktar devjazzjoni importanti hija relatata preċiżament mal-proprjetajiet tas-saff tal-programm, u hija deskritta b'kelma waħda "statika", li għandha tifsira differenti f'kull tip ta 'saff.

5. L-AĦĦAR KAPITOLU. Komunita` tal-lingwi applikati

Lingwi applikati huma figurattiv lingwi (li jkollhom immaġni, "ittajpjata"). Huma bbażati fuq l-użu espliċitu jew impliċitu tal-immaġni. Barra minn hekk, hawnhekk għal darb'oħra tidher kontradizzjoni: immaġni espliċita tinftiehem aktar, iżda inqas konvenjenti, u viċi versa.

Matryoshka C. Sistema tal-lingwa tal-programm f'saffi

(It-tqassim tal-mejda għadu ma ġiex ikkunsinnat, għalhekk it-tabella tidher bi stampa.)

Wara C, l-iżvilupp tal-lingwi applikati ħa t-triq li jżid il-figuratività tagħhom. L-aktar importanti għall-fehim ta 'xbihat għolja huwa d-dixxendent dirett ta' C - il-lingwa C++. Huwa jiżviluppa l-idea ta 'għażla arbitrarja ta' operazzjonijiet għall-kwantitajiet u jinkorporaha fuq il-bażi tal-għażla tal-espressjoni sintetika, li tirċievi isem ġdid - oġġett. Madankollu, C++ mhuwiex konċiż u espressiv daqs C minħabba t-tagħbija żejda ta 'tipi ġodda ta' ġbir u r-regoli assoċjati tagħhom. Mill-mod, ejja nitkellmu dwar "tagħbija żejda".

Tagħbija żejda u polimorfiżmu

Il-kelma "tagħbija żejda" hija terminu skadut ta' tagħlim bil-magni għall-ħolqien operazzjonijiet multipli.

Programmaturi tal-magni (sistema). pluralità operazzjonijiet jistgħu jkunu tedjanti: “Xi jfisser dan is-sinjal (+): iż-żieda ta’ numri interi, iż-żieda ta’ frazzjonijiet, jew saħansitra ċaqliq?! Fi żmienna ma kitbux hekk!” Għalhekk il-konnotazzjoni negattiva tal-kelma magħżula (“overkill”, “għajjien”). Għal programmatur ta 'applikazzjoni, operazzjonijiet multipli huma l-pedament, il-kisba prinċipali u l-wirt tal-lingwa C, tant naturali li ħafna drabi ma jiġux rikonoxxuti.

Fil-lingwa C++ pluralità estiża mhux biss għall-operazzjonijiet oriġinali, iżda wkoll għal funzjonijiet - kemm individwali kif ukoll magħquda fi klassijiet - metodi. B'metodi multipli waslet l-abbiltà li jegħlbuhom fi klassijiet estiżi, li kienet tissejjaħ vagament "polimorfiżmu." Il-kombinazzjoni ta 'polimorfiżmu u tagħbija żejda pproduċiet taħlita splussiva li nqasam f'żewġ polimorfiżmi: "veru" u "ad-hoc." Huwa possibbli li tifhem dan biss minkejja l-ismijiet assenjati. It-triq għall-ad hija witta b'ismijiet barranin.

Dikjarazzjoni tal-forma "tagħbija żejda" hija espressa aħjar fil-kelma avviż addizzjonali — iż-żieda ta' dikjarazzjoni ta' funzjoni ta' l-istess isem b'argumenti ta' immaġni differenti.

Dikjarazzjoni tal-forma "polimorfiżmu" tissejjaħ aħjar avviż mill-ġdid — dikjarazzjoni li tikkoinċidi f'saff ta' estensjoni ġdid ta' funzjoni ta' l-istess isem b'argumenti ta' l-istess immaġini.

Imbagħad ikun faċli li tifhem li l-istess metodi ta 'immaġini differenti (argumenti) - barra minn hekk imħabbra, u immaġni waħda - imħabbra mill-ġdid.

Kliem Russu jiddeċiedi.

Runway

Il-kunsiderazzjoni tal-kunċetti ta 'lingwi figurattivi ħafna tikkonferma l-importanza ta' definizzjoni ċara ta 'kunċetti fundamentali. B'C deskritt b'mod korrett, it-tagħlim ta' lingwi figurattivi għolja se jkun faċli u pjaċevoli.

Dan huwa speċjalment importanti għal lingwi impliċiti ħafna figurattivi (PHP, JavaScript). Għalihom, l-importanza tal-oġġetti (immaġini komposti) issir saħansitra ogħla milli f'C++, iżda l-kunċett stess ta 'immaġni jsir impliċitu u elużiv. Mil-lat tal-konvenjenza, saru aktar sempliċi, iżda mil-lat tal-fehim, saru aktar diffiċli.

Għalhekk, għandek tibda titgħallem il-lingwi tal-ipprogrammar bil-lingwa C u timxi aktar fl-ordni li fiha jidhru l-lingwi tal-familja C.

L-istess jgħodd għad-deskrizzjoni tal-lingwi. Lingwi differenti għandhom l-istess, jew iżgħar, sett ta’ sessi ta’ unità mil-lingwa Ċ. In-numru ta 'tipi u kampjuni jista' jvarja fiż-żewġ direzzjonijiet: C++ għandu aktar tipi minn C, filwaqt li JavaScript għandu inqas.

Il-lingwa MySQL jistħoqqilha aċċenn speċjali. Jidher li m'hemm xejn komuni, iżda huwa deskritt perfettament minn Matryoshka, u li jsir jaf lilu jsir aktar mgħaġġel u eħfef. Li huwa importanti, minħabba l-importanza tiegħu għall-web - it-triq tal-ikel tal-ipprogrammar modern. U fejn hemm MySQL, hemm SQLs oħra. Ukoll, kull xorta ta 'Fortran-Pascal-Pythons huma deskritti wkoll minn Matryoshka, hekk kif ikollhom idejhom fuqha.

Allura, jistennewna affarijiet kbar - deskrizzjoni applikata tal-lingwa C u deskrizzjoni unifikata tal-lingwi li jsegwuha. “L-għanijiet tagħna huma ċari, il-kompiti tagħna huma definiti. Aħdem, sħabi! (Applaws maltemp, fit-tul, jinbidel f'ovazzjoni. Kulħadd iqum.)"

L-opinjonijiet tiegħek se jinstemgħu b'attenzjoni kbira, l-għajnuna tiegħek fil-ħolqien tal-websajt tal-pupi tal-bejta tintlaqa 'bi gratitudni kbira. Informazzjoni aktar kompleta dwar il-ktieb tinsab fuq il-websajt, moħbija b'mod għaqli f'Matryoshka C.

Sors: www.habr.com

Żid kumment