Matryoshka C. Layered nga sistema sa pinulongan sa programa

Atong sulayan paghanduraw ang chemistry nga wala ang Periodic Table ni Mendeleev (1869). Pila ka mga elemento ang kinahanglan ibutang sa hunahuna, ug sa walay partikular nga han-ay... (Unya - 60.)

Aron mahimo kini, hunahunaa lang ang usa o daghang mga programming language sa usa ka higayon. Parehas nga mga pagbati, parehas nga mamugnaon nga kagubot.

Ug karon mabalik nato ang pagbati sa mga chemist sa ika-XNUMX nga siglo sa dihang gitanyagan sila sa tanan nilang kahibalo, ug gamay pa, sa usa ka Periodic Table.

Matryoshka C. Layered nga sistema sa pinulongan sa programa


Ang libro nga "Matryoshka C. Layered system of program language" nagpresentar sa tanan nga mga yunit sa C nga pinulongan sa usa ka pagtan-aw. Kini nagtugot kanimo sa pag-organisar kanila, pagtul-id sa daan nga impormasyon, ug bisan sa pagpatin-aw sa mismong konsepto sa programa.

Karon, ang impormasyon sa pagprograma nanginahanglan sistematisasyon labi pa sa gibuhat sa mga elemento sa kemikal 150 ka tuig ang milabay.

Ang unang kinahanglanon mao ang pagtudlo. Gisugdan ni Mendeleev ang paghimo sa iyang sistema sa dihang giatubang niya ang pangutana kung unsang elemento ang magsugod sa pag-lecture sa: O, H, N, He, Au... Sa samang higayon, mas sayon ​​alang kaniya - gitudloan niya ang chemistry sa pinakamaayo - mga estudyante sa St. Petersburg University. Ug ang programming gitudlo na sa eskwelahan ug sa dili madugay magsugod sa kindergarten.

Ang ikaduhang panginahanglan mao ang siyentipikanhong paagi. Sa tabang sa Periodic Table, nadiskobrehan ang mga bag-ong elemento ug gitul-id ang impormasyon bahin sa mga daan. Mitabang siya sa paghimo sa modelo sa atomo (1911). Ug uban pa.

Ang ikatulo nga panginahanglan mao ang pagpatin-aw sa konsepto sa usa ka programa.

Ang modernong programming adunay usa ka tiil nga natanggong sa 50s sa ika-XNUMX nga siglo. Kaniadto, ang mga programa yano ra, apan ang mga makina ug mga pinulongan sa makina komplikado, mao nga ang tanan nagtuyok sa mga makina ug mga pinulongan.

Karon ang tanan baliskad: ang mga programa komplikado ug panguna, ang mga sinultian yano ug ikaduha. Gitawag kini nga gipadapat nga pamaagi, nga daw pamilyar sa tanan. Apan ang mga estudyante ug mga developer nagpadayon nga kombinsido nga ang tanan managsama.

Nga nagdala kanato balik sa unang lecture sa Privatdozent Mendeleev. Unsay isulti sa mga freshmen? Asa ang kamatuoran? Mao kana ang pangutana.

Ang libro nga "Matryoshka C" nagtanyag sa tubag niini nga pangutana. Layered nga sistema sa programa nga pinulongan". Dugang pa, kini gitumong dili lamang sa mga estudyante, apan usab sa mga nabansay nga mga programmer, tungod kay kini sila, nga mao, kita, nga kinahanglan mangita sa kamatuoran ug mag-usab sa panglantaw sa kalibutan.

Ang mosunod mao ang summary sa libro.

1. Pasiuna

Sa 1969, ang C nga pinulongan gimugna, nga nahimong sukaranan nga programming language ug nagpabilin nga ingon niini sulod sa 50 ka tuig. Nganong ingon niini? Una sa tanan, tungod kay si C gipadapat ang pinulongan nga naghatag sa programa tawhanon tan-awon hinuon makina. Kini nga kalampusan gisiguro sa mga pinulongan gikan sa pamilyang C: C++, JavaScript, PHP, Java, C# ug uban pa. Ikaduha, kini usa ka mubo ug matahum nga pinulongan.

