Matryoshka C. Sluoksniuota programų kalbos sistema

Pabandykime įsivaizduoti chemiją be Mendelejevo periodinės lentelės (1869). Kiek elementų reikėjo turėti omenyje, ir jokia tvarka... (Tuomet - 60.)

Norėdami tai padaryti, tiesiog pagalvokite apie vieną ar kelias programavimo kalbas vienu metu. Tie patys jausmai, tas pats kūrybinis chaosas.

Ir dabar galime išgyventi XIX amžiaus chemikų jausmus, kai jiems buvo pasiūlytos visos žinios ir šiek tiek daugiau vienoje periodinėje lentelėje.

Matryoshka C. Sluoksniuota programų kalbos sistema


Knyga „Matryoshka C. Sluoksniuota programų kalbos sistema“ iš karto pateikia visus C kalbos vienetus. Tai leidžia juos sutvarkyti, ištaisyti pasenusią informaciją ir net paaiškinti pačią programos koncepciją.

Šiandien programavimo informaciją reikia sisteminti dar labiau nei cheminius elementus darė prieš 150 metų.

Pirma būtinybė yra mokymas. Mendelejevas pradėjo kurti savo sistemą, kai susidūrė su klausimu, nuo kurio elemento pradėti skaityti paskaitas: O, H, N, He, Au... Tuo pat metu jam buvo lengviau – chemiją jis dėstė geriausiems – studentams. Sankt Peterburgo universitetas. O programuoti jau mokoma mokykloje ir netrukus prasidės darželyje.

Antrasis poreikis yra mokslinis požiūris. Periodinės lentelės pagalba buvo atrasti nauji elementai ir pataisyta informacija apie senus. Ji padėjo sukurti atomo modelį (1911). Ir taip toliau.

Trečias poreikis – išsiaiškinti programos sampratą.

Šiuolaikinis programavimas viena koja įstrigo XX amžiaus šeštajame dešimtmetyje. Tada programos buvo paprastos, bet mašinos ir mašinų kalbos buvo sudėtingos, todėl viskas sukosi apie mašinas ir kalbas.

Dabar viskas atvirkščiai: programos yra sudėtingos ir pagrindinės, kalbos yra paprastos ir antrinės. Tai vadinama taikomuoju metodu, kuris, atrodo, yra žinomas visiems. Tačiau studentai ir kūrėjai ir toliau įsitikinę, kad viskas yra taip pat.

Tai sugrąžina mus prie pirmosios Privatdozento Mendelejevo paskaitos. Ką pasakyti pirmakursiams? Kur tiesa? Tai yra klausimas.

Knyga „Matryoshka C“ pateikia atsakymą į šį klausimą. Sluoksniuota programos kalbos sistema“. Be to, jis skirtas ne tik studentams, bet ir parengtiems programuotojams, nes būtent jie, tai yra mes, turime ieškoti tiesos ir keisti pasaulėžiūrą.

Toliau pateikiama knygos santrauka.

1. Įvadas

1969 m. buvo sukurta C kalba, kuri tapo pagrindine programavimo kalba ir tokia išliko 50 metų. Kodėl taip yra? Visų pirma todėl, kad C yra pritaikytas kalba, kuri davė programą humaniškas vietoj to peržiūrėti mašina. Šį pasiekimą užtikrino kalbos iš C šeimos: C++, JavaScript, PHP, Java, C# ir kt. Antra, tai trumpa ir graži kalba.

Tačiau pati C kalba paprastai yra maišoma su mašinų surinkėju, taip apsunkinant ir iškreipiant jos suvokimą. Kitas kraštutinumas yra tam tikros „filosofijos“ primetimas kalbai: procedūrinės, objektinės, funkcinės, kompiliuotos, interpretuojamos, spausdinamos ir pan. Tai prideda emocijų, bet nepadeda geriau apibūdinti kalbos.

Tiesa yra viduryje, o C kalbai ji yra griežtai per vidurį tarp filosofinio ir mašininio suvokimo.

C kalba nėra nepriklausoma, ji paklūsta įprastai rašytinei kalbai ir tuo pačiu valdo pačią asamblėjos kalbą. Ši pozicija apibūdina Programos kalbos modelis, pagal kurią programa suskirstyta į tris pavaldžius tipus: kalba, kodas, komanda. C kalba yra atsakinga už antrąjį kodo tipą.

