Matryoshka C. Kerrostettu ohjelmakielijärjestelmä

Yritetään kuvitella kemiaa ilman Mendelejevin jaksollista järjestelmää (1869). Kuinka monta elementtiä piti pitää mielessä, eikä missään erityisessä järjestyksessä... (Silloin - 60.)

Voit tehdä tämän ajattelemalla yhtä tai useampaa ohjelmointikieltä kerralla. Samat tunteet, sama luova kaaos.

Ja nyt voimme kokea uudelleen XNUMX-luvun kemistien tunteet, kun heille tarjottiin kaikki tietonsa ja vähän enemmänkin yhdessä jaksollisessa taulukossa.

Matryoshka C. Kerrostettu ohjelmakielijärjestelmä


Kirja "Matryoshka C. Ohjelmakielen kerrosjärjestelmä" esittää kaikki C-kielen yksiköt yhdellä silmäyksellä. Tämän avulla voit järjestää ne, korjata vanhentuneet tiedot ja jopa selventää ohjelman käsitettä.

Nykyään ohjelmointitieto tarvitsee järjestelmällistämistä jopa enemmän kuin kemialliset alkuaineet 150 vuotta sitten.

Ensimmäinen välttämättömyys on opetus. Mendelejev aloitti järjestelmän luomisen, kun hän kohtasi kysymyksen, millä elementillä aloittaa luento: O, H, N, He, Au... Samaan aikaan hänen oli helpompaa - hän opetti kemiaa parhaille - opiskelijoille. Pietarin yliopisto. Ohjelmointia opetetaan jo koulussa ja se alkaa pian päiväkodissa.

Toinen tarve on tieteellinen lähestymistapa. Jaksollisen järjestelmän avulla löydettiin uusia elementtejä ja korjattiin tietoja vanhoista. Hän auttoi luomaan atomin mallin (1911). Ja niin edelleen.

Kolmas tarve on selventää ohjelman käsitettä.

Moderni ohjelmointi on jumissa 50-luvun XNUMX-luvulla. Tuolloin ohjelmat olivat yksinkertaisia, mutta koneet ja konekielet olivat monimutkaisia, joten kaikki pyöri koneiden ja kielten ympärillä.

Nyt kaikki on toisinpäin: ohjelmat ovat monimutkaisia ​​ja ensisijaisia, kielet ovat yksinkertaisia ​​ja toissijaisia. Tätä kutsutaan sovelletuksi lähestymistavaksi, jonka kaikki näyttävät tuntevan. Mutta opiskelijat ja kehittäjät ovat edelleen vakuuttuneita siitä, että kaikki on ennallaan.

Tämä tuo meidät takaisin Privatdozent Mendelejevin ensimmäiseen luennon pariin. Mitä kertoa fuksille? Missä on totuus? Se on se kysymys.

Kirja "Matryoshka C" tarjoaa vastauksen tähän kysymykseen. Ohjelmakielen kerrosjärjestelmä". Lisäksi se ei ole osoitettu vain opiskelijoille, vaan myös koulutetuille ohjelmoijille, koska juuri heidän, eli meidän, on etsittävä totuutta ja muutettava maailmankuvaa.

Seuraavassa on tiivistelmä kirjasta.

1. Esittely

Vuonna 1969 luotiin C-kieli, josta tuli perusohjelmointikieli ja se on pysynyt sellaisena 50 vuotta. Miksi näin on? Ensinnäkin siksi, että C on sovellettu kieli, joka antoi ohjelman inhimillistä katso sen sijaan kone. Tämän saavutuksen turvasivat C-perheen kielet: C++, JavaScript, PHP, Java, C# ja muut. Toiseksi se on lyhyt ja kaunis kieli.

Kuitenkin C-kieli itsessään sekoitetaan yleensä koneen kokoajan kanssa, mikä vaikeuttaa ja vääristää sen käsitystä. Toinen ääripää on tietyn "filosofian" pakottaminen kielelle: proseduaalinen, objekti, funktionaalinen, käännetty, tulkittu, kirjoitettu ja niin edelleen. Tämä lisää tunteita, mutta ei auta kuvaamaan kieltä paremmin.

Totuus on keskellä, ja C-kielelle se on tiukasti filosofisen ja koneisen havainnon välissä.

