MÄÄ£inÄsim iedomÄties Ä·Ä«miju bez Mendeļejeva periodiskÄs tabulas (1869). Cik elementu bija jÄpatur prÄtÄ, un ne Ä«paÅ”i secÄ«bÄ... (Tad - 60.)
Lai to izdarÄ«tu, vienkÄrÅ”i padomÄjiet par vienu vai vairÄkÄm programmÄÅ”anas valodÄm vienlaikus. TÄs paÅ”as sajÅ«tas, tas pats radoÅ”ais haoss.
Un tagad mÄs varam no jauna izdzÄ«vot XNUMX. gadsimta Ä·Ä«miÄ·u sajÅ«tas, kad viÅiem tika piedÄvÄtas visas zinÄÅ”anas un nedaudz vairÄk vienÄ periodiskajÄ tabulÄ.
GrÄmata āMatryoshka C. Programmu valodas slÄÅu sistÄma" vienÄ mirklÄ« parÄda visas C valodas vienÄ«bas. Tas ļauj tos sakÄrtot, labot novecojuÅ”u informÄciju un pat precizÄt paÅ”u programmas koncepciju.
MÅ«sdienÄs programmÄÅ”anas informÄcijai ir nepiecieÅ”ama sistematizÄcija pat vairÄk nekÄ Ä·Ä«miskajiem elementiem pirms 150 gadiem.
PirmÄ nepiecieÅ”amÄ«ba ir mÄcÄ«Å”ana. Mendeļejevs sÄka veidot savu sistÄmu, kad viÅÅ” saskÄrÄs ar jautÄjumu, ar kuru elementu sÄkt lasÄ«t lekcijas: O, H, N, He, Au... TajÄ paÅ”Ä laikÄ viÅam bija vieglÄk - viÅÅ” mÄcÄ«ja Ä·Ä«miju labÄkajiem - studentiem. SanktpÄterburgas universitÄte. Un programmÄt jau mÄca skolÄ un drÄ«z sÄksies bÄrnudÄrzÄ.
OtrÄ nepiecieÅ”amÄ«ba ir zinÄtniska pieeja. Ar PeriodiskÄs tabulas palÄ«dzÄ«bu tika atklÄti jauni elementi un izlabota informÄcija par vecajiem. ViÅa palÄ«dzÄja izveidot atoma modeli (1911). Un tÄ tÄlÄk.
TreÅ”Ä nepiecieÅ”amÄ«ba ir programmas jÄdziena precizÄÅ”ana.
MÅ«sdienu programmÄÅ”ana ir iestrÄgusi 50. gadsimta XNUMX. gados. Toreiz programmas bija vienkÄrÅ”as, bet maŔīnas un maŔīnu valodas bija sarežģītas, tÄpÄc viss grozÄ«jÄs ap maŔīnÄm un valodÄm.
Tagad viss ir otrÄdi: programmas ir sarežģītas un primÄras, valodas ir vienkÄrÅ”as un sekundÄras. To sauc par lietiŔķo pieeju, kas, Ŕķiet, ir pazÄ«stama visiem. TaÄu studenti un izstrÄdÄtÄji turpina bÅ«t pÄrliecinÄti, ka viss ir pa vecam.
Tas mÅ«s atgriež pie pirmÄs Privatdozent Mendeļejeva lekcijas. Ko teikt pirmkursniekiem? Kur ir patiesÄ«ba? Tas ir jautÄjums.
GrÄmata āMatryoshka Cā piedÄvÄ atbildi uz Å”o jautÄjumu. Programmu valodas slÄÅu sistÄma". TurklÄt tas ir adresÄts ne tikai studentiem, bet arÄ« apmÄcÄ«tiem programmÄtÄjiem, jo āātieÅ”i viÅiem, tas ir, mums ir jÄmeklÄ patiesÄ«ba un jÄmaina pasaules uzskats.
TÄlÄk ir sniegts grÄmatas kopsavilkums.
1. Ievads
1969. gadÄ tika izveidota C valoda, kas kļuva par pamata programmÄÅ”anas valodu un tÄ ir palikusi 50 gadus. KÄpÄc tas tÄ ir? PirmkÄrt, tÄpÄc, ka C ir piemÄroja valoda, kas deva programmu humÄns skata vietÄ maŔīna. Å o sasniegumu nodroÅ”inÄja valodas no C saimes: C++, JavaScript, PHP, Java, C# un citas. OtrkÄrt, tÄ ir Ä«sa un skaista valoda.
TomÄr pati C valoda parasti tiek sajaukta ar maŔīnu montÄtÄju, tÄdÄjÄdi sarežģījot un izkropļojot tÄs uztveri. Otra galÄjÄ«ba ir noteiktas āfilozofijasā uzspieÅ”ana valodai: procesuÄla, objekta, funkcionÄla, apkopota, interpretÄta, drukÄta utt. Tas palielina emocijas, bet nepalÄ«dz labÄk aprakstÄ«t valodu.
PatiesÄ«ba ir pa vidu, un C valodai tÄ ir strikti pa vidu starp filozofisko un maŔīnu uztveri.
C valoda nav neatkarÄ«ga, tÄ pakļaujas parastajai rakstu valodai, un tajÄ paÅ”Ä laikÄ tÄ kontrolÄ paÅ”u montÄžas valodu. Å Ä« pozÄ«cija apraksta Programmas runas modelis, saskaÅÄ ar kuru programma ir sadalÄ«ta trÄ«s pakÄrtotos veidos: runa, kods, komanda. C valoda ir atbildÄ«ga par otro, koda veidu.
Nosakot valodas vietu programmÄ, varat sakÄrtot informÄciju par to, kas padara SlÄÅu programmu valodu sistÄma, kas pÄrstÄv C valodu periodiskÄs sistÄmas garÄ - uz vienas lapas.
SistÄma ir veidota, Åemot vÄrÄ lietiŔķo valodu kopienas, kas izriet no viÅu runas pakļautÄ«bas. Viens Matryoshka C vienÄ«bu komplekts ļauj aprakstÄ«t un salÄ«dzinÄt dažÄdas valodas, veidojot Matryoshkas sÄriju: C++, PHP, JavaScript, C#, MySQL, Python un tÄ tÄlÄk. Ir cienÄ«gi un pareizi, ka dažÄdas valodas apraksta ar pamatvalodas vienÄ«bÄm.
2. NODAĻA 1. Programmas runas modelis. Skaidrs C
PirmajÄ nodaÄ¼Ä ir sniegta informÄcija programmas runas modelis, atspoguļojot piemÄrotu pieeju. PÄc viÅa teiktÄ, programmai ir trÄ«s acÄ«mredzami secÄ«gi veidi:
- runa - programmÄtÄja tieÅ”a runa, kas risina problÄmu,
- kodÄts - risinÄjuma kodÄÅ”ana matemÄtiskÄ formÄ C valodÄ (vai jebkurÄ citÄ)
- un komanda ā tieÅ”Äs maŔīnas komandas.
Runas modelis izskaidro, kÄpÄc C ir vienkÄrÅ”a un saprotama valoda. Sji ir veidota cilvÄka runas tÄlÄ un lÄ«dzÄ«bÄ, kas mums ir pazÄ«stama.
Pirmais programmas veids ir programmÄtÄja tieÅ”Ä runa. Runa atbilst cilvÄka domÄÅ”anai. IesÄcÄji programmÄtÄji raksta programmas, izmantojot runu - vispirms krievu valodÄ, pÄc tam soli pa solim tulkojot darbÄ«bas koda valodÄ. Un tieÅ”i uz Ŕī modeļa tika izveidota C valoda.
ProgrammÄtÄja secinÄjumi, kas izteikti runÄ, tiek pÄrvÄrsti kodÄtÄ skaitliskÄ formÄ. Å o transformÄciju vajadzÄtu saukt pÄrdomas, jo runai un kodam ir vienÄds raksturs (refleksija - dzimÅ”ana - dzimums). Tas ir diezgan acÄ«mredzams, ja salÄ«dzinÄm programmas runas (kreisajÄ pusÄ) un koda (labajÄ pusÄ) veidus.
Interesanti, ka refleksija notiek ļoti vienkÄrÅ”i - tikai ar divu veidu izteiksmÄm.
TomÄr mÅ«sdienu C valodas aprakstÄ (no 1978. gada) nav pietiekama nosaukumu saraksta nedz, lai aprakstÄ«tu valodu kopumÄ, nedz arÄ« konkrÄti refleksijas uzdevumam. TÄpÄc esam spiesti darboties radoÅ”i un ieviest Å”os vÄrdus.
VÄrdu izvÄlei jÄbÅ«t precÄ«zai un skaidrai. Tam bija nepiecieÅ”ama Ä«paÅ”a pieeja, kas Ä«si izteikta Å”Ädi: stingra dzimtÄs valodas lietoÅ”ana. Angļiem tas bÅ«tu angļi, bet mÄs neesam angļi. TÄpÄc izmantosim to, kas mums ir, un mÄÄ£inÄsim runÄt krieviski.
Refleksija tiek veikta ar divu veidu izteiksmÄm:
- aprÄÄ·ins (HF) - atspoguļo objekta Ä«paŔību izmaiÅas. Objekta Ä«paŔību izsaka ar skaitli, tad darbÄ«ba uz Ä«paÅ”umu ir darbÄ«ba uz skaitli ā darbÄ«ba.
- pakļautÄ«ba (Pch) - atspoguļo izmaiÅas darbÄ«bu secÄ«bÄ. Pch prototips ir runas komplekss teikums, tÄpÄc lielÄkÄ daļa Pch veidu sÄkas ar pakÄrtotiem savienojumiem ājaā, ācitÄdiā, ākamÄrā, āparā. Cita veida datori tos papildina.
Starp citu, vai varat noticÄt, ka C aprakstÄ aprÄÄ·ina izteiksmÄm nav nosaukuma - tÄs vienkÄrÅ”i sauc par āizteiksmÄmā? PÄc tam vairs nebÅ«s pÄrsteidzoÅ”i, ka padotÄ«bas veidam nav nosaukuma un asociÄcijas, kÄ arÄ« nosaukumu, definÄ«ciju un vispÄrinÄjumu mazums kopumÄ. Tas ir tÄpÄc, ka slavenais K/R (āThe C Languageā, Kernighan/Ritchie, 1978) nav apraksts, bet gan valodas lietoÅ”anas ceļvedis.
TomÄr es tomÄr vÄlÄtos saÅemt valodas aprakstu. TÄpÄc viÅÅ” tiek piedÄvÄts SlÄÅu programmu valodu sistÄma.
3. 2. NODAÄ»A. SlÄÅu sistÄma. ÄŖss C
Jebkuram aprakstam jÄbÅ«t precÄ«zam un ļoti kodolÄ«gam. Programmas valodas gadÄ«jumÄ frontÄlais apraksts ir sarežģīts.
Å eit mums ir programma. Tas sastÄv no moduļiem. Moduļi sastÄv no apakÅ”programmÄm un kolekcijÄm (struktÅ«ras). ApakÅ”programmas sastÄv no atseviŔķÄm izteiksmÄm: deklarÄcijÄm, aprÄÄ·iniem, pakÄrtotÄ«bas. Ir pat desmit pakļautÄ«bas veidi. SubordinÄcija savieno apakÅ”lÄ«meÅus un apakÅ”programmas. Ir arÄ« vairÄki sludinÄjumi. TaÄu deklarÄcijas tiek iekļautas ne tikai apakÅ”programmÄs un apakÅ”lÄ«meÅos, bet arÄ« moduļos un kolekcijÄs. Un lielÄkÄ daļa izteicienu sastÄv no vÄrdiem, kurus ir tik grÅ«ti aprakstÄ«t, ka tie parasti ir vienkÄrÅ”i doti divos sarakstos ā oriÄ£inÄlvÄrdos un atvasinÄtajos vÄrdos, ar kuriem jÅ«s iepazÄ«sities valodas apguves un lietoÅ”anas laikÄ. Tam pievienosim pieturzÄ«mes un vairÄkus citus izteicienus.
Å ÄdÄ prezentÄcijÄ nav viegli saprast, kurÅ” uz kura stÄvÄja.
TieÅ”a hierarhiska pieeja valodas aprakstam bÅ«tu pÄrÄk sarežģīta. Apļveida meklÄÅ”ana noved pie valodas apraksta, pamatojoties uz tÄs runas raksturu un komandu pusi. TÄdÄjÄdi radÄs slÄÅu sistÄma, kas daļÄji sakrÄ«t ar Mendeļejeva periodisko sistÄmu, kas arÄ« ir kÄrta. KÄ izrÄdÄ«jÄs 42 gadus pÄc publicÄÅ”anas (1869), sistÄmas periodiskums ir saistÄ«ts ar elektronisko slÄÅi (1911, Bohr-Rutherford atoma modelis). ArÄ« SlÄÅu un PeriodiskÄs sistÄmas ir lÄ«dzÄ«gas visu vienÄ«bu tabulas izkÄrtojumÄ vienÄ lapÄ.
Valodas vienÄ«bu apraksts ir Ä«ss - tikai 10 izteicienu veidi un 8 citu vienÄ«bu veidi, kÄ arÄ« saturiski un vizuÄli. Lai gan neparasti pirmajai paziÅai.
Valodas vienÄ«bas ir sadalÄ«tas 6 lÄ«meÅos:
- vienības - tabulas rindas
- nodaļas - Ä«paÅ”as Ä£inÅ”u grupas (pirmÄs rindas daļas)
- ģints - Ŕūnas (galvenais dalīŔanas līmenis)
- supersugas ā sugu atdalÄ«tÄji (rets lÄ«menis)
- veidi - vienÄ«bas formulas Ŕūnas apakÅ”Ä vai atseviŔķi
- modeļi - paÅ”as vienÄ«bas (tikai vÄrdiem)
Apraksta vÄrdu paraugi vÄrdnÄ«ca - atseviŔķa apakÅ”sistÄma, kas sastÄv no tiem paÅ”iem seÅ”iem lÄ«meÅiem.
C valodas runas sastÄvdaļa ir diezgan acÄ«mredzama, lai gan tÄ joprojÄm ir apraksta. Bet valodas komandu daļa ir tieÅ”i saistÄ«ta ar kompilÄcijas vadÄ«bu, kuras laikÄ tiek veidota treÅ”Ä veida programma - komanda. Å eit mÄs nonÄkam pie aizraujoÅ”ÄkÄ C valodas aspekta: skaistuma.
4. TÄLÄKÄS NODAÄ»AS. Skaistais Si
C valoda ir mÅ«sdienu programmÄÅ”anas pamats. KÄpÄc? PirmkÄrt, vislielÄkÄs runas atbilstÄ«bas dÄļ. OtrkÄrt, tÄpÄc, ka tas skaisti apiet maŔīnu numuru apstrÄdes ierobežojumus.
Ko tieÅ”i Sji ierosinÄja? AttÄls un slÄnis.
VÄrds "image" ir tulkojums no angļu valodas vÄrda "type", kas cÄlies no grieÄ·u "prototype" - "tips". Krievu valodÄ vÄrds ātipsā nenorÄda izteiktÄ jÄdziena stÅ«rakmeni, turklÄt tas tiek sajaukts ar palÄ«gnozÄ«mi ātipsā.
SÄkotnÄji attÄls atrisinÄja tÄ«ri maŔīnu aprÄÄ·ina problÄmu, un pÄc tam kļuva par objektu valodu raÅ”anÄs skrejceļu.
SlÄnis uzreiz atrisinÄja vairÄkas problÄmas ā gan ar maŔīnu, gan uzklÄt. TÄpÄc izskatÄ«Å”ana sÄksies ar viena uzdevuma attÄlu un pÄries uz vairÄku uzdevumu slÄni.
Viena no nepatÄ«kamajÄm vÄsturiskÄs programmÄÅ”anas iezÄ«mÄm ir tÄ, ka lielÄkÄ daļa jÄdzienu, tostarp pamata jÄdzieni, ir doti bez definÄ«cijÄm. āProgrammÄÅ”anas valodai (upju nosaukumiem) ir veselu skaitļu un peldoÅ”o skaitļu veidi...ā, un viÅi skrÄpÄja tÄlÄk. Nav nepiecieÅ”ams definÄt, kas ir "tips" (attÄls), jo paÅ”i autori to lÄ«dz galam nesaprot un "skaidrÄ«bas labad" to noklusÄs. Ja tie ir piestiprinÄti pie sienas, tie dos neskaidru un bezjÄdzÄ«gu definÄ«ciju. Ä»oti palÄ«dz slÄpties aiz sveÅ”vÄrdiem: krievu autoriem - aiz angļu valodas (tips), angļiem - aiz franÄu valodas (apakÅ”programma), grieÄ·u (polimorfisms), latÄ«Åu (iekapsulÄÅ”ana) vai to kombinÄcijÄm (ad-hoc polimorfisms).
Bet tas nav mÅ«su liktenis. MÅ«su izvÄle ir definÄ«cijas ar paceltu vizieri tÄ«rÄ krievu valodÄ.
AttÄls
AttÄls ir daudzuma prefiguratÄ«vs nosaukums, kas nosaka 1) daudzuma raksturÄ«gÄs Ä«paŔības un 2) daudzuma darbÄ«bu atlasi.
VÄrds ātipsā (tips) atbilst definÄ«cijas pirmajai daļai: ālieluma raksturÄ«gÄs Ä«paŔībasā. Bet attÄla galvenÄ nozÄ«me ir otrajÄ daļÄ: āoperÄciju atlase pÄc daudzumiemā.
SÄkumpunkts attÄla ievadÄ«Å”anai C ir parasts aprÄÄ·ins, piemÄram, pievienoÅ”anas darbÄ«ba.
PapÄ«rs MatemÄtikÄ neatkarÄ«gi no tÄ, vai tie ir rakstÄ«ti ar roku vai drukÄti, skaitļu veidi netiek Ä«paÅ”i atŔķirti, parasti pieÅemot, ka tie ir reÄli. TÄpÄc to apstrÄdes darbÄ«bas ir nepÄrprotamas.
MaŔīna MatemÄtika stingri sadala skaitļus veselos skaitļos un daļskaitļos. DažÄdu veidu skaitļi atmiÅÄ tiek saglabÄti atŔķirÄ«gi un apstrÄdÄti ar dažÄdÄm procesora instrukcijÄm. PiemÄram, instrukcijas veselu skaitļu un daļskaitļu pievienoÅ”anai ir divas dažÄdas instrukcijas, kas atbilst diviem dažÄdiem procesora mezgliem. Bet nav komandas, lai pievienotu veselus skaitļus un daļskaitļus.
Pielietots matemÄtika, tas ir, C valoda, atdala skaitļu veidus, bet apvieno darbÄ«bas: saskaitÄ«Å”anu veseliem skaitļiem un/vai daļskaitļiem raksta ar vienu darbÄ«bas zÄ«mi.
Skaidra jÄdziena attÄla definÄ«cija ļauj mums noteikti runÄt par diviem citiem jÄdzieniem: summa Šø operÄcija.
Lielums un darbība
VÄrtÄ«ba ā numurs, kas tiek apstrÄdÄts.
DarbÄ«ba - sÄkotnÄjo vÄrtÄ«bu (argumentu) vÄrtÄ«bu apstrÄde, lai iegÅ«tu galÄ«go skaitli (kopÄ).
Lielums un darbÄ«ba ir savstarpÄji saistÄ«ti. Katra darbÄ«ba ir daudzums, jo tai ir skaitlisks rezultÄts. Un katra vÄrtÄ«ba ir vÄrtÄ«bas pÄrsÅ«tÄ«Å”anas rezultÄts uz/no procesora reÄ£istra, tas ir, darbÄ«bas rezultÄts. Neskatoties uz Ŕīm attiecÄ«bÄm, galvenais ir to atseviŔķa apraksta iespÄja, kaut vai ar viena vÄrda atkÄrtoÅ”anos dažÄdÄs vÄrdnÄ«cas sadaļÄs, kÄ tas notiek MA3.
MaŔīnas pieeja sadalÄ«ja visus programmÄtÄja izmantotos skaitļus komandÄm Šø dati. IepriekÅ” abi bija cipari, piemÄram, komandas tika rakstÄ«tas ciparu kodos. TomÄr lietiŔķajÄs valodÄs komandas pÄrstÄja bÅ«t skaitļi un kļuva vÄrdos Šø darbÄ«bas zÄ«mes. Paliek tikai ādatiā kÄ skaitļi, bet ir absurdi tos turpinÄt tÄ saukt, jo pÄrejÄ no maŔīnas uz matemÄtisko skatu skaitļi ir lielumi, kas tiek dalÄ«ti ar sÄkotnÄjo (dati) un pÄdÄjais (nepiecieÅ”ams). āNezinÄms datumsā izklausÄ«sies muļķīgi.
Komandas tika sadalÄ«tas arÄ« divu veidu akcijÄs: matemÄtiskajÄ un dienesta. MatemÄtiskÄs darbÄ«bas - darbÄ«bas. Pie oficiÄlajÄm lietÄm pievÄrsÄ«simies vÄlÄk.
C valodÄs parastÄs papÄ«ra un maŔīnas viennozÄ«mÄ«gas jeb atseviŔķas matemÄtiskas darbÄ«bas gandrÄ«z vispÄr kļūst daudzkÄrtÄjas.
VairÄkas darbÄ«bas ir vairÄkas viena nosaukuma darbÄ«bas ar dažÄda veida argumentiem un dažÄdÄm, pÄc nozÄ«mes lÄ«dzÄ«gÄm darbÄ«bÄm.
Veselu skaitļu argumenti atbilst visai darbÄ«bai, un daļskaitļu argumenti atbilst daļÄjai darbÄ«bai. Å Ä« atŔķirÄ«ba ir Ä«paÅ”i skaidri redzama dalÄ«Å”anas operÄcijas laikÄ, kad izteiksme 1/2 dod kopsummu 0, nevis 0,5. Å Äds apzÄ«mÄjums neatbilst papÄ«ra matemÄtikas noteikumiem, bet C valoda necenÅ”as tos ievÄrot (atŔķirÄ«bÄ no Fortran) - tÄ spÄlÄ pÄc sava piemÄrots noteikumiem.
Ja tiek sajaukti veseli skaitļi un daļskaitļi, tiek iekļauts vienÄ«gais pareizais argumentu vÄrtÄ«bu lieÅ”ana ā selektÄ«va vÄrtÄ«bas pÄrveidoÅ”ana no viena attÄla uz citu. PatieÅ”Äm, pievienojot veselu skaitli un daļskaitli, rezultÄts ir daļskaitlis, tÄpÄc operÄcijas attÄls paÅem vesela skaitļa argumenta pÄrvÄrÅ”anas darbÄ«ba daļskaitlÄ«.
AtlikuÅ”as vairÄkas operÄcijas vairÄkasUn viens. Å Ädas darbÄ«bas ir definÄtas tikai viena veida argumentiem: dalÄ«Å”anas atlikums - veselu skaitļu argumenti, sakrauÅ”ana (bitu operÄcijas) - dabiski veseli skaitļi. Ma3 norÄda darbÄ«bu daudzveidÄ«bu ar zÄ«mÄm (#^), kas norÄda attÄlus, kuriem darbÄ«ba ir definÄta. Tas ir svarÄ«gs, bet iepriekÅ” aizmirsts katras darbÄ«bas Ä«paÅ”ums.
Visas funkcijas ir patvaļīgas vienÄ«bas darbÄ«bas. IzÅÄmums ir operatori - funkcijas bez iekavÄm, iebÅ«vÄts valodÄ (oriÄ£inÄlÄs darbÄ«bas).
Palīdzība
PalÄ«dzÄ«ba - darbÄ«ba, kas saistÄ«ta ar operÄciju.
Ja mÄs uzskatÄm operÄciju par galveno darbÄ«bu, tad mÄs varam atŔķirt divas pavadoÅ”Äs darbÄ«bas, kas nodroÅ”ina operÄciju un atŔķiras no tÄs. Tie ir 1) mainÄ«gÄ kontrole un 2) pakļautÄ«ba. Å o darbÄ«bu sauc palÄ«dzÄ«bu.
Å eit mums ir jÄatkÄpjas un atseviŔķi jÄsaka par programmÄÅ”anas mÄcÄ«bu grÄmatu tulkojumiem krievu valodÄ. K/R tekstÄ tika ieviests jauns vÄrds darbÄ«bu fiksÄÅ”anai paziÅojums (izteiksme), kas mÄÄ£inÄja sadalÄ«t maŔīnas komandas jÄdzienus dažÄdÄs darbÄ«bÄs: 1) darbÄ«ba, 2) deklarÄÅ”ana un 3) pakÄrtoÅ”ana (sauktas par "kontroles konstrukcijÄm"). Å o mÄÄ£inÄjumu apglabÄja krievu tulki, aizstÄjot āizteiksmiā ar vÄrdu āoperatorsā, kas:
- ir kļuvis par sinonÄ«mu maŔīnas vÄrdam ākomandaā,
- izrÄdÄ«jÄs sinonÄ«ms frÄzei ādarbÄ«bas zÄ«meā,
- un arÄ« saÅÄma neierobežotu skaitu papildu vÄrtÄ«bu. Tas ir, tas ir pÄrvÄrties par kaut ko lÄ«dzÄ«gu angļu rakstam āuhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhā
Apsveriet papildu darbības vai palīdzību.
Mainīga vadība
MainÄ«ga vadÄ«ba (UP) - mainÄ«go Ŕūnu izveide/dzÄÅ”ana.
UE notiek netieÅ”i, deklarÄjot mainÄ«go, kas jau ir uzrakstÄ«ts cita iemesla dÄļ - lai norÄdÄ«tu vÄrtÄ«bas attÄlu. Tikai viens skats tiek tieÅ”i pÄrvaldÄ«ts papildu mainÄ«gie izmantojot malloc () un free () funkcijas.
JÄatzÄ«mÄ, ka netieÅ”Äs darbÄ«bas ir ÄrtÄkas rakstÄ«Å”anai, jo tÄm vispÄr nekas nav jÄraksta, taÄu tÄs ir grÅ«tÄk saprotamas - tÄs ir grÅ«tÄk Åemt vÄrÄ un interpretÄt.
SubordinÄcija
SubordinÄcija ā savienot/atspÄjot slÄÅu sekcijas.
C valoda piedÄvÄja lietiŔķu darbÄ«bu secÄ«bas kontroles metodi, kas atŔķiras no montÄtÄja - padotÄ«bas. Tas atspoguļo un attÄ«sta runas kompleksu teikumu ar skaidru iedalÄ«jumu galvenajÄ daÄ¼Ä (subordinÄcijas klauzula) un pakÄrtotajÄ daÄ¼Ä (apakÅ”lÄ«meÅa/apakÅ”programmas sadaļas).
Gan deklarÄcija, gan iesniegÅ”ana ir pilnÄ«bÄ balstÄ«ta uz koncepciju Layer.
SlÄnis
SlÄnis ir ierobežota viena lÄ«meÅa selektÄ«va izteiksmju kopa.
SlÄnis skaidri un netieÅ”i uzÅÄmÄs vairÄkus uzdevumus vienlaikus:
- programmas organizÄÅ”ana
- vÄrdu redzamÄ«bas ierobežoÅ”ana (netieÅ”i),
- mainÄ«go lielumu (atmiÅas Ŕūnu) pÄrvaldÄ«ba (netieÅ”a),
- pakÄrtoto klauzulu definÄ«cija subordinÄcijai,
- funkciju un atlases definīcijas un citi.
MaŔīnvalodÄs nebija jÄdziena par slÄnis, tÄpÄc tas neparÄdÄ«jÄs K/R, un, ja kaut kas tur nebija, tad to ieviest nÄkamajÄs grÄmatÄs bÅ«tu Ä·ecerÄ«ba un brÄ«vdomÄ«ba. TÄpÄc slÄÅa jÄdziens vispÄr neparÄdÄ«jÄs, lai gan tas ir ÄrkÄrtÄ«gi noderÄ«gs un diezgan acÄ«mredzams.
Bez slÄÅa nav iespÄjams Ä«si un skaidri izskaidrot daudzas programmas darbÄ«bas un noteikumus. PiemÄram, kÄpÄc goto ir tik vienkÄrÅ”s kÄ trÄ«s kapeikas slikts, un viltÄ«gais kamÄr ir labs. Var tikai bezpalÄ«dzÄ«gi lamÄties, kÄ to darÄ«ja Dijkstra (āprogrammÄtÄju prasme ir funkcija, kas apgriezti ir atkarÄ«ga no goto apgalvojumu sastopamÄ«bas biežuma viÅu programmÄs.ā ÄŖsÄk sakot, goto lieto tikai kazas. Pamatojuma lÄ«menis ir Dievs.) Tiesa, tas nav tik biedÄjoÅ”i, ja jÅ«su grÄmatas Mums vispÄr nekas nav jÄpaskaidro, taÄu, kÄ jau teicÄm, tas nav mÅ«su liktenis.
Starp citu, var pieÅemt, ka Dens RiÄijs goto atstÄja tieÅ”i kÄ atslÄgu kÄda nenosaukta jÄdziena meklÄÅ”anai, jo izteicienÄ goto nebija ne vajadzÄ«bas, ne skaistuma. TaÄu bija vajadzÄ«gs vienkÄrÅ”s un saprotams skaidrojums par jaunajiem valodas principiem, kurus pats RiÄijs nevÄlÄjÄs sniegt un kuri ir tieÅ”i balstÄ«ti uz koncepciju. Layer.
Novirze
Novirze ā mainot jaunÄ nosaukuma parastos rekvizÄ«tus.
BÅ«tiskÄkÄ novirze ir tieÅ”i saistÄ«ta ar programmas slÄÅa Ä«paŔībÄm, un to raksturo viens vÄrds āstaticā, kam katrÄ slÄÅa tipÄ ir atŔķirÄ«ga nozÄ«me.
5. PÄDÄJÄ NODAÄ»A. LietiŔķo valodu kopÄ«gums
LietiŔķÄs valodas ir tÄlains valodas (ar attÄlu, āierakstÄ«tsā). Tie ir balstÄ«ti uz tieÅ”u vai netieÅ”u attÄla izmantoÅ”anu. TurklÄt Å”eit atkal parÄdÄs pretruna: izteikts attÄls ir saprotamÄks, bet mazÄk Ärts, un otrÄdi.
(Tabulas izkÄrtojums vÄl nav piegÄdÄts, tÄpÄc tabula ir attÄlota ar attÄlu.)
PÄc C lietiŔķo valodu attÄ«stÄ«ba virzÄ«jÄs uz to figurativitÄtes palielinÄÅ”anas ceļu. VissvarÄ«gÄkais, lai izprastu augstus attÄlus, ir tieÅ”ais C pÄctecis ā C++ valoda. ViÅÅ” attÄ«sta ideju par patvaļīgu darbÄ«bu atlasi daudzumiem un iemieso to, pamatojoties uz sintÄtisko izteiksmju atlasi, kas saÅem jaunu nosaukumu - objektu. TomÄr C++ nav tik kodolÄ«gs un izteiksmÄ«gs kÄ C jauno kolekcijas veidu un ar tiem saistÄ«to noteikumu pÄrslodzes dÄļ. Starp citu, parunÄsim par āpÄrslodziā.
PÄrslodze un polimorfisms
VÄrds "pÄrslodze" ir novecojis maŔīnmÄcÄ«bas termins radÄ«Å”anai vairÄkas operÄcijas.
MaŔīnu (sistÄmu) programmÄtÄji plurÄlisms darbÄ«bas varÄtu bÅ«t kaitinoÅ”as: āKo Ŕī zÄ«me (+) nozÄ«mÄ: veselu skaitļu pievienoÅ”anu, daļskaitļu pievienoÅ”anu vai pat pÄrvietoÅ”anu?! MÅ«su laikÄ viÅi tÄ nerakstÄ«ja! LÄ«dz ar to izvÄlÄtÄ vÄrda negatÄ«vÄ konotÄcija (āpÄrmÄrÄ«gsā, ānogurisā). Lietojumprogrammu programmÄtÄjam vairÄkas darbÄ«bas ir C valodas stÅ«rakmens, galvenais sasniegums un mantojums, kas ir tik dabisks, ka bieži vien netiek atpazÄ«ts.
C++ valodÄ plurÄlisms attiecinÄts ne tikai uz sÄkotnÄjÄm operÄcijÄm, bet arÄ« uz funkcijÄm ā gan individuÄlajÄm, gan klasÄs apvienotajÄm ā metodÄm. Ar vairÄkÄm metodÄm radÄs iespÄja tos ignorÄt paplaÅ”inÄtajÄs klasÄs, ko neskaidri sauca par "polimorfismu". Polimorfisma un pÄrslodzes kombinÄcija radÄ«ja sprÄdzienbÄ«stamu maisÄ«jumu, kas sadalÄ«jÄs divos polimorfismos: āpatiesaisā un āad-hocā. To var saprast tikai neskatoties uz pieŔķirtajiem nosaukumiem. CeļŔ uz sludinÄjumu ir bruÄ£Äts ar sveÅ”iem nosaukumiem.
Formas āpÄrslodzeā deklarÄcija ir labÄk izteikta vÄrdÄ papildu paziÅojums ā tÄda paÅ”a nosaukuma funkcijas deklarÄcijas pievienoÅ”ana ar cita attÄla argumentiem.
Formas āpolimorfismsā deklarÄciju labÄk saukt atkÄrtots paziÅojums ā pÄrklÄÅ”anÄs deklarÄcija tÄda paÅ”a nosaukuma funkcijas jaunÄ paplaÅ”inÄjuma slÄnÄ« ar viena un tÄ paÅ”a attÄla argumentiem.
Tad bÅ«s viegli saprast, ka vienas un tÄs paÅ”as dažÄdu attÄlu (argumentu) metodes - papildus paziÅots, un viens attÄls - izsludinÄts atkÄrtoti.
Krievu vÄrdi izŔķir.
SkrejceļŔ
Ä»oti figurÄlu valodu jÄdzienu apsvÄrÅ”ana apstiprina skaidras pamatjÄdzienu definÄ«cijas nozÄ«mi. Pareizi aprakstot C, grafisko valodu apguve bÅ«s vienkÄrÅ”a un patÄ«kama.
Tas ir Ä«paÅ”i svarÄ«gi, lai netieÅ”i izteikti tÄlainas valodas (PHP, JavaScript). ViÅiem objektu (salikto attÄlu) nozÄ«me kļūst vÄl lielÄka nekÄ C++, bet pati attÄla koncepcija kļūst netieÅ”a un netverama. No ÄrtÄ«bas viedokļa tie ir kļuvuÅ”i vienkÄrÅ”Äki, bet no izpratnes ā grÅ«tÄki.
TÄpÄc jums vajadzÄtu sÄkt mÄcÄ«ties programmÄÅ”anas valodas ar C valodu un virzÄ«ties tÄlÄk tÄdÄ secÄ«bÄ, kÄdÄ parÄdÄs C saimes valodas.
Tas pats attiecas uz valodu aprakstu. DažÄdÄm valodÄm ir tÄda pati vai mazÄka vienÄ«bu dzimumu kopa nekÄ C valodai. Veidu un paraugu skaits var atŔķirties abos virzienos: C++ ir vairÄk veidu nekÄ C, savukÄrt JavaScript ir mazÄk.
MySQL valoda ir pelnÄ«jusi Ä«paÅ”u pieminÄÅ”anu. Å Ä·iet, ka nav nekÄ kopÄ«ga, taÄu MatrjoÅ”ka viÅu lieliski raksturo, un iepazÄ«t viÅu kļūst ÄtrÄk un vieglÄk. Kas ir svarÄ«gi, Åemot vÄrÄ tÄ nozÄ«mi tÄ«meklÄ« - mÅ«sdienu programmÄÅ”anas ÄdienkartÄ. Un kur ir MySQL, tur ir arÄ« citi SQL. Nu visÄdus Fortran-Pascal-Pithonus arÄ« MatrjoÅ”ka apraksta, tiklÄ«dz dabÅ« rokÄs.
TÄtad mÅ«s sagaida lieliskas lietas - lietiŔķs C valodas apraksts un vienots tam sekojoÅ”o valodu apraksts. āMÅ«su mÄrÄ·i ir skaidri, mÅ«su uzdevumi ir noteikti. SÄciet strÄdÄt, biedri! (VÄtraini, ilgstoÅ”i aplausi, pÄrvÄrÅ”oties ovÄcijÄs. Visi pieceļas.)"
JÅ«su viedokļi tiks uzklausÄ«ti ar lielu uzmanÄ«bu, jÅ«su palÄ«dzÄ«ba ligzdojoÅ”o leļļu vietnes izveidÄ tiks uzÅemta ar lielu pateicÄ«bu. PilnÄ«gÄka informÄcija par grÄmatu ir mÄjaslapÄ, gudri paslÄpta MatrjoÅ”kÄ C.
Avots: www.habr.com