Nustatę kalbos vietą programoje, galite sutvarkyti informaciją apie ją, kuri daro Sluoksniuota programų kalbos sistema, reprezentuojantis C kalbą periodinės sistemos dvasia – viename puslapyje.

Sistema sukurta atsižvelgiant į taikomųjų kalbų bendruomenės, kylantis iš jų kalbos pavaldumo. Vienas „Matryoshka C“ vienetų rinkinys leidžia aprašyti ir palyginti skirtingas kalbas, sukuriant „Matrioškų“ seriją: C++, PHP, JavaScript, C#, MySQL, Python ir pan. Verta ir teisinga, kad skirtingos kalbos apibūdinamos pagrindinės kalbos vienetais.

2. SKYRIUS 1. Programos kalbos modelis. Aiškus C

Pirmajame skyriuje pristatoma programos kalbos modelis, atspindintis taikomą požiūrį. Pasak jo, programa turi tris akivaizdžius nuoseklius tipus:

  1. kalba - tiesioginė programuotojo kalba, sprendžianti problemą,
  2. koduotas - sprendimo kodavimas į matematinę formą C kalba (ar bet kuria kita)
  3. ir komandą – tiesioginės mašinos komandos.

Kalbos modelis paaiškina, kodėl C yra paprasta ir suprantama kalba. Xi sukurtas pagal mums pažįstamą žmogaus kalbos įvaizdį ir panašumą.

Pirmasis programos tipas yra tiesioginė programuotojo kalba. Kalba atitinka žmogaus mąstymą. Pradedantieji programuotojai rašo programas naudodami kalbą - pirmiausia rusų kalba, tada žingsnis po žingsnio verčia veiksmus į kodo kalbą. Ir būtent pagal šį modelį buvo sukurta C kalba.

Programuotojo išvados, išreikštos kalba, paverčiamos koduota skaitine forma. Ši transformacija turėtų būti vadinama atspindys, kadangi kalba ir kodas turi tą patį pobūdį (atspindys – gimimas – lytis). Tai gana akivaizdu, jei palyginsime kalbos (kairėje) ir kodo (dešinėje) tipus.

Matryoshka C. Sluoksniuota programų kalbos sistema

Įdomu tai, kad atspindys vyksta labai paprastai – tik su dviejų tipų išraiškomis.

Tačiau šiuolaikiniame C kalbos aprašyme (nuo 1978 m.) nėra pakankamai pavadinimų sąrašo nei kalbai apskritai apibūdinti, nei konkrečiai refleksijos užduočiai. Todėl esame priversti būti kūrybingi ir pristatyti šiuos pavadinimus.

Žodžių pasirinkimas turi būti tikslus ir aiškus. Tam reikėjo ypatingo požiūrio, trumpai išreikšto taip: griežtas gimtosios kalbos vartojimas. Anglams tai būtų anglai, bet mes nesame anglai. Taigi pasinaudosime tuo, ką turime, ir stengsimės kalbėti rusiškai.

Refleksiją atlieka dviejų tipų išraiškos:

  1. skaičiavimas (HF) – atspindi objekto savybių pasikeitimą. Daikto savybė išreiškiama skaičiumi, tada veiksmas su savybe yra veiksmas su skaičiumi – operacija.
  2. pavaldumas (Pch) – atspindi veiksmų tvarkos pasikeitimą. Pch prototipas yra sudėtingas kalbos sakinys, todėl dauguma Pch tipų prasideda subordinuojančiais jungtukais „jei“, „kitaip“, „kol“, „už“. Kiti kompiuteriai juos papildo.

Beje, ar galite patikėti, kad C aprašyme skaičiavimo išraiškoms nėra pavadinimo - jos tiesiog vadinamos „išraiškomis“? Po to nebebus stebėtis, kad pavaldumo tipui nėra pavadinimo ir asociacijos, o apskritai pavadinimų, apibrėžimų ir apibendrinimų trūkumas. Taip yra todėl, kad garsusis K/R („The C Language“, Kernighan/Ritchie, 1978) yra ne aprašymas, o kalbos vartojimo vadovas.