C-kieli ei ole itsenäinen, se noudattaa tavallista kirjoitettua kieltä ja samalla hallitsee itse asennuskieltä. Tämä asema kuvaa Ohjelman puhemalli, jonka mukaan ohjelma on jaettu kolmeen alatyyppiin: puhe, koodi, komento. C-kieli vastaa toisesta, koodityypistä.

Kun olet määrittänyt kielen paikan ohjelmassa, voit järjestää tietoja siitä, mikä tekee Kerrostettu ohjelmakielijärjestelmä, joka edustaa C-kieltä jaksollisen järjestelmän hengessä - yhdellä sivulla.

Järjestelmä on rakennettu ottaen huomioon sovellettavien kielten yhteisöt, joka johtuu heidän puheen alistamisestaan. Yhdellä Matryoshka C -yksiköiden sarjalla voit kuvata ja vertailla eri kieliä luomalla sarjan Matryoshkoja: C++, PHP, JavaScript, C#, MySQL, Python ja niin edelleen. On arvokasta ja oikein, että eri kieliä kuvataan peruskielen yksiköillä.

2. LUKU 1. Ohjelman puhemalli. Selkeä C

Ensimmäinen luku esittelee ohjelman puhemalliheijastelee sovellettua lähestymistapaa. Hänen mukaansa ohjelmalla on kolme ilmeistä peräkkäistä tyyppiä:

  1. puhe - ongelman ratkaisevan ohjelmoijan suora puhe,
  2. koodattu - ratkaisun koodaus matemaattiseen muotoon C-kielellä (tai millä tahansa muulla)
  3. ja komento - suorat konekäskyt.

Puhemalli selittää, miksi C on yksinkertainen ja ymmärrettävä kieli. Xi on rakennettu meille tutun ihmisen puheen kuvaan ja kaltaisuuteen.

Ensimmäinen ohjelmatyyppi on ohjelmoijan suora puhe. Puhe vastaa ihmisen ajattelua. Aloittelevat ohjelmoijat kirjoittavat ohjelmia puheella - ensin venäjäksi, sitten askel askeleelta kääntämällä toiminnot koodikielelle. Ja juuri tällä mallilla luotiin C-kieli.

Ohjelmoijan puheessa ilmaistut johtopäätökset muunnetaan koodattuun numeeriseen muotoon. Tätä muutosta pitäisi kutsua heijastus, koska puheella ja koodilla on sama luonne (heijastus - syntymä - sukupuoli). Tämä on aivan ilmeistä, jos vertaamme ohjelman puhe- (vasemmalla) ja koodi (oikealla) tyyppejä.

Matryoshka C. Kerrostettu ohjelmakielijärjestelmä

On uteliasta, että heijastus tapahtuu hyvin yksinkertaisesti - vain kahdentyyppisillä ilmaisuilla.

Nykyaikainen C-kielen kuvaus (vuodelta 1978) ei kuitenkaan sisällä riittävää nimiluetteloa kuvaamaan kieltä yleisesti eikä erityisesti reflektointitehtävää varten. Siksi meidän on pakko olla luovia ja esitellä nämä nimet.

Sanavalinnan tulee olla tarkkaa ja selkeää. Tämä vaati erityistä lähestymistapaa, joka ilmaistaan ​​lyhyesti seuraavasti: äidinkielen tiukka käyttö. Englantilaisille se olisi englanti, mutta me emme ole englantilaisia. Joten käytämme sitä mitä meillä on ja yritämme puhua venäjää.

Heijastus suoritetaan kahdentyyppisillä lausekkeilla:

  1. laskelma (HF) - heijastaa muutosta kohteen ominaisuuksissa. Objektin ominaisuus ilmaistaan ​​luvulla, jolloin ominaisuuteen kohdistuva toiminta on toiminto numeroon - operaatio.
  2. alisteisuutta (Pch) - kuvastaa muutosta toimintojen järjestyksessä. Pch:n prototyyppi on monimutkainen puhelause, joten useimmat Pch-tyypit alkavat alisteisilla konjunktioilla "jos", "muuten", "kun", "for". Muuntyyppiset tietokoneet täydentävät niitä.

Muuten, voitko uskoa, että C-kuvauksessa ei ole nimeä laskentalausekkeille - niitä kutsutaan yksinkertaisesti "lausekkeiksi"? Tämän jälkeen ei ole enää yllättävää, ettei alisteistyypillä ole nimeä ja assosiaatiota, eikä ylipäätään nimien, määritelmien ja yleistysten niukkuus. Tämä johtuu siitä, että kuuluisa K/R ("The C Language", Kernighan/Ritchie, 1978) ei ole kuvaus, vaan opas kielen käyttöön.