Bisan pa, ang C nga lengguwahe sa iyang kaugalingon kasagarang gisagol sa machine assembler, sa ingon nagkomplikado ug nagtuis sa panglantaw niini. Ang lain nga labihan mao ang pagpahamtang sa usa ka piho nga "pilosopiya" sa lengguwahe: procedural, object, functional, compiled, interpreted, typed, ug uban pa. Kini makadugang sa emosyon, apan dili makatabang sa paghulagway sa pinulongan nga mas maayo.

Ang kamatuoran anaa sa tunga-tunga, ug alang sa C nga pinulongan kini anaa sa tunga-tunga tali sa pilosopikal ug panglantaw sa makina.

Ang C nga pinulongan dili independente, kini nagsunod sa ordinaryo nga sinulat nga pinulongan, ug sa samang higayon kini nagkontrolar sa assembly language mismo. Kini nga posisyon naghulagway Modelo sa pagsulti sa programa, sumala sa nga ang programa gibahin ngadto sa tulo ka subordinate matang: sinultihan, code, sugo. Ang C nga pinulongan maoy responsable sa ikaduha, tipo sa code.

Ang pagtino sa lugar sa pinulongan sa programa, mahimo nimong organisahon ang kasayuran bahin niini, nga naghimo Layered nga sistema sa pinulongan sa programa, nga nagrepresentar sa C nga pinulongan sa espiritu sa periodic system - sa usa ka panid.

Gitukod ang sistema nga gikonsiderar mga komunidad sa gigamit nga mga pinulongan, nga mitumaw gikan sa ilang pagpaubos sa sinultihan. Usa ka set sa Matryoshka C units nagtugot kanimo sa paghulagway ug pagtandi sa lain-laing mga pinulongan, paghimo sa usa ka serye sa Matryoshkas: C++, PHP, JavaScript, C#, MySQL, Python ug uban pa. Takus ug husto nga ang lainlaing mga pinulongan gihulagway sa mga yunit sa sukaranan nga pinulongan.

2. KAPITULO 1. Modelo sa pakigpulong sa programa. Klaro C

Ang unang kapitulo nagpresentar modelo sa pagsulti sa programa, nga nagpakita sa usa ka gipadapat nga pamaagi. Sumala kaniya, ang programa adunay tulo ka klaro nga sunud-sunod nga mga tipo:

  1. sinultihan - direkta nga sinultihan sa programmer nga nagsulbad sa problema,
  2. coded - pag-encode sa usa ka solusyon sa usa ka mathematical nga porma sa C nga pinulongan (o bisan unsa pa)
  3. ug command - direct machine commands.

Ang modelo sa pagsulti nagpatin-aw nganong ang C usa ka yano ug masabtan nga pinulongan. Gitukod si Xi sa imahe ug pagkasama sa sinultihan sa tawo nga pamilyar kanato.

Ang una nga tipo sa programa mao ang direkta nga sinultihan sa programmer. Ang sinultihan katumbas sa panghunahuna sa tawo. Ang nagsugod nga mga programmer nagsulat og mga programa gamit ang sinultihan - una sa Russian, dayon sa lakang sa paghubad sa mga aksyon ngadto sa code nga pinulongan. Ug kini mao ang tukma sa niini nga modelo nga ang C nga pinulongan gibuhat.

Ang mga konklusyon sa programmer, nga gipahayag sa sinultihan, gi-convert ngadto sa usa ka coded numerical form. Kini nga pagbag-o kinahanglan nga tawagan pamalandong, tungod kay ang sinultihan ug kodigo adunay parehas nga kinaiya (pamalandong - pagkatawo - gender). Kini klaro kaayo kung atong itandi ang sinultihan (sa wala) ug code (sa tuo) nga mga tipo sa programa.

Matryoshka C. Layered nga sistema sa pinulongan sa programa

Katingad-an nga ang pagpamalandong mahitabo nga yano kaayo - nga adunay duha ra nga klase sa mga ekspresyon.

Bisan pa, ang modernong paghubit sa C nga lengguwahe (gikan sa 1978) wala’y igong lista sa mga ngalan aron ihulagway ang lengguwahe sa kinatibuk-an, o alang sa buluhaton sa pagpamalandong sa partikular. Busa, napugos kami nga mamugnaon ug ipaila kini nga mga ngalan.

Ang pagpili sa mga pulong kinahanglang tukma ug tin-aw. Nagkinahanglan kini og usa ka espesyal nga paagi, sa mubo nga gipahayag ingon sa mosunod: estrikto nga paggamit sa lumad nga pinulongan. Para sa English English unta, pero dili mi English. Busa among gamiton ang among nabatonan ug maningkamot sa pagsultig Russian.