Tačiau vis tiek norėčiau turėti kalbos aprašymą. Todėl jam siūloma Sluoksniuota programų kalbos sistema.

3. 2 SKYRIUS. Sluoksnių sistema. Trumpas C

Bet koks aprašymas turi būti tikslus ir itin glaustas. Programinės kalbos atveju sunku apibūdinti priekinę dalį.

Čia mes turime programą. Jį sudaro moduliai. Moduliai susideda iš paprogramių ir rinkinių (struktūros). Paprogramės susideda iš atskirų posakių: deklaracijų, skaičiavimų, pavaldumo. Yra net dešimt pavaldumo rūšių. Subordinacija jungia polygius ir paprogrames. Taip pat yra keletas skelbimų. Tačiau deklaracijos įtraukiamos ne tik į paprogrames ir polygius, bet ir į modulius bei rinkinius. Daugumą posakių sudaro žodžiai, kuriuos taip sunku apibūdinti, kad jie paprastai pateikiami dviem sąrašais – originalūs ir išvestiniai žodžiai, su kuriais susipažinsite mokydamiesi ir vartodami kalbą. Prie to pridėkime skyrybos ženklus ir daugybę kitų posakių.

Tokiame pristatyme nelengva suprasti, kas ant ko stovėjo.

Tiesioginis hierarchinis požiūris į kalbos apibūdinimą būtų pernelyg sudėtingas. Atlikus žiedinę paiešką, pateikiamas kalbos aprašymas, pagrįstas jos kalbos pobūdžiu ir komandine puse. Taip gimė sluoksnių sistema, iš dalies sutampanti su Mendelejevo periodine sistema, kuri taip pat yra sluoksniuoti. Kaip paaiškėjo praėjus 42 metams nuo jos paskelbimo (1869 m.), sistemos periodiškumas siejamas su el. sluoksnių (1911, Bohr-Rutherford atomo modelis). Be to, Sluoksniuotos ir Periodinės sistemos yra panašios visų vienetų lentelėse viename puslapyje.

Kalbos vienetų aprašymas trumpas – tik 10 posakių tipų ir 8 kitų vienetų tipai, taip pat prasmingi ir vaizdiniai. Nors ir neįprasta pirmai pažinčiai.

Kalbos vienetai skirstomi į 6 lygius:

  1. vienetai – lentelės eilutės
  2. skyriai - specialios genčių grupės (pirmos eilutės dalys)
  3. gentis - ląstelės (pagrindinis dalijimosi lygis)
  4. superspecies – rūšių separatoriai (retas lygis)
  5. tipai – vienetų formulės langelio apačioje arba atskirai
  6. raštai – patys vienetai (tik žodžiams)

Apibūdinami žodžių pavyzdžiai žodynas - atskiras posistemis, sudarytas iš tų pačių šešių lygių.

C kalbos kalbos komponentas yra gana akivaizdus, ​​nors jis vis dar nusipelno aprašymo. Bet kalbos komandinė dalis yra būtent susijusi su kompiliavimo valdymu, kurio metu sukuriama trečio tipo programa – komanda. Čia pasiekiame įdomiausią C kalbos aspektą: grožį.

4. TOLESNI SKYRIAI. Gražuolė Si

C kalba yra šiuolaikinio programavimo pagrindas. Kodėl? Pirma, dėl didžiausio kalbos atitikimo. Antra, todėl, kad jis gražiai aplenkė mašinos numerių apdorojimo apribojimus.

Ką tiksliai pasiūlė Xi? Vaizdas ir sluoksnis.

Žodis „vaizdas“ yra angliško žodžio „tipas“ vertimas, kilęs iš graikų „prototipas“ – „tipas“. Rusų kalboje žodis „tipas“ neperteikia kertinio išsakomos sąvokos akmens, be to, jis painiojamas su pagalbine „tipo“ reikšme.

Iš pradžių vaizdas išsprendė grynai mašininio skaičiavimo problemą, o vėliau tapo objektų kalbų gimimo taku.