Haluaisin kuitenkin vielä kuvauksen kielestä. Siksi häntä tarjotaan Kerrostettu ohjelmakielijärjestelmä.

3. LUKU 2. Kerrosjärjestelmä. Lyhyt C

Kaikkien kuvausten tulee olla tarkkoja ja erittäin ytimekkäitä. Ohjelmakielen tapauksessa frontaalinen kuvaus on vaikeaa.

Tässä meillä on ohjelma. Se koostuu moduuleista. Moduulit koostuvat aliohjelmista ja kokoelmista (rakenne). Aliohjelmat koostuvat yksittäisistä lausekkeista: ilmoitukset, laskelmat, alisteisuus. Alisteisuutta on peräti kymmenen tyyppiä. Alistus yhdistää alitasot ja alirutiinit. Myös mainoksia on useita. Ilmoitukset eivät kuitenkaan sisälly ainoastaan ​​aliohjelmiin ja alitasoihin, vaan myös moduuleihin ja kokoelmiin. Ja useimmat ilmaisut koostuvat sanoista, joita on niin vaikea kuvailla, että ne annetaan yleensä yksinkertaisesti kahdessa luettelossa - alkuperäisissä ja johdetuissa sanoissa, joihin tutustut kielen oppimisen ja käytön aikana. Lisätään tähän välimerkit ja joukko muita lausekkeita.

Tällaisessa esityksessä ei ole helppoa ymmärtää, kuka seisoi kenen päällä.

Suora hierarkkinen lähestymistapa kielen kuvaamiseen olisi liian monimutkaista. Kiertoliittymähaku johtaa kielen kuvaukseen sen puheluonteen ja komentopuolen perusteella. Näin syntyi kerrosjärjestelmä, joka osui osittain yhteen Mendelejevin jaksollisen järjestelmän kanssa, joka on myös kerros. Kuten kävi ilmi 42 vuotta julkaisun jälkeen (1869), järjestelmän jaksollisuus liittyy elektroniseen kerroksia (1911, Bohr-Rutherfordin atomin malli). Myös Layered- ja Periodic-järjestelmät ovat samanlaisia ​​kaikkien yksiköiden taulukkojärjestelyssä yhdellä sivulla.

Kieliyksiköiden kuvaus on lyhyt - vain 10 tyyppistä ilmaisua ja 8 tyyppiä muita yksiköitä, sekä mielekäs ja visuaalinen. Vaikka epätavallista ensimmäiselle tuttavalle.

Kieliyksiköt on jaettu 6 tasoon:

  1. yksiköt - taulukon rivit
  2. osastot - erityiset sukuryhmät (ensimmäisen rivin osat)
  3. suku - solut (pääasiallinen jakautumistaso)
  4. superlajit - lajien erottimet (harvinainen taso)
  5. tyypit - yksikkökaavat solun alaosassa tai erikseen
  6. kuviot - itse yksiköt (vain sanoille)

Esimerkkisanat kuvaavat sanakirja - erillinen osajärjestelmä, joka koostuu samoista kuudesta tasosta.

C-kielen puhekomponentti on melko ilmeinen, vaikka se ansaitsee silti kuvauksen. Mutta kielen komento-osa liittyy nimenomaan kääntämisen ohjaukseen, jonka aikana luodaan kolmas ohjelmatyyppi - komento. Tässä pääsemme C-kielen jännittävimpään osa-alueeseen: kauneuteen.

4. SEURAAVAT LUKUT. Komea Si

C-kieli on nykyaikaisen ohjelmoinnin perusta. Miksi? Ensinnäkin suurimman puheen vastaavuuden vuoksi. Toiseksi, koska se ohitti kauniisti konenumeron käsittelyn rajoitukset.

Mitä Xi tarkalleen ottaen ehdotti? Kuva ja kerros.

Sana "image" on käännös englanninkielisestä sanasta "type", joka tulee kreikan sanasta "prototype" - "type". Venäjän kielessä sana "tyyppi" ei välitä ilmaistun käsitteen kulmakiveä, vaan se sekoitetaan apumerkitsyyteen "tyyppi".

Aluksi kuva ratkaisi puhtaasti koneenlaskennan ongelman, ja sitten siitä tuli kiitorata objektikielten syntymiselle.