Ang pagpamalandong gihimo sa duha ka matang sa mga ekspresyon:

  1. kalkulasyon (HF) - nagpakita sa kausaban sa mga kabtangan sa usa ka butang. Ang kabtangan sa usa ka butang gipahayag sa usa ka numero, unya ang usa ka aksyon sa usa ka kabtangan usa ka aksyon sa usa ka numero - usa ka operasyon.
  2. pagpasakop (Pch) - nagpakita sa kausaban sa han-ay sa mga aksyon. Ang prototype sa Pch kay usa ka speech complex sentence, busa kadaghanan sa mga tipo sa Pch nagsugod sa subordinating conjunctions "kon", "kon dili", "samtang", "para". Ang ubang mga matang sa mga PC nagsangkap niini.

Pinaagi sa dalan, makatuo ka ba nga sa paghulagway sa C wala’y ngalan alang sa mga ekspresyon sa pagkalkula - gitawag kini nga "mga ekspresyon"? Human niini, dili na ikatingala nga walay ngalan ug asosasyon alang sa matang sa subordinasyon, ug sa pagkatinuod ang kakulang sa mga ngalan, mga kahulugan ug mga generalisasyon sa kinatibuk-an. Kini tungod kay ang bantog nga K/R (“The C Language”, Kernighan/Ritchie, 1978) dili usa ka deskripsyon, apan usa ka giya sa paggamit sa pinulongan.

Bisan pa, gusto ko nga adunay usa ka paghulagway sa pinulongan. Busa gitanyagan siya Layered nga sistema sa pinulongan sa programa.

3. KAPITULO 2. Layer nga sistema. Mubo nga C

Ang bisan unsang paghulagway kinahanglan nga tukma ug labi ka mubo. Sa kaso sa usa ka pinulongan sa programa, ang usa ka frontal nga paghulagway lisud.

Dinhi kita adunay usa ka programa. Kini naglangkob sa mga modules. Ang mga module naglangkob sa mga subroutine ug mga koleksyon (struktura). Ang mga subroutine naglangkob sa indibidwal nga mga ekspresyon: deklarasyon, kalkulasyon, subordinasyon. Adunay ingon ka daghan sa napulo ka matang sa subordination. Ang subordination nagkonektar sa mga sublevel ug subroutines. Adunay usab daghang mga ad. Bisan pa, ang mga deklarasyon gilakip dili lamang sa mga subroutine ug sublevel, apan usab sa mga module ug mga koleksyon. Ug kadaghanan sa mga ekspresyon naglangkob sa mga pulong nga lisud kaayo ihulagway nga kasagaran kini gihatag lamang sa duha ka lista - orihinal ug nakuha nga mga pulong, nga mahimong pamilyar ka sa tibuok pagkat-on ug paggamit sa pinulongan. Atong idugang ang mga punctuation mark ug uban pang mga ekspresyon niini.

Sa maong presentasyon, dili sayon ​​sabton kon kinsa ang mibarog kon kinsa.

Ang usa ka direkta nga hierarchical nga pamaagi sa paghulagway sa usa ka pinulongan mahimong sobra ka komplikado. Ang usa ka roundabout nga pagpangita modala ngadto sa usa ka deskripsyon sa pinulongan base sa kinaiya sa pagsulti ug command side. Busa, natawo ang Layer System, nga partially coinciding sa Periodic System of Mendeleev, nga mao usab ply. Ingon nga kini nahimo nga 42 ka tuig pagkahuman sa pagmantala niini (1869), ang periodicity sa sistema nalangkit sa electronic mga sapaw (1911, Bohr-Rutherford nga modelo sa atomo). Usab, ang Layered ug Periodic nga mga sistema parehas sa tabular nga kahikayan sa tanan nga mga yunit sa usa ka panid.

Ang paghulagway sa mga yunit sa pinulongan mubo - 10 lamang ka matang sa mga ekspresyon ug 8 ka matang sa ubang mga yunit, ingon man usab sa makahuluganon ug biswal. Bisan tuod talagsaon alang sa unang kaila.