Sluoksnis iškart išsprendė kelias problemas – ir mašina, ir užtepta. Todėl svarstymas prasidės nuo vienos užduoties vaizdo ir pereis prie kelių užduočių sluoksnio.

Viena iš nemalonių istorinio programavimo ypatybių yra ta, kad dauguma sąvokų, įskaitant pagrindines, pateikiamos be apibrėžimų. „Programavimo kalba (upių pavadinimas) turi sveikųjų ir slankiųjų skaičių tipus...“ ir jie braukė toliau. Nebūtina apibrėžti, kas yra „tipas“ (vaizdas), nes patys autoriai to iki galo nesupranta ir „aiškumo dėlei“ tai nutylės. Jei jie bus pritvirtinti prie sienos, jie suteiks neaiškų ir nenaudingą apibrėžimą. Labai padeda pasislėpti už svetimžodžių: rusų autoriams – už anglų kalbos (tipas), anglams – už prancūzų kalbos (paprogramė), graikų (polimorfizmas), lotynų kalbos (inkapsuliacija) ar jų junginių (ad-hoc polimorfizmas).

Bet tai ne mūsų likimas. Mūsų pasirinkimas – apibrėžimai su pakeltu skydeliu gryna rusų kalba.

Vaizdas

Vaizdas yra prefigūrinis kiekio pavadinimas, apibrėžiantis 1) esmines kiekio savybes ir 2) kiekio operacijų pasirinkimą.

Žodis „tipas“ (tipas) atitinka pirmąją apibrėžimo dalį: „vidinės kiekio savybės“. Tačiau pagrindinė paveikslo reikšmė yra antroje dalyje: „operacijų parinkimas į kiekius“.

Vaizdo įvedimo į C pradinis taškas yra įprastas skaičiavimas, pvz., pridėjimo operacija.

Popierius Matematika, parašyta ranka ar atspausdinta, nedaro daug skirtumų tarp skaičių tipų, paprastai darant prielaidą, kad jie yra tikri. Todėl jų apdorojimo operacijos yra vienareikšmės.

Mašinų kambarys Matematika griežtai skirsto skaičius į sveikuosius skaičius ir trupmenas. Įvairių tipų skaičiai atmintyje saugomi skirtingai ir apdorojami skirtingomis procesoriaus komandomis. Pavyzdžiui, sveikųjų skaičių ir trupmenų pridėjimo instrukcijos yra dvi skirtingos instrukcijos, atitinkančios du skirtingus procesoriaus mazgus. Tačiau nėra komandos, skirtos pridėti sveikųjų ir trupmeninių argumentų.

Taikoma matematika, tai yra C kalba, atskiria skaičių tipus, bet sujungia operacijas: sveikųjų ir/ar trupmenų sudėjimas rašomas vienu veiksmo ženklu.

Aiškus sąvokos įvaizdžio apibrėžimas leidžia neabejotinai kalbėti apie dvi kitas sąvokas: dydį и operacija.

Didumas ir veikimas

Vertė — apdorojamas numeris.

Operacija - pradinių reikšmių (argumentų) reikšmių apdorojimas, kad būtų gautas galutinis skaičius (bendras).

Didumas ir veikimas yra tarpusavyje susiję. Kiekviena operacija yra dydis, nes turi skaitinį rezultatą. Ir kiekviena reikšmė yra reikšmės perkėlimo į/iš procesoriaus registro rezultatas, tai yra operacijos rezultatas. Nepaisant šio ryšio, svarbiausia yra galimybė juos atskirai apibūdinti, nors ir kartojant vieną žodį skirtingose ​​žodyno dalyse, kaip ir nutinka MA3.

Mašininis metodas visus programuotojo naudojamus skaičius padalijo į komandos и duomenys. Anksčiau abu jie buvo skaičiai, pavyzdžiui, komandos buvo rašomos skaitiniais kodais. Tačiau taikomosiose kalbose komandos nustojo būti skaičiais ir tapo žodžiuose и veiksmo ženklai. Lieka tik „duomenys“ kaip skaičiai, bet ir toliau juos taip vadinti absurdiška, nes pereinant nuo mašinos prie matematinio požiūrio skaičiai yra dydžiai, kurie dalijami iš pradinio (duomenys) ir galutinis (reikalaujama). „Nežinomas atskaitos taškas“ skambės kvailai.