Kerros ratkaisi välittömästi useita ongelmia - sekä koneellisesti että levitettynä. Siksi harkinta alkaa yhden tehtävän kuvasta ja siirtyy usean tehtävän kerrokseen.

Yksi historiallisen ohjelmoinnin epämiellyttävistä piirteistä on, että useimmat käsitteet, mukaan lukien peruskäsitteet, annetaan ilman määritelmiä. "Ohjelmointikielessä (jokien nimissä) on kokonaisluku- ja kelluvat lukutyypit..." ja he raapivat edelleen. Ei ole tarpeen määritellä, mikä "tyyppi" (kuva) on, koska kirjoittajat eivät itse ymmärrä tätä täysin ja hiljentävät sen "selvyyden vuoksi". Jos ne kiinnitetään seinään, ne antavat epämääräisen ja hyödyttömän määritelmän. Se auttaa paljon piiloutumaan vieraiden sanojen taakse: venäläisille tekijöille - englannin (tyyppi), englantilaisille - ranskan (alirutiini), kreikan (polymorfismi), latinan (kapselointi) tai niiden yhdistelmien (ad-hoc polymorfismi) taakse.

Mutta tämä ei ole kohtalomme. Valikoimamme on määritelmät korotetulla visiirillä puhtaalla venäjällä.

kuva

kuva on suuren esikuvallinen nimi, joka määrittää 1) suuren luontaiset ominaisuudet ja 2) suuren operaatioiden valinnan.

Sana "tyyppi" (tyyppi) vastaa määritelmän ensimmäistä osaa: "suureen luontaiset ominaisuudet". Mutta kuvan tärkein merkitys on toisessa osassa: "operaatioiden valinta määriin".

C:n kuvan lisäämisen lähtökohtana on normaali laskutoimitus, kuten summausoperaatio.

paperi Matematiikka, olipa se sitten käsin kirjoitettu tai painettu, ei tee paljon eroa lukutyyppien välillä, yleensä olettaen, että ne ovat todellisia. Siksi niiden käsittelytoimet ovat yksiselitteisiä.

Konehuone Matematiikka jakaa luvut tiukasti kokonaislukuihin ja murtolukuihin. Erityyppiset numerot tallennetaan eri tavalla muistiin ja niitä käsitellään eri prosessorin käskyillä. Esimerkiksi ohjeet kokonaislukujen ja murtolukujen lisäämiseksi ovat kaksi eri käskyä, jotka vastaavat kahta eri prosessorisolmua. Mutta ei ole komentoa kokonaisluku- ja murtolukuargumenttien lisäämiseen.

Sovellettu matematiikka eli C-kieli erottelee lukutyypit, mutta yhdistää operaatioita: kokonaislukujen ja/tai murtolukujen yhteenlasku kirjoitetaan yhdellä toimintamerkillä.

Käsitekuvan selkeä määritelmä antaa meille mahdollisuuden puhua ehdottomasti kahdesta muusta käsitteestä: arvo и operaatio.

Suuruus ja toiminta

Arvo — käsiteltävä numero.

Toiminta - Alkuarvojen (argumenttien) arvojen käsittely lopullisen luvun (yhteensä) saamiseksi.

Suuruus ja toiminta liittyvät toisiinsa. Jokainen operaatio on määrä, koska sillä on numeerinen tulos. Ja jokainen arvo on tulos arvon siirtämisestä prosessorirekisteriin/prosessorirekisteristä, eli toiminnan tulos. Tästä suhteesta huolimatta tärkeintä on niiden erillisen kuvauksen mahdollisuus, vaikkakin yhden sanan toistolla sanakirjan eri osioissa, kuten MA3:ssa tapahtuu.

Konelähestymistapa jakoi kaikki ohjelmoijan käyttämät luvut komennot и tiedot. Aiemmin molemmat olivat numeroita, esimerkiksi komennot kirjoitettiin numerokoodeilla. Sovelletuissa kielissä komennot lakkasivat olemasta numeroita ja muuttuivat sanat и toiminnan merkkejä. Vain "data" jää numeroiksi, mutta on järjetöntä jatkaa niiden kutsumista sillä tavalla, koska siirryttäessä koneesta matemaattiseen näkökulmaan luvut ovat suureita, jotka jaetaan alkuperäisellä (tiedot) ja lopullinen (edellytetään). "Tuntematon data" kuulostaa tyhmältä.