Ang mga yunit sa pinulongan gibahin sa 6 nga lebel:

  1. mga yunit - mga laray sa lamesa
  2. mga departamento - espesyal nga mga grupo sa genera (mga bahin sa unang linya)
  3. genus - mga selula (panguna nga lebel sa pagbahin)
  4. superspecies - mga separator sa espisye (talagsa ra nga lebel)
  5. mga tipo - mga pormula sa yunit sa ilawom sa cell o gilain
  6. mga pattern - ang mga yunit mismo (para sa mga pulong lamang)

Sampol nga mga pulong naghulagway bokabularyo - usa ka bulag nga subsystem nga gilangkuban sa parehas nga unom nga lebel.

Ang bahin sa sinultihan sa C nga lengguwahe klaro kaayo, bisan kung kini angayan nga paghulagway. Apan ang command nga bahin sa pinulongan tukma nga may kalabutan sa compilation control, diin ang ikatulo nga matang sa programa gihimo - command. Ania na kita sa labing kulbahinam nga aspeto sa C nga pinulongan: katahum.

4. PAGSUNOD SA MGA KAPITULO. Gwapo Si

Ang C nga pinulongan mao ang basehan sa modernong programming. Ngano man? Una, tungod sa labing kadaghan nga pagsuwat sa sinultihan. Ikaduha, tungod kay kini nindot nga nakalapas sa mga limitasyon sa pagproseso sa numero sa makina.

Unsa man gyud ang gisugyot ni Xi? Imahe ug layer.

Ang pulong nga "imahe" kay hubad sa English nga pulong nga "type", nga gikan sa Griyego nga "prototype" - "type". Sa pinulongang Ruso, ang pulong nga "matang" wala magpasabot sa sukaranan sa konsepto nga gipahayag; dugang pa, kini gilibog sa auxiliary nga kahulogan "matang".

Sa sinugdan, ang imahe nagsulbad sa usa ka lunsay nga problema sa pagkalkula sa makina, ug dayon nahimong usa ka runway alang sa pagkatawo sa mga pinulongan nga butang.

Gisulbad dayon sa layer ang daghang mga problema - pareho sa makina ug gigamit. Busa, ang konsiderasyon magsugod sa usa ka single-task nga imahe ug mobalhin ngadto sa multi-task layer.

Usa sa dili maayo nga mga bahin sa makasaysayan nga pagprograma mao nga kadaghanan sa mga konsepto, lakip ang mga sukaranan, gihatag nga wala’y mga kahulugan. "Ang programming language (ngalan sa mga suba) adunay integer ug naglutaw nga mga tipo sa numero ..." ug sila nagkamot pa. Dili kinahanglan nga ipasabut kung unsa ang usa ka "tipo" (larawan), tungod kay ang mga tagsulat mismo dili hingpit nga makasabut niini ug mohilom kini "alang sa katin-awan." Kung sila i-pin sa bungbong, maghatag sila og dili klaro ug walay pulos nga kahulugan. Makatabang kaayo ang pagtago sa luyo sa langyaw nga mga pulong: para sa Russian nga mga awtor - luyo sa English (type), para sa Englishmen - luyo sa French (subroutine), Greek (polymorphism), Latin (encapsulation) o sa ilang mga kombinasyon (ad-hoc polymorphism).

Apan dili kini ang atong kapalaran. Ang among gipili mao ang mga kahulugan nga adunay gipataas nga visor sa purong Ruso.

Hulagway

Hulagway mao ang usa ka pasiuna nga ngalan sa usa ka gidaghanon, nga naghubit sa 1) ang intrinsic nga mga kabtangan sa gidaghanon ug 2) ang pagpili sa mga operasyon alang sa gidaghanon.

Ang pulong nga "type" (type) katumbas sa unang bahin sa kahulugan: "intrinsic nga mga kabtangan sa usa ka gidaghanon." Apan ang panguna nga kahulugan sa imahe naa sa ikaduhang bahin: "pagpili sa mga operasyon sa gidaghanon."

Ang punto sa pagsugod alang sa pagpaila sa usa ka imahe sa C usa ka normal nga kalkulasyon, sama sa operasyon sa pagdugang.

Papel Ang matematika, gisulat man pinaagi sa kamot o giimprinta, wala kaayo maghimog kalainan tali sa mga matang sa mga numero, kasagarang maghunahuna nga kini tinuod. Busa, ang ilang mga operasyon sa pagproseso dili klaro.