Komandos taip pat buvo suskirstytos į dviejų tipų veiksmus: matematinį ir tarnybinį. Matematiniai veiksmai – operacijos. Prie oficialių dalykų pereisime vėliau.

C kalbose įprasti popieriniai ir mašininiai vienareikšmiai arba pavieniai matematiniai veiksmai beveik visuotinai tampa daugkartiniai.

Kelios operacijos – tai kelios to paties pavadinimo operacijos su skirtingais argumentų tipais ir skirtingais, panašios reikšmės veiksmais.

Sveikųjų skaičių argumentai atitinka visą operaciją, o trupmeniniai – trupmeninę operaciją. Šis skirtumas ypač ryškus dalybos operacijos metu, kai išraiška 1/2 duoda 0, o ne 0,5. Toks užrašas neatitinka popierinės matematikos taisyklių, tačiau C kalba nesistengia jų laikytis (skirtingai nei Fortran) - ji žaidžia pagal savo taikomos taisykles.

Jei sumaišomi sveikieji skaičiai ir trupmenos, įtraukiamas vienintelis teisingas argumentų reikšmių liejimas — atrankinis vertės transformavimas iš vieno vaizdo į kitą. Iš tiesų, pridedant sveikąjį skaičių ir trupmeninį skaičių, rezultatas yra trupmeninis, todėl operacijos vaizdas pakelia sveikojo skaičiaus argumento konvertavimo į trupmeninę reikšmę operacija.

Liko keletas operacijų daugiskaitaIr vienišas. Tokios operacijos apibrėžiamos tik vieno tipo argumentams: padalijimo liekana – sveikųjų skaičių argumentai, krovimas (bitinės operacijos) – natūralūs sveikieji skaičiai. Ma3 nurodo operacijų daugumą ženklais (#^), nurodančius vaizdus, ​​kuriems operacija yra apibrėžta. Tai svarbi, bet anksčiau nepastebėta kiekvienos operacijos savybė.

Visos funkcijos yra savavališkos vieneto operacijos. Išimtis yra operatoriai - ne skliaustų funkcijos, integruotas į kalbą (originalios operacijos).

Pagalba

Pagalba - operaciją lydintis veiksmas.

Jei operaciją laikysime pagrindiniu veiksmu, tai galime išskirti du lydinčius, kurie atlieka operaciją ir skiriasi nuo jos. Tai 1) kintamoji kontrolė ir 2) pavaldumas. Šis veiksmas vadinamas pagalba.

Čia reikia nukrypti ir atskirai pasakyti apie programavimo vadovėlių vertimus į rusų kalbą. K/R tekste buvo įvestas naujas žodis veiksmams fiksuoti pareiškimas (išraiška), kuria mašinos komandos sąvokas buvo bandoma suskirstyti į skirtingus veiksmus: 1) operaciją, 2) deklaravimą ir 3) pavaldumą (vadinamus „valdymo konstruktais“). Šį bandymą palaidojo rusų vertėjai, pakeisdami „išraišką“ žodžiu „operatorius“, kuris:

  1. tapo automatinio žodžio „komanda“ sinonimu,
  2. pasirodė esąs sinonimas frazei „veiksmo ženklas“,
  3. taip pat gavo neribotą skaičių papildomų verčių. Tai yra, jis pavirto į kažką panašaus į anglišką straipsnį „uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh“

Apsvarstykite susijusius veiksmus arba pagalba.

Kintamasis valdymas

Kintamasis valdymas (UP) – kintamųjų langelių kūrimas/trynimas.
UE netiesiogiai atsiranda deklaruojant kintamąjį, kuris jau parašytas dėl kitos priežasties – norint nurodyti reikšmės vaizdą. Aiškiai valdomas tik vienas rodinys papildomi kintamieji naudojant malloc() ir free() funkcijas.

Pažymėtina, kad numanomi veiksmai yra patogesni rašymui, nes jiems visiškai nieko rašyti nereikia, tačiau juos sunkiau suprasti - į juos sunkiau atsižvelgti ir interpretuoti.

Subordinacija

Subordinacija - prijungti / išjungti sluoksnių dalis.