Joukkueet jaettiin myös kahteen tyyppiin: matemaattiseen ja palvelutoimintaan. Matemaattiset toiminnot - operaatiot. Virallisiin asioihin palataan myöhemmin.

C-kielissä tavallisista paperin ja koneen yksiselitteisistä tai yksittäisistä matemaattisista operaatioista tulee lähes yleisesti moninkertaisia.

Useita operaatioita ovat useita samannimiä operaatioita, joissa on erityyppiset argumentit ja erilaiset, merkitykseltään samanlaiset toiminnot.

Kokonaislukuargumentit vastaavat kokonaista operaatiota ja murto-osaargumentit vastaavat murto-osaa. Tämä ero on erityisen selvä jakooperaation aikana, kun lauseke 1/2 antaa summan 0, ei 0,5. Tällainen merkintä ei vastaa paperimatematiikan sääntöjä, mutta C-kieli ei pyri noudattamaan niitä (toisin kuin Fortran) - se pelaa omien sääntöjensä mukaan sovelletaan säännöt.

Kun kyseessä on sekoitus kokonaislukuja ja murtolukuja, ainoa oikea sisällytetään argumenttien arvojen heittäminen — arvon valikoiva muunnos kuvasta toiseen. Todellakin, kun lisäät kokonaisluvun ja murtoluvun, tulos on murtoluku, joten toiminnon kuva poimii kokonaislukuargumentin muuntaminen murtoluvuksi.

Useita operaatioita on jäljellä monikkoJa yksittäinen. Tällaiset toiminnot määritellään vain yhdentyyppisille argumenteille: jakojäännös - kokonaislukuargumentit, pinoaminen (bittikohtaiset toiminnot) - luonnolliset kokonaisluvut. Ma3 ilmaisee operaatioiden lukumäärän merkeillä (#^), jotka osoittavat kuvat, joille operaatio on määritelty. Tämä on tärkeä, mutta aiemmin huomiotta jäänyt ominaisuus jokaisessa toiminnassa.

Kaikki toiminnot ovat mielivaltaisia ​​yksikkötoimintoja. Poikkeuksena ovat operaattorit - ei-sulkutoiminnot, sisäänrakennettu kieleen (alkuperäiset toiminnot).

Apua

Apua - operaatioon liittyvä toiminta.

Jos pidämme operaatiota päätoimenpiteenä, voimme erottaa kaksi oheistoimintoa, jotka tarjoavat toiminnon ja eroavat siitä. Nämä ovat 1) muuttuva ohjaus ja 2) alisteisuus. Tätä toimintaa kutsutaan apua.

Tässä meidän täytyy poiketa ja sanoa erikseen ohjelmointioppikirjojen venäjänkielisistä käännöksistä. K/R:n tekstiin lisättiin uusi sana toimien kirjaamiseksi selvitys (lauseke), jossa yritettiin jakaa konekäskyn käsitteet eri toimintoihin: 1) operaatio, 2) julistus ja 3) alisteisuus (kutsutaan "ohjauskonstruktioiksi"). Venäläiset kääntäjät hautasivat tämän yrityksen ja korvasivat "ilmaisun" sanalla "operaattori", joka:

  1. on tullut synonyymi konesanalle "komento",
  2. osoittautui synonyymiksi ilmaisulle "toiminnan merkki",
  3. ja sai myös rajattoman määrän lisäarvoja. Eli siitä on tullut jotain samanlaista kuin englanninkielinen artikkeli "uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"

Harkitse oheisia toimia tai apua.

Muuttuva ohjaus

Muuttuva ohjaus (UP) - muuttuvien solujen luominen/poistaminen.
UE esiintyy implisiittisesti määritettäessä muuttuja, joka on jo kirjoitettu toisesta syystä - arvon kuvan osoittamiseksi. Vain yhtä näkymää hallitaan erikseen lisämuuttujia käyttämällä malloc()- ja free()-funktioita.

On huomattava, että implisiittiset toimet ovat mukavampia kirjoittamiseen, koska ne eivät vaadi kirjoittamista ollenkaan, mutta niitä on vaikeampi ymmärtää - niitä on vaikeampi ottaa huomioon ja tulkita.

Alistaminen

Alistaminen — Yhdistä/poista kerrososat käytöstä.