Makina Ang matematika hugot nga nagbahin sa mga numero ngadto sa mga integer ug mga fraction. Ang lain-laing mga matang sa mga numero gitipigan nga lahi sa memorya ug giproseso sa lain-laing mga instruksyon sa processor. Pananglitan, ang mga instruksyon sa pagdugang sa mga integer ug mga fraction duha ka lain-laing mga instruksyon nga katumbas sa duha ka lain-laing mga processor node. Apan walay sugo alang sa pagdugang sa integer ug fractional nga mga argumento.

Gipadapat mathematics, nga mao, ang C nga lengguwahe, nagbulag sa mga tipo sa mga numero, apan naghiusa sa mga operasyon: ang pagdugang alang sa mga integer ug/o mga fraction gisulat sa usa ka aksyon nga timaan.

Ang usa ka tin-aw nga kahulugan sa imahe sa konsepto nagtugot kanamo nga siguradong maghisgot bahin sa duha pa nga mga konsepto: kadako и operasyon.

Magnitude ug operasyon

Ang kadaghan — ang numero nga giproseso.

Operasyon — pagproseso sa mga kantidad sa mga inisyal nga kantidad (mga argumento) aron makuha ang katapusang numero (total).

Ang magnitude ug operasyon managsama. Ang matag operasyon usa ka gidaghanon tungod kay kini adunay numerical nga resulta. Ug ang matag bili mao ang resulta sa pagbalhin sa usa ka bili ngadto/gikan sa rehistro sa processor, nga mao, ang resulta sa operasyon. Bisan pa niini nga relasyon, ang nag-unang butang mao ang posibilidad sa ilang bulag nga paghulagway, bisan pa sa pagsubli sa usa ka pulong sa lain-laing mga seksyon sa diksyonaryo, nga mao ang mahitabo sa MA3.

Ang pamaagi sa makina nagbahin sa tanan nga mga numero nga gigamit sa programmer mga mando и ang datos. Kaniadto, silang duha mga numero, pananglitan, ang mga mando gisulat sa mga code sa numero. Bisan pa, sa gigamit nga mga lengguwahe, ang mga mando nahunong nga numero ug nahimo mga pulong и mga timailhan sa aksyon. Ang "data" lamang ang nagpabilin isip mga numero, apan dili makatarunganon ang pagpadayon sa pagtawag niini nga paagi, tungod kay sa pagbalhin gikan sa usa ka makina ngadto sa punto sa matematika, ang mga numero mao ang gidaghanon nga gibahin sa orihinal (ang datos) ug katapusan (gikinahanglan). Ang "Wala mailhi nga datum" mahimong hungog.

Ang mga team gibahin usab sa duha ka matang sa mga aksyon: matematika ug serbisyo. Mga aksyon sa matematika - mga operasyon. Atong hisgotan ang opisyal nga butang unya.

Sa C nga mga lengguwahe, ang kasagarang papel ug makina nga dili klaro, o usa, nga mga operasyon sa matematika halos sa tanan mahimong daghang.

Ang daghang mga operasyon mao ang daghang mga operasyon sa parehas nga ngalan nga adunay lainlaing mga lahi sa mga argumento ug lainlain, parehas sa kahulugan, mga aksyon.

Ang mga argumento sa integer katumbas sa usa ka tibuuk nga operasyon, ug ang mga argumento sa fractional katumbas sa usa ka operasyon nga fractional. Kini nga kalainan labi ka tin-aw sa panahon sa operasyon sa dibisyon, kung ang ekspresyon nga 1/2 naghatag usa ka kinatibuk-an nga 0, dili 0,5. Ang ingon nga notasyon dili katumbas sa mga lagda sa papel nga matematika, apan ang C nga pinulongan wala maningkamot sa pagtuman niini (dili sama sa Fortran) - kini nagdula sumala sa iyang kaugalingon. gipadapat mga lagda.

Sa kaso sa pagsagol sa mga integer ug mga fraction, ang husto ra ang gilakip pagbutang sa mga bili sa argumento — pinili nga pagbag-o sa usa ka bili gikan sa usa ka larawan ngadto sa lain. Sa tinuud, kung magdugang usa ka integer ug usa ka fractional nga numero, ang resulta fractional, mao nga ang imahe sa operasyon mikuha ang operasyon sa pag-convert sa usa ka integer nga argumento ngadto sa usa ka fractional nga bili.

