{"id":33886,"date":"2019-10-31T21:55:15","date_gmt":"2019-10-31T18:55:15","guid":{"rendered":"https:\/\/prohoster.info\/blog\/matryoshka-si-slojnaya-sistema-yazyka-programmy\/"},"modified":"2019-10-31T21:55:15","modified_gmt":"2019-10-31T18:55:15","slug":"matryoshka-si-slojnaya-sistema-yazyka-programmy","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/matryoshka-si-slojnaya-sistema-yazyka-programmy","title":{"rendered":"Matrioshka C. Kihtide s\u00fcsteem programmeerimiskeeles","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Kujutame ette keemiat ilma Mendelejevi Perioodilise s\u00fcsteemita (1869). Kui palju elemente tuli siis meeles pidada, veel suvalises j\u00e4rjestuses\u2026 (Tollal \u2014 60.)<\/p>\n<p>Selle jaoks piisab, kui m\u00f5elda \u00fchele v\u00f5i mitmele programmeerimiskeelele. Samad tunded, sama loov segadus. <\/p>\n<p>N\u00fc\u00fcd saame kogeda 19. sajandi keemikute tundeid, kui neile pakuti k\u00f5iki nende teadmisi, ja natuke rohkem, \u00fches Perioodilises tabelis. <\/p>\n<p><img decoding=\"async\" alt=\"Matrioshka C. Kihtide s\u00fcsteem programmeerimiskeeles\" src=\"\/wp-content\/uploads\/2019\/05\/15ce1538e152aad5fcd683fe7fcd96c0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nRaamat \u201eMatro\u0161ka C. Kihiline programmeerimiskeel\u201c esitleb k\u00f5iki C keele elemente nagu peopesa peal. See v\u00f5imaldab neid korrastada, parandada vananenud andmeid ja isegi t\u00e4psustada programmi m\u00f5istet. <\/p>\n<p>T\u00e4na vajavad programmeerimise andmed s\u00fcsteematiseerimist isegi rohkem kui keemilised elemendid 150 aastat tagasi. <\/p>\n<p>Esimene vajadus on \u00f5petamine. Mendelejev alustas oma s\u00fcsteemi loomist, kui seisis silmitsi k\u00fcsimusega \u2014 millisest elemendist alustada loengute pidamist: O, H, N, He, Au\u2026 Sel juhul oli tal lihtsam \u2014 ta \u00f5petas parimat keemiat \u2014 Peterburi \u00fclikooli tudengeid. Ja programmeerimist \u00f5petatakse juba koolis ja peagi hakatakse seda ka lasteaias \u00f5petama. <\/p>\n<p>Teine vajadus on teaduslik l\u00e4henemine. Ajakirjanduse s\u00fcstemaatika abil avati uued elemendid ja parandati vanade kohta k\u00e4ivad andmed. See aitas kaasa aatomimudeli loomisele (1911). Ja nii edasi. <\/p>\n<p>Kolmas vajadus on programmi m\u00f5iste t\u00e4psustamine. <\/p>\n<p>Kaasaegne programmeerimine on \u00fche jalaga kinni 20. sajandi 50. aastates. Tol ajal olid programmid lihtsad ja masinad ning masinakeeled keerulised, seega k\u00f5ik p\u00f6\u00f6rdus masinate ja keelte \u00fcmber. <\/p>\n<p>N\u00fc\u00fcd on k\u00f5ik vastupidi: programmid on keerulised ja esmaste, keeled aga lihtsad ja teisej\u00e4rgulised. Seda nimetatakse rakendusliku l\u00e4henemisviisiks, mis tundub k\u00f5igile tuttav. Kuid tudengeid ja arendajaid j\u00e4tkatakse veenmine, et k\u00f5ik on endiselt sama. <\/p>\n<p>See tagastab meid professor Mendelejevi esimese loenguni. Mida \u00f6elda esmakursuslastele? Kus on t\u00f5de? See on k\u00fcsimus. <\/p>\n<p>Oma vastuse sellele pakub raamat \u00abS\u00fcsteemne siidi keele kiht\u00bb. Ja see ei ole suunatud mitte ainult tudengitele, vaid ka ettevalmistatud programmeerijatele, kuna t\u00f5e otsimine ja maailmavaate \u00fcmberkujundamine peaksid olema just nemad, st meie. <\/p>\n<p>Edasi j\u00e4rgneb raamatu l\u00fchikokkuv\u00f5te. <\/p>\n<h2>1. Sissejuhatus<\/h2>\n<p>\n1969. aastal loodi C keele, mis on olnud programmi p\u00f5hiline programmeerimiskeel juba 50 aastat. Miks see nii on? Peamiselt seet\u00f5ttu, et C on <i>rakenduslik<\/i> keel, mis andis programmile <i>inimlikku<\/i> ilmet asemel <i>masina<\/i>. Seda saavutust on kinnitanud C perekonna keeled: C++, JavaScript, PHP, Java, C# ja teised. Teiseks on see l\u00fchike ja ilus keel. <\/p>\n<p>Kuid C keelt segatakse sageli masina assembleriga, keerates sellega selle t\u00f5lgendamise keeruliseks ja moonutades seda. Teine \u00e4\u00e4rmus on keelele teatud 'filosoofia' peale kuvamine: protseduuriline, objektip\u00f5hine, funktsionaalne, kompileeritav, t\u00f5lgendatav, t\u00fc\u00fcbitud jne. See lisab emotsioone, kuid ei aita paremini keelt kirjeldada. <\/p>\n<p>T\u00f5de asub keskel, ning C keele puhul \u2014 rangelt keskel filosoofilise ja masina t\u00f5lgendamise vahel. <\/p>\n<p>C keel ei ole iseseisev, see allub tavalisele kirjutatud k\u00f5nele, ning samal ajal juhib see masinakeelt. Seda positsiooni kirjeldab <i>Programmikuulmismudel<\/i>, mille, mille cm'nin g\u00f6re program \u00fc\u00e7 alt t\u00fcrlere ayr\u0131lm\u0131\u015ft\u0131r: sesli, koda, komutlu. C dili ikinci, kod t\u00fcr\u00fc ile sorumludur. <\/p>\n<p>Dilin programdaki yerini belirleyerek, ona dair bilgileri d\u00fczenlemek m\u00fcmk\u00fcn olur, bu da <i>Program dili katmanl\u0131 sistemi<\/i>, C dilini Mendeleev sisteminin ruhuna uygun \u015fekilde bir sayfada sunmaktad\u0131r. <\/p>\n<p>Sistem, <i>uygulama dillerinin ortakl\u0131\u011f\u0131na<\/i>, onlar\u0131n sesli ba\u011fl\u0131l\u0131klar\u0131ndan kaynaklanmaktad\u0131r. Bir set Matryoshka C dilinin birimi, farkl\u0131 dilleri tan\u0131mlay\u0131p kar\u015f\u0131la\u015ft\u0131rmay\u0131 sa\u011flar, C++, PHP, JavaScript, C#, MySQL, Python vb. Matryoshka dizileri olu\u015fturarak. Farkl\u0131 dillerin temeli olan dil birimleri ile tan\u0131mlanmas\u0131, uygun ve do\u011frudur. <\/p>\n<h2>2. BAP 1. Program\u0131n sesli modeli. Anla\u015f\u0131l\u0131r C<\/h2>\n<p>\nBirinci b\u00f6l\u00fcmde, <i>program\u0131n sesli modeli<\/i>, uygulay\u0131c\u0131 yakla\u015f\u0131m\u0131 yans\u0131tmaktad\u0131r. Buna g\u00f6re, program\u0131n \u00fc\u00e7 belirgin ard\u0131\u015f\u0131k bi\u00e7imi vard\u0131r: <\/p>\n<ol>\n<li>sesli - program\u0131n problemini \u00e7\u00f6zen programc\u0131n\u0131n do\u011frudan ifadesi, <\/li>\n<li>kodlu - C dilinde (veya ba\u015fka bir dilde) \u00e7\u00f6z\u00fcm\u00fcn matematiksel bi\u00e7ime kodlanmas\u0131,<\/li>\n<li>ve komutlu - do\u011frudan makine komutlar\u0131. <\/li>\n<\/ol>\n<p>\nK\u00f5ne mudel selgitab, miks C on lihtne ja arusaadav keel. C on \u00fcles ehitatud meie tuttava inimkeele sarnaselt. <\/p>\n<p>Esimene programmi t\u00fc\u00fcp on programmeerija otsek\u00f5ne. K\u00f5ne vastab inimlikele m\u00f5tlemisviisidele. Algajad programmeerijad kirjutavad programme k\u00f5nes \u2014 esmalt ema keeles ja seej\u00e4rel samm-sammult t\u00f5lkides toimingud koodi keelde. Just sellise mudeli alusel loodi C keel. <\/p>\n<p>Programmeerija j\u00e4reldused, v\u00e4ljendatud k\u00f5nes, muudetakse koodiliseks numbriliseks vormiks. Seda \u00fcmberkujundamist peaks nimetama <i>peegeldamiseks<\/i>, kuna k\u00f5ne ja kood omavad \u00fchte iseloomu (peegeldamine - s\u00fcnni - p\u00e4ritolu). See on t\u00e4iesti ilmne, kui v\u00f5rrelda k\u00f5ne (vasakul) ja koodilise (paremal) programmi vorme. <\/p>\n<p><img decoding=\"async\" alt=\"Matrioshka C. Kihtide s\u00fcsteem programmeerimiskeeles\" src=\"\/wp-content\/uploads\/2019\/05\/e88d13730660ebac1d661bb2d34a33d5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHuvitav on see, et peegeldamine toimub v\u00e4ga lihtsalt \u2014 vaid kahe v\u00e4ljendi t\u00fc\u00fcbiga. <\/p>\n<p>Siiski ei sisalda C keele ajalooline kirjeldus (aastast 1978) piisavat nimekirja nimedest, et kirjeldada keelt \u00fcldiselt ega peegeldamis\u00fclesannet eriti. Seet\u00f5ttu peame loovuse nimel nende nimede loomisega tegelema.<\/p>\n<p>S\u00f5nade valik peab olema t\u00e4pne ja selge. Selleks on vajalik eriline l\u00e4henemine, mida saab l\u00fchidalt v\u00e4ljendada j\u00e4rgmiselt \u2014 emakeele ranget kasutamist. Inglaste jaoks oleks see inglise keel, aga meie ei ole inglased. Seega kasutame seda, mis meil on, ning p\u00fc\u00fcame r\u00e4\u00e4kida eesti keeles. <\/p>\n<p>Peegeldust teevad kaks t\u00fc\u00fcpi v\u00e4ljendeid: <\/p>\n<ol>\n<li><i>arvutus <\/i>(Vch) \u2014 peegeldab objekti omaduste muutumist. Objekti omadus v\u00e4ljendatakse numbriga, seega toiming omadusega \u2014 see on toiming numbri \u00fcle \u2014 operatsioon. <\/li>\n<li><i>allutamine <\/i>(Pch) \u2014 peegeldab tegevuste j\u00e4rjekorra muutumist. Pch protot\u00fc\u00fcbiks on k\u00f5ne keeruline alams\u00f5na lause, seega enamik Pch t\u00fcvesid algab alluvate sides\u00f5nadega \u201ekui\u201d, \u201ekuid\u201d, \u201esiis\u201d, \u201ekuni\u201d. Teised Pch liigid t\u00e4iendavad neid. <\/li>\n<\/ol>\n<p>\n\u00dcldiselt, kas suudate uskuda, et C keele kirjelduses ei ole v\u00e4ljendite arvutamiseks nime? Need on lihtsalt nimetatud \u201ev\u00e4ljenditeks\u201d! P\u00e4rast seda ei \u00fcllata enam, et alluvuse t\u00fc\u00fcbi jaotuse jaoks pole nime ning kogu nimi, m\u00e4\u00e4ratlemine ja \u00fcldistus on nii vaesed. K\u00f5ik see tuleneb sellest, et kuulus K\/R (\u201eC keel\u201d, Kernighan\/Ritchie, 1978) ei ole kirjeldus, vaid keele rakendamise juhend. <\/p>\n<p>Siiski on soov, et keele kirjeldus olemas oleks. Seet\u00f5ttu pakub seda <i>Program dili katmanl\u0131 sistemi<\/i>. <\/p>\n<h2>3. PEAT\u00dcKK 2. Kihtide s\u00fcsteem. L\u00fchike C<\/h2>\n<p>\nIga kirjeldus peab olema t\u00e4pne ja \u00e4\u00e4rmiselt l\u00fchike. Programmi keele puhul on sirge kirjeldamine keeruline. <\/p>\n<p>Siin on meie programm. See koosneb moodulitest. Moodulid koosnevad alprogrammidest ja valikutest (structure). Alprogrammid koosnevad eraldi v\u00e4ljenditest: deklaratsioonid, arvutused, alluvused. Alluvused on tervelt k\u00fcmme t\u00fc\u00fcpi. Alluvused \u00fchendavad alamtasemed ja alprogrammid. Deklaratsioonidest on samuti mitmeid. Tegelikult sisaldatakse deklaratsioone mitte ainult alprogrammidest ja alamtasemetest, vaid ka moodulitest ja valikutest. Enamik v\u00e4ljendeid koosneb s\u00f5nadest, mille kirjeldamine on nii keeruline, et neid antakse tavalised kaks loetelu \u2014 algsed ja tuletatud s\u00f5nad, millega tutvutakse kogu keele \u00f5ppimise ja rakendamise k\u00e4igus. Lisame sellele kirjavahem\u00e4rgid ja veel m\u00f5ned v\u00e4ljendid. <\/p>\n<p>Selles esituses on keeruline m\u00f5ista, kes kelle peal seisis. <\/p>\n<p>Otsene hierarhiline l\u00e4henemine keele kirjeldamiseks oleks \u00fclem\u00e4\u00e4ra keeruline. \u00dcmber k\u00e4ivate teede otsimine viib keele kirjeldamiseni selle k\u00f5nepruugist ja k\u00e4su poolest. Nii s\u00fcndis Kihtide s\u00fcsteem, mis osaliselt kattub Mendelejevi perioodilise s\u00fcsteemiga, mis samuti on <i>kihtide<\/i>. Nagu selgus 42 aastat p\u00e4rast selle v\u00e4ljaandmist (1869), on s\u00fcsteemi perioodsus seotud elektronide <i>kihtidega <\/i>(1911, Bohr-Rutherfordi atomimudeliga). Kihilised ja perioodilised s\u00fcsteemid sarnanevad k\u00f5ikide elementide tabelisse paigutuse poolest. <\/p>\n<p>Keeles\u00fcsteemi kirjeldus on l\u00fchike \u2014 vaid 10 v\u00e4ljendite r\u00fchma ja 8 muu kategooria, samas on see sisukas ja visuaalne. Kuigi esmakordsel tutvumisel v\u00f5ib see tunduda harjumatu. <\/p>\n<p>Keele\u00fcksused on jagatud 6 tasemesse:<\/p>\n<ol>\n<li>grupid \u2014 tabeli read<\/li>\n<li>osakonnad \u2014 erigruppide r\u00fchmad (esimese rea osad)<\/li>\n<li>r\u00fchmad \u2014 lahtrid (peamine jagamisaste)<\/li>\n<li>alagrupid \u2014 liikide eraldajad (harv aste)<\/li>\n<li>liigid \u2014 \u00fcksuste valemid lahtri all v\u00f5i eraldi<\/li>\n<li>n\u00e4idised \u2014 ise\u00fcksused (ainult s\u00f5nade jaoks)<\/li>\n<\/ol>\n<p>\nS\u00f5nade n\u00e4idiseid kirjeldab <i>s\u00f5nastik<\/i> \u2014 eraldi alams\u00fcsteem, mis koosneb samadest kuuest tasemest. <\/p>\n<p>Keele k\u00f5ne komponent on C keeles t\u00e4iesti ilmne, kuigi see v\u00e4\u00e4rib siiski kirjeldamist. Kuid programmi k\u00e4ivitamise osa on seotud kompilatsiooni juhtimisega, mille k\u00e4igus luuakse kolmas programmi liik \u2014 k\u00e4surea. Siin j\u00f5uame C keele k\u00f5ige p\u00f5nevama k\u00fclje juurde \u2014 selle ilu. <\/p>\n<h2>4. J\u00c4RGMINE PEAT\u00dcKK. Kaunis C<\/h2>\n<p>\nC keelt peetakse t\u00e4nap\u00e4eva programmeerimise aluseks. Miks? Esiteks, selle keele loomulikkuse t\u00f5ttu. Teiseks, kuna see \u00fcmbers\u00f5it viis masinlike numbrite t\u00f6\u00f6tlemise piirangutest.<\/p>\n<p>Mida t\u00e4pselt pakkus C? T\u00fc\u00fcp ja kiht. <\/p>\n<p>S\u00f5na \u201et\u00fc\u00fcp\u201d on t\u00f5lge ingliskeelsest s\u00f5nast \u201etype\u201d, mis p\u00e4rineb kreekakeelsest s\u00f5nast \u201eprotot\u00fc\u00fcp\u201d \u2014 \u201eeelk\u00e4ija\u201d. Eestikeelne s\u00f5na \u201et\u00fc\u00fcp\u201d ei edasta v\u00e4ljendatava m\u00f5iste p\u00f5hiolemust, lisaks seguneb see teenuslikku t\u00e4hendusse \u201esort\u201d. <\/p>\n<p>Alguses lahendas t\u00fc\u00fcp puhtalt masinlikku \u00fclesannet arvutuste teostamiseks, seej\u00e4rel sai sellest objekti-keeled loov variant. <\/p>\n<p>Kiht lahendas kohe mitu \u00fclesannet \u2014 nii masinlikke kui ka rakenduse. Seet\u00f5ttu algab arutelu \u00fcherealisest t\u00fc\u00fcbist ja liigub edasi mitmeetapilise kihini. <\/p>\n<p>Ajaloolise programmeerimise \u00fcks ebameeldivamaid jooni on see, et enamik m\u00f5isted, sealhulgas p\u00f5him\u00f5isted, antakse ilma m\u00e4\u00e4ratlusteta. \"Programmeerimiskeel (onte nimetused) sisaldab t\u00e4isarvude ja r\u00e4pase arvu t\u00fc\u00fcpe\u2026\" \u2014 ja l\u00e4ks edasi. Mis on \u201et\u00fc\u00fcp\u201c (kuju) \u2014 m\u00e4\u00e4ratlemine pole kohustuslik, kuna autorid ei m\u00f5ista seda t\u00e4ielikult ja p\u00fc\u00fcavad seda \"selguse\" nimel varjata. Kui nad nurka surutakse, pakuvad nad ebaselget ja kasutut m\u00e4\u00e4ratlust. \u00c4\u00e4rmiselt aitab varjata v\u00f5\u00f5rap\u00e4rastest s\u00f5nadest: Venemaa autorite jaoks \u2014 ingliskeelsest (t\u00fc\u00fcp), inglaste jaoks \u2014 prantsuse (subroutine), kreeka (pol\u00fcmorfism), ladina (enkapsulatsioon) v\u00f5i nende kombinatsioonidest (ad-hoc pol\u00fcmorfism). <\/p>\n<p>Kuid see ei ole meie saatus. Meie valik on m\u00e4\u00e4ratlused, millel on selge vene keel. <\/p>\n<h3>Pilt<\/h3>\n<p>\n<i>Pilt<\/i> \u2014 see on mind koos hoidev nimekiri, mis m\u00e4\u00e4ratleb 1) suuruse omadused ja 2) operatsioonide valiku suuruse jaoks. <\/p>\n<p>S\u00f5na \"t\u00fc\u00fcp\" (liik) vastab m\u00e4\u00e4ratluse esimesele osale: \"oma omadused suuruse jaoks\". Kuid peamine t\u00e4hendus kujutisest on teises osas: \"operatsioonide valiku suurustele\".<\/p>\n<p>C-programmeerimise alguspunkt on tavaline arvutus, n\u00e4iteks liitmisoperatsioon. <\/p>\n<p><i>Paber<\/i> matemaatika, mis on k\u00e4sitsi kirjutatud v\u00f5i tr\u00fckitud, ei tee erinevust arvu t\u00fc\u00fcpide vahel, eeldades tavaliselt, et need on reaalarvud. Seet\u00f5ttu on nende t\u00f6\u00f6tlemise operatsioonid \u00fcheselt m\u00f5istetavad.<\/p>\n<p><i>Masina<\/i> matemaatika jagab arvud rangelt t\u00e4isarvudeks ja murdarvudeks. Erinevaid numbrite t\u00fc\u00fcpe s\u00e4ilitakse m\u00e4lus erinevalt ja nende t\u00f6\u00f6tlemiseks kasutatakse erinevaid protsessori k\u00e4sklusi. N\u00e4iteks t\u00e4isarvude ja murdarvude liitmisoperatsioonid on kaks erinevat k\u00e4sku, mis vastavad kahte erinevale protsessori s\u00f5lmele. See-eest puudub t\u00e4isarvu ja murdarvu argumentide liitmisoperatsioon. <\/p>\n<p><i>Rakenduslik<\/i> matemaatika, see t\u00e4hendab C-keelt, eristab numbrite t\u00fc\u00fcpe, kuid \u00fchendab operatsioonid: t\u00e4isarvude ja\/v\u00f5i murdarvude liitmine kirjutatakse \u00fche operatsioonim\u00e4rgina.<\/p>\n<p>Selge definitsioon m\u00f5iste kohta v\u00f5imaldab kindlasti r\u00e4\u00e4kida kahest muust m\u00f5isted: <i>kogus <\/i>ja <i>operatsioon<\/i>. <\/p>\n<h3>Kogus ja operatsioon<\/h3>\n<p>\n<i>Kogus <\/i> \u2014 t\u00f6\u00f6deldud number.<\/p>\n<p><i>Operatsioon<\/i> \u2014 algsete koguste (argumentide) v\u00e4\u00e4rtuste t\u00f6\u00f6tlemine, et saada l\u00f5ppnumber (tulemus). <\/p>\n<p>M\u00f5isted ja operatsioonid on omavahel seotud. Iga operatsioon on suurus, kuna tal on arvuline tulemus. Ja iga suurus on tulemus v\u00e4\u00e4rtuse edastamisest protsessori registrisse \/ protsessorist v\u00e4lja, see t\u00e4hendab - operatsiooni tulemus. Hoolimata sellest seosest on siiski peamine nende eraldi kirjeldamise v\u00f5imalus, olgu see ka kordumisega sama s\u00f5na erinevates s\u00f5nastiku osades, mis juhtub ma3-s. <\/p>\n<p>Masinlik l\u00e4henemine jagas k\u00f5ik numbrid, mida programmeerija kasutas, <i>k\u00e4sklused <\/i>ja <i>andmed<\/i>. Varem olid need m\u00f5lemad numbrid, n\u00e4iteks olid k\u00e4sklused kirjutatud numbriliste koodidega. Kuid rakenduskeeltel on k\u00e4sklused lakendanud numbrid ja muutunud <i>s\u00f5nadeks <\/i>ja <i>tegevuste m\u00e4rkideks<\/i>. Ainult \u00abandmed\u00bb j\u00e4id numbriteks, kuid j\u00e4tkata nende nimetamine nii on absurdne, sest masinlikult matemaatilisse vaatepunkti \u00fcleminekul on numbrid - need on suurused, mida jagatakse algsed (<i>andmed<\/i>) ja l\u00f5plikud (<i>otsitud<\/i>). \u201eTundmatud andmed\u201d k\u00f5lab rumalana. <\/p>\n<p>K\u00e4sklused jagunesid samuti kaheks tegevust\u00fc\u00fcpideks: matemaatilised ja teenindavad. Matemaatilised tegevused - operatsioonid. Teenindavate juurde tuleme hiljem. <\/p>\n<p>C keeles muutuvad tuttavad paber- ja masinlikud \u00fcheselt m\u00f5istetavad v\u00f5i \u00fcksikud matemaatilised operatsioonid peaaegu \u00fchiselt mitmekesisteks. <\/p>\n<p>Mitmekesised operatsioonid \u2013 mitu sama nimega operatsiooni erinevate argumentide vormide ja erinevate, kuid sarnaste tegevustega. <\/p>\n<p>Tervele argumentidele vastab terviklik operatsioon, murdosadele \u2013 murruline. See erinevus on eriti silmatorkav jagamisoperatsiooni puhul, kui v\u00e4ljend 1\/2 annab tulemuseks 0, mitte 0,5. Selline kirjutamine ei vasta paberimatemaatika reeglitele, kuid C keel ei p\u00fc\u00fca neid j\u00e4rgida (erinevalt Fortranist) \u2013 ta m\u00e4ngib oma <i>rakenduslike<\/i> reeglite j\u00e4rgi.<\/p>\n<p>Segatud t\u00e4isarvude ja murdarvude korral aktiveeritakse ainus \u00f5ige <i>argumentide v\u00e4\u00e4rtuste toomine<\/i> \u2013 v\u00e4\u00e4rtuse valikuline teisendus \u00fchest vormist teise. Tegelikult, kui liita t\u00e4isarv ja murdarv, on tulemus \u2013 murruline, seega operatsiooni vorm <i>valib <\/i>t\u00e4isargumenti murdarvuks teisendamise operatsiooni. <\/p>\n<p>Rida operatsioone j\u00e4\u00e4b <i>mitmekesisteks<\/i>, ja <i>\u00fcheksateks.<\/i>. Sellised operatsioonid on m\u00e4\u00e4ratud ainult \u00fche t\u00fc\u00fcpi argumentidele: jagamise j\u00e4\u00e4k - t\u00e4isarvud, bititaseme operatsioonid - looduslikud t\u00e4isarvud. Ma3 n\u00e4itab operatsioonide mitmekesisust m\u00e4rkide (#^) kaudu, m\u00e4rkides \u00e4ra pildid, mille jaoks operatsioon on m\u00e4\u00e4ratud. See on oluline, kuid varasemate omaduste jaoks t\u00e4helepanuta j\u00e4\u00e4nud iga operatsiooni omadus. <\/p>\n<p>K\u00f5ik funktsioonid on omap\u00e4rased \u00fcksikud operatsioonid. Erandiks on operaatorid - <i>ilma sulgudeta funktsioonid<\/i>, mis on keelde sisse ehitatud (algoperatsioonid). <\/p>\n<h3>Toetamine<\/h3>\n<p>\n<i>Toetamine <\/i> on operatsiooni kaasnev tegevus.<\/p>\n<p>Kui vaadata operatsiooni kui p\u00f5hitegevust, siis v\u00f5ib eristada kahte kaasnevat, mis tagavad operatsiooni ja erinevad sellest. Need on 1) muutujate haldamine ja 2) allumine. Sellist tegevust nimetatakse <i>toetamiseks<\/i>.<\/p>\n<p>Siin on oluline peatuda ja r\u00e4\u00e4kida eraldi vene t\u00f5lgetest programmeerimise \u00f5pikutes. K\/R tekstis, mis kajastab tegevuste salvestamist, on kasutusele v\u00f5etud uus s\u00f5na <i>statement <\/i>(avalduse) \u00fcritus eraldada masink\u00e4sku m\u00f5isted erinevateks tegevusteks: 1) operatsioon, 2) deklareerimine ja 3) allutamine (nimetatud \u201ehaldusstruktuurideks\u201c). Selle \u00fcrituse matid venekeelsed t\u00f5lkijad, asendades \u201eavalduse\u201c s\u00f5naga \u201eoperaator\u201c, mis:<\/p>\n<ol>\n<li>sai masins\u00f5na \u201ek\u00e4sk\u201c s\u00fcnon\u00fc\u00fcmiks, <\/li>\n<li>t\u00f5usis s\u00fcnon\u00fc\u00fcmiks s\u00f5napaarile \u201etegevuse m\u00e4rk\u201c,<\/li>\n<li>ning sai piiramatuks t\u00e4iendavate t\u00e4henduste allikaks. Seega muutus see ingliskeelse artikli \u201euuuh\u2026\u201c sarnaseks. <\/li>\n<\/ol>\n<p>\nVaatleme kaasnevaid tegevusi, v\u00f5i <i>abistamisi,<\/i>.<\/p>\n<h4><i>Muutu haldamine<\/i> <\/h4>\n<p>\n<i>Muutu haldamine<\/i> (MH) \u2014 muutu rakkude loomine\/kustutamine. <br \/>\nMH toimub kaudselt, kui muutu deklareeritakse, mis kirjutatakse juba teise eesm\u00e4rgi jaoks \u2014 m\u00f5\u00f5du n\u00e4itamiseks. Selgelt hallatakse vaid \u00fchte t\u00fc\u00fcpi <i>lisamuutujat,<\/i> kasutades funktsioone malloc() ja free(). <\/p>\n<p>Oluline on m\u00e4rkida, et kaudsed tegevused on mugavamad kirjutamiseks, kuna need ei n\u00f5ua \u00fcldse midagi kirjutamist, kuid neid on keerulisem m\u00f5ista \u2014 neid on raskem arvesse v\u00f5tta ja t\u00f5lgendada. <\/p>\n<h4><i>Allutamine<\/i><\/h4>\n<p>\n<i>Allutamine <\/i> \u2014 kihtide sektsioonide \u00fchendamine\/\u00fchenduse l\u00f5petamine. <\/p>\n<p>C keel pakkus assemblertest erinevat, rakenduslikku tegevuste j\u00e4rjekorra juhtimise viisi \u2014 allutamise. See peegeldab ja arendab v\u00e4lja lauseid, millel on selge jaotus p\u00f5hiosaks (allutav ettepanek) ja alamsalvestuse osaks (alamprogrammid). <\/p>\n<p>Nii deklareerimine kui ka allutamine p\u00f5hinevad t\u00e4ielikult m\u00f5istel <i>kiht<\/i>. <\/p>\n<h3>Kiht<\/h3>\n<p>\n<i>Kiht <\/i> on piiratud \u00fchekihiline valikute komplekt. <\/p>\n<p>Kiht on selgelt ja mitteselgelt v\u00f5tnud endale mitmete \u00fclesannete t\u00e4itmise: <\/p>\n<ol>\n<li>programmi j\u00e4rjestamine,<\/li>\n<li>nimede n\u00e4htavuse piiramine (mitteselgelt),<\/li>\n<li>muutujate (m\u00e4lu lahtrite) haldamine (mitteselgelt),<\/li>\n<li>alusv\u00e4ljade m\u00e4\u00e4ramine allutamiseks,<\/li>\n<li>funktsioonide ja kogumite m\u00e4\u00e4ratlemine ja muud. <\/li>\n<\/ol>\n<p>\nMasinakeeles ei olnud kihtide m\u00f5istet, seega ei ilmunud see ka K\/R-sse, ja kui seal ei olnud midagi, siis oleks selle toomine hiljematesse raamatutesse olnud heretik ja vabaduse m\u00f5te. Seet\u00f5ttu pole kihti \u00fcldse, kuigi see on \u00e4\u00e4rmiselt kasulik ja t\u00e4iesti ilmne. <\/p>\n<p>Kihteta ei saa paljusid programmi toiminguid ja reegleid l\u00fchidalt ja selgelt selgitada. N\u00e4iteks, miks on lihtne nagu kolm senti goto halb ning keeruline while hea. Saame vaid j\u00f5hkralt kiruda, nagu tegi Dijkstra (\u00abprogrammeerijate kvalifikatsioon on funktsioon, mis s\u00f5ltub tagurpidi operatorite goto esinemissagedusest nende programmides\u00bb. L\u00fchidalt \u00f6eldes, ainult ihne ja rumal inimene kasutab goto'd. P\u00f5hjenduse tase on Jumal.) T\u00f5epoolest, see ei ole nii hirmutav, kui teie raamatud ei pea midagi seletama, kuid nagu me juba \u00fctlesime, see ei ole meie saatus. <\/p>\n<p>Muide, v\u00f5ib oletada, et Dennis Ritchie j\u00e4ttis goto justkui v\u00f5tme mingisuguse nimetamata m\u00f5iste leidmiseks, sest goto v\u00e4ljendamisel ei olnud mingit vajadust ega ilu. K\u00fcll aga oli vajadus selge ja arusaadava seletuse j\u00e4rele uute keele printsiipide kohta, mida Ritchie ise anda ei soovinud ning mis p\u00f5hinesid just selles m\u00f5ttes. <i>kiht<\/i>. <\/p>\n<h3>H\u00e4lve<\/h3>\n<p>\n<i>H\u00e4lve <\/i> \u2014 uue nime tavaliste omaduste muutmine. <\/p>\n<p>K\u00f5ige olulisem h\u00e4lve on seotud just programmi kihtide omadustega ja seda kirjeldatakse \u00fche s\u00f5naga \u201estatic\u201c, millel on iga kihi t\u00fc\u00fcbi puhul erinev t\u00e4hendus. <\/p>\n<h2>5. VIIMANE PEAT\u00dcKK. Rakenduskeelte \u00fchisus<\/h2>\n<p>\nRakenduskeeltes on <i>kujuteldavad <\/i>keeled (mis sisaldavad kujutist, \u201et\u00fc\u00fcpitud\u201d). Need p\u00f5hinevad kujutise selges v\u00f5i vaikivas kasutuses. Siin ilmneb j\u00e4lle vastuolu: selge kujutis on arusaadavam, kuid v\u00e4hem mugav, ja vastupidi. <\/p>\n<p><img decoding=\"async\" alt=\"Matrioshka C. Kihtide s\u00fcsteem programmeerimiskeeles\" src=\"\/wp-content\/uploads\/2019\/05\/7d0fd49d678736a023f471b54847be7d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>(Tabeli vormindamine on hetkel puudulik, seega on tabel esitatud pildina.)<\/i><\/p>\n<p>P\u00e4rast C-d on rakenduskeelte areng suundunud nende kujutavuse suurendamise teele. K\u00f5ige olulisem k\u00f5rge kujutavuse m\u00f5istmiseks on C-i otsene j\u00e4reltulija \u2014 keel C++. See arendab ideed operatsioonide vabast valimisest v\u00e4\u00e4rtustele ja kehastab selle si keele v\u00e4ljendi \u201evalik\u201d p\u00f5hjal, mis saab uue nime \u2014 objekt. Siiski ei ole C++ sama l\u00fchike ja v\u00e4ljendusrikas kui C, uute valiku t\u00fc\u00fcpide \u00fclekoormuse ja sellega seotud reeglite t\u00f5ttu. R\u00e4\u00e4gime n\u00fc\u00fcd \u201e\u00fclekoormusest\u201d. <\/p>\n<h3>\u00dclekoormus ja pol\u00fcmorfism <\/h3>\n<p>\nS\u00f5na \u201e\u00fclekoormus\u201d (overload) on vananenud masinap\u00f5hise l\u00e4henemise termin, mis t\u00e4histab mitme <i>operatsiooni loomist<\/i>. <\/p>\n<p>Masinaprofessionaalide <i>mitmekesisus <\/i>operatsioonid v\u00f5ivad t\u00f5eliselt \u00e4rritada: \u00abMida t\u00e4hendab see m\u00e4rk (+): t\u00e4isarvude liitmine, murdarvude liitmine v\u00f5i \u00fcldse nihkumine?! Meie ajal ei kirjutatud nii!\u00bb Seet\u00f5ttu on valitud s\u00f5na negatiivne varjund (\u00ab\u00fclemuslik\u00bb, \u00abk\u00fcll\u00bb). Rakendusprogrammeeri jaoks on mitmeoperatsioonid kivim, keele C peamine saavutus ja p\u00e4rand, nii loomulikud, et tihti tehakse neid alateadlikult. <\/p>\n<p>keeles C++ <i>mitmekesisus<\/i> on laienenud mitte ainult algsest operatsioonidest, vaid ka funktsioonidest - nii eraldi kui klassidesse koondatud - meetoditest. Koos mitme meetodiga tuli v\u00f5imalus neid laiendatud klassides \u00fcle kirjutada, mida on ebaselgelt nimetatud \u00abpol\u00fcmorfismiks\u00bb. Pol\u00fcmorfismi ja \u00fclemineku kombinatsioon andis plahvatusohtliku segu, mis jagunes kaheks pol\u00fcmorfismiks: \u00abt\u00f5eline\u00bb ja \u00abad-hoc\u00bb. Sellega saab selgusele j\u00f5uda ainult vastupidiselt nimetustele. V\u00e4lismaised nimed on sillutanud tee ad. <\/p>\n<p>T\u00fc\u00fcpi \u00ab\u00fcleminek\u00bb on parem v\u00e4ljendada s\u00f5naga <i>\u00fclddeclare <\/i> \u2014 lisades nimega funktsiooni sama nimega, mille argumendid on teistsugusest vormist. <\/p>\n<p>Pol\u00fcmorfismi m\u00f5iste v\u00f5iks nimetada s\u00f5naks <i>\u00fclekirjutamine<\/i> \u2014 uue laiendava kihi sama nimega funktsiooni varjamine, kus on sama t\u00fc\u00fcpi argumendid. <\/p>\n<p>Siis on lihtne m\u00f5ista, et sama nimega meetodid erinevate t\u00fc\u00fcpide (argumentide) puhul \u2014 <i>t\u00e4iendatakse<\/i>, aga \u00fche t\u00fc\u00fcbi puhul \u2014 <i>\u00fclekirjutatakse<\/i>. <\/p>\n<p>Kohalikud s\u00f5nad lahendavad. <\/p>\n<h3>Stardirada<\/h3>\n<p>\nT\u00f5stetud, et k\u00f5rge t\u00fc\u00fcbiga keelte m\u00f5isted kinnitavad p\u00f5hikontseptide selge m\u00e4\u00e4ratlemise t\u00e4htsust. \u00d5igesti kirjeldatud C keelega on k\u00f5rge t\u00fc\u00fcbiga keelte \u00f5ppimine lihtne ja nauditav. <\/p>\n<p>Seda on eriti oluline <i>varjatud k\u00f5rge t\u00fc\u00fcbiga keeltes<\/i> (PHP, JavaScript). Nende puhul muutub objektide (komplekssete t\u00fc\u00fcpide) olulisus veelgi suuremaks kui C++-s, kuid m\u00f5iste t\u00fc\u00fcp muutub varjatud ja keeruliseks. Mugavuse m\u00f5ttes on need muutunud lihtsamaks, kuid arusaamise m\u00f5ttes \u2014 keerulisemaks. <\/p>\n<p>Seet\u00f5ttu peaks programmeerimiskeelte \u00f5ppimise alustama C keelest ja liikuma edasi C perekonna keelte ilmumise j\u00e4rjekorras. <\/p>\n<p>Sama kehtib ka keelte kirjeldamiseks. Erinevatel keeltest on samal v\u00f5i v\u00e4iksemal arvul sugu, kui C-keeles. Liikide ja n\u00e4idiste arv v\u00f5ib erineda m\u00f5lemast suunast: C++-s on liikide arv suurem kui C-s, JavaScriptis aga v\u00e4iksem. <\/p>\n<p>Erilist t\u00e4helepanu v\u00e4\u00e4rib keel MySQL. Tundub, et pole midagi \u00fchist, kuid seda on suurep\u00e4raselt v\u00f5imalik kirjeldada Maatriksiga, mist\u00f5ttu selle tutvumine muutub kiiremaks ja lihtsamaks. See on oluline, arvestades selle t\u00e4htsust veebis \u2014 kaasaegse programmeerimise s\u00f6\u00f6gikoha teed. Kus on MySQL, seal on ka teised SQL-ida. No ja k\u00f5ik Fortranid, Pascalid ja Pythonid on samuti Maatriksiga kirjeldatavad, kui vaid kohale j\u00f5utaan. <\/p>\n<p>Nii et meid ootavad suured teod \u2014 rakenduslikud kirjeldused C keele ja sellele j\u00e4rgnevate keeltest. \"Meie eesm\u00e4rgid on selged, \u00fclesanded m\u00e4\u00e4ratletud. T\u00f6\u00f6le, kaaslased! (K\u00fc\u00fcnlad, pikad ovatsioonid, mis l\u00e4hevad \u00fcksteiseks. K\u00f5ik t\u00f5usevad.)\" <\/p>\n<p>Teie arvamusi kuulatakse suure t\u00e4helepanuga, teie abi maatriksite veebisaidi loomisel v\u00f5etakse vastu suurima t\u00e4nulikkusega. T\u00e4iendavad andmed raamatu kohta on veebisaidil, mis on peidetud Maatriksis C.<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/452328\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0445\u0438\u043c\u0438\u044e \u0431\u0435\u0437 \u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041c\u0435\u043d\u0434\u0435\u043b\u0435\u0435\u0432\u0430 (1869). \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0436\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432 \u0433\u043e\u043b\u043e\u0432\u0435, \u043f\u0440\u0438\u0447\u0451\u043c \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435\u2026 (\u0422\u043e\u0433\u0434\u0430 \u2014 60.) \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u043e\u0431 \u043e\u0434\u043d\u043e\u043c \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u0440\u0430\u0437\u0443 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0422\u0435 \u0436\u0435 \u0447\u0443\u0432\u0441\u0442\u0432\u0430, \u0442\u043e\u0442 \u0436\u0435 \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u043a\u0438\u0439 \u0431\u0435\u0441\u043f\u043e\u0440\u044f\u0434\u043e\u043a. \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u0436\u0438\u0442\u044c \u0447\u0443\u0432\u0441\u0442\u0432\u0430 \u0445\u0438\u043c\u0438\u043a\u043e\u0432 XIX \u0432\u0435\u043a\u0430, \u043a\u043e\u0433\u0434\u0430 \u0438\u043c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u0432\u0441\u0435 \u0438\u0445 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":25550,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-33886","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0445\u0438\u043c\u0438\u044e \u0431\u0435\u0437 \u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041c\u0435\u043d\u0434\u0435\u043b\u0435\u0435\u0432\u0430 (1869). \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0436\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432 \u0433\u043e\u043b\u043e\u0432\u0435, \u043f\u0440\u0438\u0447\u0451\u043c \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435\u2026 (\u0422\u043e\u0433\u0434\u0430 \u2014 60.) \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u043e\u0431 \u043e\u0434\u043d\u043e\u043c \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u0440\u0430\u0437\u0443 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0422\u0435 \u0436\u0435 \u0447\u0443\u0432\u0441\u0442\u0432\u0430, \u0442\u043e\u0442 \u0436\u0435 \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u043a\u0438\u0439 \u0431\u0435\u0441\u043f\u043e\u0440\u044f\u0434\u043e\u043a. \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u0436\u0438\u0442\u044c \u0447\u0443\u0432\u0441\u0442\u0432\u0430 \u0445\u0438\u043c\u0438\u043a\u043e\u0432 XIX \u0432\u0435\u043a\u0430, \u043a\u043e\u0433\u0434\u0430 \u0438\u043c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u0432\u0441\u0435 \u0438\u0445\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/matryoshka-si-slojnaya-sistema-yazyka-programmy\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041c\u0430\u0442\u0440\u0451\u0448\u043a\u0430 \u0421\u0438. \u0421\u043b\u043e\u0439\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0445\u0438\u043c\u0438\u044e \u0431\u0435\u0437 \u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041c\u0435\u043d\u0434\u0435\u043b\u0435\u0435\u0432\u0430 (1869). \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0436\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432 \u0433\u043e\u043b\u043e\u0432\u0435, \u043f\u0440\u0438\u0447\u0451\u043c \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435\u2026 (\u0422\u043e\u0433\u0434\u0430 \u2014 60.) \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u043e\u0431 \u043e\u0434\u043d\u043e\u043c \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u0440\u0430\u0437\u0443 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0422\u0435 \u0436\u0435 \u0447\u0443\u0432\u0441\u0442\u0432\u0430, \u0442\u043e\u0442 \u0436\u0435 \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u043a\u0438\u0439 \u0431\u0435\u0441\u043f\u043e\u0440\u044f\u0434\u043e\u043a. \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u0436\u0438\u0442\u044c \u0447\u0443\u0432\u0441\u0442\u0432\u0430 \u0445\u0438\u043c\u0438\u043a\u043e\u0432 XIX \u0432\u0435\u043a\u0430, \u043a\u043e\u0433\u0434\u0430 \u0438\u043c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u0432\u0441\u0435 \u0438\u0445\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/matryoshka-si-slojnaya-sistema-yazyka-programmy\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:55:15+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:55:15+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Matro\u0161ka C. Programmi keele kihiline s\u00fcsteem | ProHoster","description":"Kuidas oleks esindada keemiat ilma Mendelejevi perioodilise s\u00fcsteemita (1869)? Kui palju elemente tuli meeles pidada, veelgi enam - omavahelises j\u00e4rjekorras\u2026 (Sel ajal - 60.) Selle jaoks piisab, kui m\u00f5elda \u00fchele v\u00f5i mitmele programmeerimiskeelele. Samad tunded, sama loominguline segadus. Ja n\u00fc\u00fcd saame kogeda 19. sajandi keemikute tundeid, kui neile esitati k\u00f5ik nende","canonical_url":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/matryoshka-si-slojnaya-sistema-yazyka-programmy","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041c\u0430\u0442\u0440\u0451\u0448\u043a\u0430 \u0421\u0438. \u0421\u043b\u043e\u0439\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b | ProHoster","og:description":"\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0445\u0438\u043c\u0438\u044e \u0431\u0435\u0437 \u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041c\u0435\u043d\u0434\u0435\u043b\u0435\u0435\u0432\u0430 (1869). \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0436\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432 \u0433\u043e\u043b\u043e\u0432\u0435, \u043f\u0440\u0438\u0447\u0451\u043c \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435\u2026 (\u0422\u043e\u0433\u0434\u0430 \u2014 60.) \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u043e\u0431 \u043e\u0434\u043d\u043e\u043c \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u0440\u0430\u0437\u0443 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0422\u0435 \u0436\u0435 \u0447\u0443\u0432\u0441\u0442\u0432\u0430, \u0442\u043e\u0442 \u0436\u0435 \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u043a\u0438\u0439 \u0431\u0435\u0441\u043f\u043e\u0440\u044f\u0434\u043e\u043a. \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u0436\u0438\u0442\u044c \u0447\u0443\u0432\u0441\u0442\u0432\u0430 \u0445\u0438\u043c\u0438\u043a\u043e\u0432 XIX \u0432\u0435\u043a\u0430, \u043a\u043e\u0433\u0434\u0430 \u0438\u043c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u0432\u0441\u0435 \u0438\u0445","og:url":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/matryoshka-si-slojnaya-sistema-yazyka-programmy","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:55:15+00:00","article:modified_time":"2019-10-31T18:55:15+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"33886","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 17:06:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:31:23","updated":"2026-01-21 17:06:19"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/33886","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=33886"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/33886\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/25550"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=33886"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=33886"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=33886"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}