C-kieli tarjosi sovelletun menetelmän toimintojen järjestyksen ohjaamiseen, joka poikkesi assembler - alistamisesta. Se heijastaa ja kehittää monimutkaista puhelausetta, jossa on selkeä jako pääosaan (alalause) ja alaosaan (alitaso-/alirutiiniosat).

Sekä ilmoitus että toimittaminen perustuvat täysin konseptiin слой.

Kerros

Kerros on rajoitettu yksitasoinen valikoiva lausekejoukko.

Kerros otti eksplisiittisesti ja implisiittisesti useita tehtäviä kerralla:

  1. ohjelman järjestäminen
  2. nimien näkyvyyden rajoittaminen (implisiittisesti),
  3. muuttujien (muistisolujen) hallinta (implisiittinen),
  4. alisteisten lausekkeiden määritelmä,
  5. funktioiden ja valintojen määritelmät ja muut.

Konekielissä ei ollut kerroskäsitettä, joten se ei esiintynyt K/R:ssä, ja jos jotain ei ollut siellä, niin sen esitteleminen seuraavissa kirjoissa olisi harhaoppia ja vapaa-ajattelua. Siksi kerroksen käsite ei ilmestynyt ollenkaan, vaikka se on erittäin hyödyllinen ja melko ilmeinen.

Ilman kerrosta on mahdotonta selittää lyhyesti ja selkeästi monia ohjelman toimintoja ja sääntöjä. Esimerkiksi miksi goto on niin yksinkertainen kuin kolme kopeikkoa huono ja hankala while on hyvä. Voit vain vannoa avuttomasti, kuten Dijkstra teki ("ohjelmoijien taito on funktio, joka riippuu käänteisesti goto-lauseiden esiintymistiheydestä heidän ohjelmissaan." Lyhyesti sanottuna vain vuohet käyttävät gotoa. Perustamisen taso on Jumala.) Totta, tämä ei ole niin pelottavaa, jos kirjasi Meidän ei tarvitse selittää mitään, mutta kuten olemme jo sanoneet, tämä ei ole kohtalomme.

Voidaan muuten olettaa, että Dan Ritchie jätti goton juuri avaimeksi jonkin nimettömän käsitteen etsimiseen, koska ilmaisussa goto ei ollut tarvetta tai kauneutta. Mutta tarvittiin yksinkertainen ja ymmärrettävä selitys uusille kielen periaatteille, joita Richie itse ei halunnut antaa ja jotka perustuvat juuri konseptiin. слой.

Poikkeama

Poikkeama — uuden nimen tavanomaisten ominaisuuksien muuttaminen.

Tärkein poikkeama liittyy nimenomaan ohjelman kerrosominaisuuksiin, ja sitä kuvataan yhdellä sanalla "staattinen", jolla on eri merkitys kussakin tasotyypissä.

5. VIIMEINEN LUKU. Sovellettujen kielten yhteisyys

Sovellettavat kielet ovat kuvaannollinen kielet (jossa on kuva, "kirjoitettu"). Ne perustuvat kuvan eksplisiittiseen tai implisiittiseen käyttöön. Lisäksi tässä taas ilmenee ristiriita: eksplisiittinen kuva on ymmärrettävämpi, mutta vähemmän kätevä ja päinvastoin.

Matryoshka C. Kerrostettu ohjelmakielijärjestelmä

(Pöydän asettelua ei ole vielä toimitettu, joten taulukko näkyy kuvan kera.)

C:n jälkeen sovellettujen kielten kehitys vei niiden figuratiivisuuden lisäämisen. Tärkein korkean kuvan ymmärtämisen kannalta on C:n suora jälkeläinen - C++-kieli. Hän kehittää ajatusta mielivaltaisesta operaatioiden valinnasta suureille ja toteuttaa sen synteettisen lausekkeen valinnan perusteella, joka saa uuden nimen - objektin. C++ ei kuitenkaan ole yhtä ytimekäs ja ilmeikäs kuin C uusien kokoelmatyyppien ja niihin liittyvien sääntöjen ylikuormituksen vuoksi. Muuten, puhutaan "ylikuormituksesta".

Ylikuormitus ja polymorfismi

Sana "ylikuormitus" on vanhentunut koneoppimisen termi luomiselle useita operaatioita.