Pipila ka mga operasyon nagpabilin daghanug ulitawo. Ang maong mga operasyon gihubit lamang alang sa usa ka matang sa argumento: division remainder - integer arguments, stacking (bitwise operations) - natural integers. Ang Ma3 nagpakita sa kadaghanon sa mga operasyon nga adunay mga timailhan (#^) nga nagpaila sa mga hulagway diin ang operasyon gihubit. Kini usa ka importante apan kaniadto wala matagad nga kabtangan sa matag operasyon.

Ang tanan nga mga gimbuhaton kay arbitraryong mga operasyon sa yunit. Ang eksepsiyon mao ang mga operator - non-bracket functions, gitukod sa pinulongan (orihinal nga mga operasyon).

Tabang

Tabang - aksyon nga nag-uban sa operasyon.

Kung atong isipon ang operasyon isip nag-unang aksyon, nan mahimo natong mailhan ang duha nga nag-uban nga naghatag sa operasyon ug lahi niini. Kini mao ang 1) variable control ug 2) subordination. Kini nga aksyon gitawag tabang.

Dinhi kinahanglan naton nga magpalayo ug isulti nga gilain bahin sa mga hubad sa Ruso sa mga libro sa programming. Usa ka bag-ong pulong ang gipaila sa teksto sa K/R aron irekord ang mga aksyon pamahayag (expression), nga misulay sa pagbahin sa mga konsepto sa usa ka machine command ngadto sa lain-laing mga aksyon: 1) operasyon, 2) deklarasyon, ug 3) subordination (gitawag nga "kontrol constructs"). Kini nga pagsulay gilubong sa mga maghuhubad sa Russia, gipulihan ang "ekspresyon" sa pulong nga "operator", nga:

  1. nahimong susama sa pulong sa makina nga "sugo",
  2. nahimo nga susama sa hugpong sa mga pulong nga "sign of action",
  3. ug nakadawat usab og walay kinutuban nga gidaghanon sa dugang nga mga bili. Sa ato pa, nahimo kini nga susama sa English nga artikulo nga "uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"

Binagbinaga ang kaupod nga mga aksyon, ukon tabang.

Pagkontrol sa variable

Pagkontrol sa variable (UP) - paghimo/pagtangtang sa variable nga mga selula.
Ang UE mahitabo sa walay pagduhaduha sa dihang nagpahayag sa usa ka variable, nga gisulat na alang sa laing rason - aron ipakita ang hulagway sa bili. Usa ra ka pagtan-aw ang klaro nga gidumala dugang nga mga variable gamit ang malloc() ug free() functions.

Kini kinahanglan nga matikdan nga ang mga tin-aw nga mga aksyon mas sayon ​​​​sa pagsulat, tungod kay wala sila magkinahanglan sa pagsulat sa bisan unsa, apan kini mas lisud nga masabtan - mas lisud ang pagkonsiderar ug paghubad.

Pagpasakop

Pagpasakop - pagkonektar / pag-disable sa mga seksyon sa layer.

Ang C nga lengguwahe nagtanyag usa ka gipadapat nga pamaagi sa pagkontrol sa han-ay sa mga aksyon, lahi sa assembler - subordination. Kini nagpakita ug nagpalambo sa usa ka hugpong sa pulong nga komplikado nga mga pulong nga adunay usa ka tin-aw nga pagkabahin sa panguna nga bahin (subordination clause) ug ang subordinate nga bahin (sublevel/subroutine nga mga seksyon).

Ang deklarasyon ug pagsumite hingpit nga gitukod sa konsepto sapaw.

Layer

Layer usa ka limitado nga single-level nga pinili nga hugpong sa mga ekspresyon.

Ang lut-od sa dayag ug sa dayag mikuha sa daghang mga buluhaton sa usa ka higayon:

  1. pag-organisar sa programa
  2. limitahan ang visibility sa mga ngalan (implicitly),
  3. pagdumala sa mga variable (mga selula sa memorya) (implicit),
  4. kahulugan sa subordinate clause alang sa subordination,
  5. kahulugan sa mga gimbuhaton ug mga pagpili ug uban pa.

Wala'y konsepto sa layer sa mga pinulongan sa makina, mao nga wala kini makita sa K/R, ug kung adunay wala didto, nan ang pagpaila niini sa sunod nga mga libro mahimong erehiya ug freethinking. Busa, ang konsepto sa usa ka layer wala makita, bisan kung kini labi ka mapuslanon ug klaro kaayo.