C kalba pasiūlė taikomąjį veiksmų eilės valdymo metodą, skirtingą nuo asamblėjos – pavaldumo. Jis atspindi ir plėtoja sudėtingą kalbinį sakinį su aiškiu padalijimu į pagrindinę dalį (subordinacinis sakinys) ir antrinę dalį (polygio / paprogramės skyriai).

Tiek deklaracija, tiek pateikimas yra visiškai paremti šia koncepcija sluoksnis.

Sluoksnis

Sluoksnis yra ribotas vieno lygio atrankinis posakių rinkinys.

Sluoksnis aiškiai ir netiesiogiai ėmėsi kelių užduočių vienu metu:

  1. organizuojant programą
  2. vardų matomumo ribojimas (netiesiogiai),
  3. kintamųjų (atminties langelių) valdymas (netiesioginis),
  4. subordinacijos šalutinių straipsnių apibrėžimas,
  5. funkcijų ir pasirinkimų apibrėžimai ir kiti.

Mašinų kalbose nebuvo sluoksnio sąvokos, todėl ji neatsirado K/R, o jei kažko nebuvo, tai pristatyti jį vėlesnėse knygose būtų erezija ir laisvė. Todėl sluoksnio sąvoka apskritai neatsirado, nors ji yra be galo naudinga ir gana akivaizdi.

Be sluoksnio neįmanoma trumpai ir aiškiai paaiškinti daugelio programos veiksmų ir taisyklių. Pavyzdžiui, kodėl goto toks paprastas kaip trys kapeikos yra blogai, o sudėtingas o yra geras. Galima tik bejėgiškai keiktis, kaip tai darė Dijkstra („programuotojų įgūdžiai yra funkcija, kuri atvirkščiai priklauso nuo goto teiginių dažnumo jų programose. Trumpai tariant, goto naudoja tik ožkos. Pateisinimo lygis yra Dievas). Tiesa, tai nėra taip baisu, jei jūsų knygos Mums visiškai nieko nereikia aiškinti, bet, kaip jau sakėme, tai ne mūsų likimas.

Beje, galima daryti prielaidą, kad Danas Ritchie goto paliko būtent kaip raktą ieškant kokios nors neįvardytos sąvokos, nes posakyje goto nebuvo poreikio ar grožio. Tačiau reikėjo paprasto ir suprantamo naujų kalbos principų, kurių pats Richie nenorėjo duoti ir kurie yra pagrįsti koncepcija, paaiškinimo. sluoksnis.

Nukrypimas

Nukrypimas — pakeisti įprastas naujo pavadinimo savybes.

Svarbiausias nuokrypis yra tiksliai susijęs su programos sluoksnio savybėmis ir apibūdinamas vienu žodžiu „static“, kuris kiekviename sluoksnio tipe turi skirtingą reikšmę.

5. PASKUTINIS SKYRIUS. Taikomųjų kalbų bendrumas

Taikomosios kalbos yra perkeltine kalbos (turinčios vaizdą, „įvestos“). Jie pagrįsti tiesioginiu arba numanomu vaizdo naudojimu. Be to, čia vėl atsiranda prieštaravimas: aiškus vaizdas yra suprantamesnis, bet mažiau patogus, ir atvirkščiai.

Matryoshka C. Sluoksniuota programų kalbos sistema

(Stalo maketas dar nepristatytas, todėl lentelė parodyta su paveikslėliu.)

Po C taikomųjų kalbų raida pasuko didinant jų vaizdingumą. Svarbiausias dalykas norint suprasti aukštus vaizdus yra tiesioginis C palikuonis – C++ kalba. Jis plėtoja savavališko kiekių operacijų pasirinkimo idėją ir įkūnija ją remdamasis sintetinės išraiškos pasirinkimu, kuris gauna naują pavadinimą - objektą. Tačiau C++ nėra toks glaustas ir išraiškingas kaip C dėl naujų kolekcijų tipų ir su jais susijusių taisyklių perkrovos. Beje, pakalbėkime apie „perkrovą“.

Perkrova ir polimorfizmas

Žodis „perkrova“ yra pasenęs mašininio mokymosi terminas, skirtas kurti kelios operacijos.