Koneen (järjestelmä) ohjelmoijat moninaisuus operaatiot voivat hyvinkin olla ärsyttäviä: "Mitä tämä merkki (+) tarkoittaa: kokonaislukujen lisäämistä, murtolukujen lisäämistä tai jopa siirtämistä?! Meidän aikanamme he eivät kirjoittaneet noin!" Tästä syystä valitun sanan negatiivinen konnotaatio ("overkill", "väsynyt"). Sovellusohjelmoijalle useat toiminnot ovat kulmakivi, C-kielen tärkein saavutus ja perintö, niin luonnollista, että niitä ei usein tunnisteta.

C++ kielellä moninaisuus ei laajennettu pelkästään alkuperäisiin operaatioihin, vaan myös funktioihin - sekä yksittäisiin että luokkiin yhdistettyihin - menetelmiin. Useilla menetelmillä saatiin kyky ohittaa ne laajennetuissa luokissa, jota kutsuttiin epämääräisesti "polymorfismiksi". Polymorfismin ja ylikuormituksen yhdistelmä tuotti räjähtävän seoksen, joka jakautui kahteen polymorfismiin: "tosi" ja "ad-hoc". Tämä on mahdollista ymmärtää vain annetuista nimistä huolimatta. Tie mainokseen on kivetty ulkomaisilla nimillä.

Ilmoitus muodossa "ylikuormitus" ilmaistaan ​​paremmin sanassa lisäilmoitus — samannimisen funktion ilmoituksen lisääminen eri kuvan argumenteilla.

Muotoa "polymorfismi" olevaa julistusta kutsutaan paremmin uudelleen ilmoitus — päällekkäinen ilmoitus samannimisen funktion uudessa laajennuskerroksessa saman kuvan argumenteilla.

Sitten on helppo ymmärtää, että samat menetelmät eri kuville (argumenteille) - lisäksi ilmoitettuja yksi kuva - ilmoitettiin uudelleen.

Venäjän sanat ratkaisevat.

Kiitotie

Erittäin kuviollisten kielten käsitteiden tarkastelu vahvistaa peruskäsitteiden selkeän määritelmän tärkeyden. Kun C on kuvattu oikein, monimuotoisten kielten oppiminen on helppoa ja nautinnollista.

Tämä on erityisen tärkeää implisiittisiä, erittäin kuvaannollisia kieliä (PHP, JavaScript). Heille objektien (komposiittikuvien) merkitys tulee vieläkin korkeammaksi kuin C++:ssa, mutta itse kuvan käsite muuttuu implisiittiseksi ja vaikeaselkoiseksi. Mukavuuden kannalta niistä on tullut yksinkertaisempia, mutta ymmärtämisen kannalta vaikeampia.

Siksi sinun tulee aloittaa ohjelmointikielten oppiminen C-kielellä ja siirtyä eteenpäin siinä järjestyksessä, jossa C-perheen kielet esiintyvät.

Sama pätee kielten kuvaamiseen. Eri kielillä on samat tai pienemmät yksiköiden sukupuolet kuin C-kielellä. Tyyppien ja näytteiden määrä voi vaihdella molempiin suuntiin: C++:ssa on enemmän tyyppejä kuin C:ssä, kun taas JavaScriptissä on vähemmän.

MySQL-kieli ansaitsee erityisen maininnan. Vaikuttaa siltä, ​​​​että ei ole mitään yhteistä, mutta Matryoshka kuvailee hänet täydellisesti, ja häneen tutustuminen on nopeampaa ja helpompaa. Mikä on tärkeää, kun otetaan huomioon sen merkitys verkossa - nykyaikaisen ohjelmoinnin ruokatie. Ja missä on MySQL, on muita SQL:itä. No, kaikenlaisia ​​Fortran-Pascal-Pythoneja myös Matryoshka kuvailee, heti kun ne saavat käsiinsä.

Joten hienoja asioita odottaa meitä - soveltuva kuvaus C-kielestä ja yhtenäinen kuvaus sitä seuraavista kielistä. ”Tavoitteemme ovat selvät, tehtävämme on määritelty. Menkää töihin, toverit! (Myrskyisiä, pitkiä suosionosoituksia, jotka muuttuvat aplodeiksi. Kaikki nousevat seisomaan.)"

Mielipiteitänne kuunnellaan suurella mielenkiinnolla, apunne pesimänukkesivuston luomisessa otetaan vastaan ​​suurella kiitollisuudella. Täydelliset tiedot kirjasta ovat verkkosivuilla, taitavasti piilotettuna Matryoshka C: hen.

Lähde: will.com

Lisää kommentti