Kung wala ang usa ka layer, imposible nga ipasabut sa kadali ug tin-aw ang daghang mga aksyon ug mga lagda sa programa. Pananglitan, nganong ang goto, sama ka yano sa tulo ka kopecks, dili maayo, ug ang malisud nga samtang maayo. Mahimo ka lamang manumpa nga walay mahimo, sama sa gibuhat ni Dijkstra ("ang kahanas sa mga programmer usa ka function nga balit-ad nga nagdepende sa kasubsob sa pagkahitabo sa mga pahayag sa goto sa ilang mga programa." Sa laktud, ang mga kanding lamang ang naggamit sa goto. Ang lebel sa katarungan mao ang Dios.) Tinuod, kini dili kaayo makahadlok kung ang imong mga libro Dili kinahanglan nga ipasabut ang bisan unsa, apan, ingon sa giingon na namon, dili kini ang among kapalaran.

Pinaagi sa dalan, kini mahimong gituohan nga Dan Ritchie mibiya goto tukma ingon nga usa ka yawe sa pagpangita alang sa pipila ka wala nganli nga konsepto, tungod kay walay panginahanglan o katahum sa ekspresyon goto. Apan adunay panginahanglan alang sa usa ka yano ug masabtan nga katin-awan sa bag-ong mga baruganan sa pinulongan, nga Richie sa iyang kaugalingon dili gusto sa paghatag, ug nga tukma base sa konsepto. sapaw.

Lihay

Lihay - pagbag-o sa naandan nga mga kabtangan sa bag-ong ngalan.

Ang labing hinungdanon nga pagtipas tukma nga may kalabotan sa mga kabtangan sa layer sa programa, ug gihulagway sa usa ka pulong nga "static", nga adunay lahi nga kahulugan sa matag tipo sa layer.

5. ANG KATAPUSAN NGA KAPITULO. Pagkakomon sa gigamit nga mga pinulongan

Ang gipadapat nga mga pinulongan mao ang mahulagwayon mga pinulongan (adunay hulagway, "gi-type"). Gibase kini sa dayag o dili klaro nga paggamit sa hulagway. Dugang pa, dinhi pag-usab ang usa ka panagsumpaki makita: ang usa ka tin-aw nga hulagway mas masabtan, apan dili kaayo kombenyente, ug vice versa.

Matryoshka C. Layered nga sistema sa pinulongan sa programa

(Ang layout sa lamesa wala pa gihatag, mao nga ang lamesa gipakita uban ang usa ka litrato.)

Pagkahuman sa C, ang pag-uswag sa gigamit nga mga sinultian mikuha sa dalan sa pagdugang sa ilang pagkamahulagwayon. Ang labing importante alang sa pagsabot sa taas nga paghanduraw mao ang direktang kaliwat sa C - ang C++ nga pinulongan. Gipalambo niya ang ideya sa usa ka arbitraryong pagpili sa mga operasyon alang sa gidaghanon ug gilangkob kini pinasukad sa pagpili sa sintetikong ekspresyon, nga nakadawat og bag-ong ngalan - butang. Bisan pa, ang C ++ dili ingon ka mubo ug makapahayag sama sa C tungod sa sobra nga gibug-aton sa mga bag-ong tipo sa koleksyon ug ang mga kauban nga lagda niini. By the way, maghisgot ta bahin sa “overload”.

Overloading ug polymorphism

Ang pulong nga "sobra nga karga" usa ka karaan nga termino sa pagkat-on sa makina alang sa paghimo daghang operasyon.

Mga programmer sa makina (sistema). pluralidad Ang mga operasyon mahimong makalagot: "Unsa ang gipasabut niini nga timaan (+): pagdugang mga integer, pagdugang mga tipik, o bisan pagbalhin?! Sa among panahon wala sila magsulat og ingon niana!” Busa ang negatibo nga konotasyon sa pinili nga pulong (“overkill”, “gikapoy”). Alang sa usa ka programmer sa aplikasyon, daghang mga operasyon ang sukaranan, ang panguna nga kalamposan ug kabilin sa C nga lengguwahe, natural kaayo nga kini kanunay dili mailhan.