Mašinų (sistemų) programuotojai pliuralizmas operacijos gali erzinti: „Ką reiškia šis ženklas (+): sveikųjų skaičių pridėjimą, trupmenų pridėjimą ar net perkėlimą?! Mūsų laikais jie taip nerašė! Iš čia ir atsiranda neigiama pasirinkto žodžio konotacija („overkill“, „pavargęs“). Programuotojui kelios operacijos yra kertinis akmuo, pagrindinis C kalbos laimėjimas ir palikimas, toks natūralus, kad dažnai jų neatpažįsta.

C++ kalba pliuralizmas išplėstas ne tik į pradines operacijas, bet ir į funkcijas – tiek individualias, tiek sujungtas į klases – metodus. Naudojant kelis metodus atsirado galimybė juos nepaisyti išplėstinėse klasėse, o tai buvo neaiškiai vadinama „polimorfizmu“. Polimorfizmo ir perkrovos derinys sukūrė sprogstamą mišinį, kuris suskilo į du polimorfizmus: „tikrąjį“ ir „ad-hoc“. Tai įmanoma suprasti tik nepaisant priskirtų vardų. Kelias į reklamą grįstas svetimais vardais.

Formos „perkrova“ deklaracija geriau išreikšta žodžiu papildomas skelbimas — to paties pavadinimo funkcijos deklaracijos pridėjimas su kitokio vaizdo argumentais.

Formos „polimorfizmas“ deklaraciją geriau vadinti pakartotinis paskelbimas — sutampa deklaracija naujame to paties pavadinimo funkcijos plėtinio sluoksnyje su to paties vaizdo argumentais.

Tada bus nesunku suprasti, kad tie patys skirtingų vaizdų (argumentų) metodai - papildomai paskelbtair vienas vaizdas - paskelbta iš naujo.

Rusiški žodžiai nusprendžia.

Takas

Labai vaizdingų kalbų sąvokų svarstymas patvirtina aiškaus pagrindinių sąvokų apibrėžimo svarbą. Teisingai apibūdinus C, mokytis vaizdingų kalbų bus lengva ir malonu.

Tai ypač svarbu dėl numanomos labai perkeltinės kalbos (PHP, JavaScript). Jiems objektų (sudėtinių vaizdų) svarba tampa dar didesnė nei C++, tačiau pati vaizdo samprata tampa numanoma ir sunkiai suvokiama. Patogumo požiūriu jos tapo paprastesnės, o supratimo požiūriu – sunkesnės.

Todėl turėtumėte pradėti mokytis programavimo kalbų su C kalba ir judėti toliau ta tvarka, kuria pasirodo C šeimos kalbos.

Tas pats pasakytina ir apie kalbų apibūdinimą. Skirtingų kalbų vienetų lyčių rinkinys yra toks pat arba mažesnis nei C kalba. Tipų ir pavyzdžių skaičius gali skirtis abiem kryptimis: C++ turi daugiau tipų nei C, o JavaScript – mažiau.

MySQL kalba nusipelno ypatingo paminėjimo. Atrodytų, kad nėra nieko bendro, bet jį puikiai apibūdina Matryoshka, o susipažinti su juo tampa greičiau ir lengviau. Tai svarbu, atsižvelgiant į jo svarbą žiniatinkliui – šiuolaikinio programavimo pietums. O kur yra MySQL, ten yra ir kitų SQL. Na, visokius Fortran-Pascal-Pythons irgi aprašo Matryoshka, kai tik paima į rankas.

Taigi, mūsų laukia puikūs dalykai – taikomas C kalbos aprašymas ir vieningas po jo sekančių kalbų aprašymas. „Mūsų tikslai aiškūs, užduotys apibrėžtos. Imkitės darbo, draugai! (Audringi, užsitęsę plojimai, virstantys ovacijomis. Visi atsistoja.)“

Jūsų nuomonės bus išklausytos su dideliu dėmesiu, jūsų pagalba kuriant lėlių lizdą bus sutikta su dideliu dėkingumu. Išsamesnė informacija apie knygą yra svetainėje, sumaniai paslėpta Matryoshka C.

Šaltinis: www.habr.com

Добавить комментарий