Sa C++ nga pinulongan pluralidad gipalapdan dili lamang sa orihinal nga mga operasyon, apan usab sa mga gimbuhaton - pareho nga indibidwal ug gihiusa sa mga klase - mga pamaagi. Uban sa daghang mga pamaagi miabut ang abilidad sa pag-override kanila sa gipalugdang mga klase, nga dili klaro nga gitawag nga "polymorphism." Ang kombinasyon sa polymorphism ug overload nagpatunghag usa ka explosive mixture nga nabahin ngadto sa duha ka polymorphism: "tinuod" ug "ad-hoc." Posible nga masabtan kini bisan pa sa gi-assign nga mga ngalan. Ang dalan padulong sa ad gisemento sa mga langyaw nga ngalan.

Ang usa ka deklarasyon sa porma nga "overload" mas maayo nga gipahayag sa pulong dugang nga pahibalo - pagdugang usa ka deklarasyon sa usa ka function sa parehas nga ngalan nga adunay mga argumento sa lahi nga imahe.

Ang usa ka deklarasyon sa porma nga "polymorphism" mas maayo nga gitawag re-announcement — usa ka nagsapaw-sapaw nga deklarasyon sa usa ka bag-ong extension layer sa usa ka function sa parehas nga ngalan nga adunay mga argumento sa parehas nga imahe.

Unya kini mahimong dali nga masabtan nga ang parehas nga mga pamaagi sa lainlaing mga imahe (mga argumento) - dugang gipahibalo, ug usa ka hulagway - gipahibalo pag-usab.

Ang mga pulong nga Ruso nagdesisyon.

Runway

Ang pagkonsiderar sa mga konsepto sa labi ka mahulagwayong mga pinulongan nagpamatuod sa kamahinungdanon sa usa ka tin-aw nga kahulugan sa sukaranang mga konsepto. Sa tama nga pagkahubit sa C, ang pagkat-on sa mga high-figurative nga mga pinulongan mahimong sayon ​​ug makalingaw.

Kini ilabi na nga importante alang sa mahulagwayon kaayo nga mga pinulongan (PHP, JavaScript). Para nila, ang importansya sa mga butang (composite images) nahimong mas taas pa kay sa C++, pero ang mismong konsepto sa usa ka imahe nahimong dili klaro ug idlas. Gikan sa punto sa panglantaw sa kasayon, sila nahimong mas simple, apan gikan sa punto sa panglantaw sa pagsabot, sila nahimong mas lisud.

Busa, kinahanglan ka magsugod sa pagkat-on sa mga programming language gamit ang C nga pinulongan ug mopadayon sa sunodsunod nga mga pinulongan sa pamilyang C.

Ingon usab niana ang paghubit sa mga pinulongan. Ang lainlaing mga lengguwahe adunay parehas, o mas gamay, set sa mga gender sa yunit kaysa sa C nga pinulongan. Ang gidaghanon sa mga tipo ug mga sample mahimong magkalahi sa duha ka direksyon: Ang C++ adunay mas daghang tipo kaysa C, samtang ang JavaScript adunay gamay.

Ang MySQL nga pinulongan angay nga espesyal nga paghisgot. Morag walay komon, apan siya hingpit nga gihulagway ni Matryoshka, ug ang pag-ila kaniya nahimong mas paspas ug mas sayon. Nga mao ang importante, tungod sa iyang importansya alang sa web - ang dalan kan-anan sa modernong programming. Ug kung diin adunay MySQL, adunay uban pang mga SQL. Aw, ang tanan nga mga matang sa Fortran-Pascal-Pythons gihulagway usab ni Matryoshka, sa diha nga makuha nila ang ilang mga kamot niini.

Mao nga, daghang mga butang ang naghulat kanamo - usa ka gipadapat nga paghulagway sa C nga sinultian ug usa ka hiniusa nga paghulagway sa mga sinultian nga nagsunod niini. "Ang among mga katuyoan klaro, ang among mga buluhaton gipasabut. Pagtrabaho, mga kauban! (Mabagyo, dugay nga palakpak, nahimong ovation. Ang tanan nanindog.)"

Ang imong mga opinyon paminawon uban ang dakong pagtagad, ang imong tabang sa paghimo sa nesting dolls website madawat uban ang dakong pasalamat. Ang dugang nga kompleto nga kasayuran bahin sa libro naa sa website, maayong gitago sa Matryoshka C.

Source: www.habr.com

Idugang sa usa ka comment