{"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\/sk\/blog\/news\/matryoshka-si-slojnaya-sistema-yazyka-programmy","title":{"rendered":"\ud83e\udd47\u010co teda bude s autentifik\u00e1ciou a heslami? Druh\u00e1 \u010das\u0165 spr\u00e1vy Javelin \u201eStav pr\u00edsnej autentifik\u00e1cie\u201c | ProHoster","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Predstavme si ch\u00e9miu bez Periodickej tabu\u013eky Mendelejeva (1869). Ko\u013eko prvkov by bolo potrebn\u00e9 ma\u0165 v hlave, a to v \u013eubovo\u013enom porad\u00ed\u2026 (Vtedy \u2013 60.)<\/p>\n<p>Na to sta\u010d\u00ed pomyslie\u0165 na jeden alebo nieko\u013eko programovac\u00edch jazykov naraz. Tie ist\u00e9 pocity, ten ist\u00fd kreat\u00edvny chaos. <\/p>\n<p>A teraz m\u00f4\u017eeme za\u017ei\u0165 pocity chemikov 19. storo\u010dia, ke\u010f im pon\u00fakli v\u0161etky ich vedomosti, a e\u0161te nie\u010do navy\u0161e, v jednej Periodickej tabu\u013eke. <\/p>\n<p><img decoding=\"async\" alt=\"\ud83e\udd47\u010co teda bude s autentifik\u00e1ciou a heslami? Druh\u00e1 \u010das\u0165 spr\u00e1vy Javelin \u201eStav pr\u00edsnej autentifik\u00e1cie\u201c | ProHoster\" 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 \/>\nKniha \u201eMatrioshka C. Vrstven\u00fd syst\u00e9m programovacieho jazyka\u201c predstavuje v\u0161etky jednotky jazyka C ako na dlani. To umo\u017e\u0148uje usporiada\u0165 ich, opravi\u0165 zastaran\u00e9 inform\u00e1cie a dokonca precizova\u0165 samotn\u00fd pojem programu. <\/p>\n<p>Dnes potrebuj\u00fa inform\u00e1cie o programovan\u00ed systematiz\u00e1ciu e\u0161te viac ne\u017e chemick\u00e9 prvky pred 150 rokmi. <\/p>\n<p>Prv\u00e1 potreba \u2014 vyu\u010dovanie. Mendelejev za\u010dal vytv\u00e1ra\u0165 svoj syst\u00e9m, ke\u010f \u010delil ot\u00e1zke \u2014 od ktor\u00e9ho prvku za\u010da\u0165 predn\u00e1\u0161a\u0165: O, H, N, He, Au\u2026 Pri tom to mal jednoduch\u0161ie \u2014 u\u010dil ch\u00e9miu najlep\u0161\u00edch \u2014 \u0161tudentov SPb univerzity. Programovanie sa u\u017e vyu\u010duje v \u0161kole a \u010doskoro za\u010dne aj v matersk\u00fdch \u0161kol\u00e1ch. <\/p>\n<p>Druh\u00e1 potreba \u2014 vedeck\u00fd pr\u00edstup. S pomocou Periodickej tabu\u013eky boli objaven\u00e9 nov\u00e9 prvky a opraven\u00e9 inform\u00e1cie o star\u00fdch. Pomohla pri vytv\u00e1ran\u00ed modelu at\u00f3mu (1911). A tak \u010falej. <\/p>\n<p>Tretia potreba \u2014 precizova\u0165 pojem programu. <\/p>\n<p>Modern\u00e9 programovanie je jednou nohou uviaznut\u00e9 v 50. rokoch 20. storo\u010dia. Vtedy boli programy jednoduch\u00e9 a stroje a strojov\u00e9 jazyky zlo\u017eit\u00e9, preto v\u0161etko to\u010dilo okolo strojov a jazykov. <\/p>\n<p>Teraz je to naopak: programy s\u00fa zlo\u017eit\u00e9 a prim\u00e1rne, jazyky s\u00fa jednoduch\u00e9 a sekund\u00e1rne. Toto sa naz\u00fdva aplikovan\u00fd pr\u00edstup, ktor\u00fd je v\u0161etk\u00fdm akosi zn\u00e1my. Ale \u0161tudentov a v\u00fdvoj\u00e1rov na\u010falej presvied\u010daj\u00fa, \u017ee v\u0161etko je st\u00e1le rovnak\u00e9. <\/p>\n<p>\u010co n\u00e1s vracia k prvej predn\u00e1\u0161ke s\u00fakromn\u00e9ho docenta Mendelejeva. \u010co hovori\u0165 prv\u00e1kovi? Kde je pravda? To je ot\u00e1zka. <\/p>\n<p>Svojou odpove\u010fou na \u0148u pon\u00faka kniha \u201eMatrioshka C. Vrstven\u00fd syst\u00e9m programovacieho jazyka\u201c. A oslovuje nielen \u0161tudentov, ale aj sk\u00fasenej\u0161\u00edch program\u00e1torov, preto\u017ee h\u013eada\u0165 pravdu a meni\u0165 svetov\u00fd n\u00e1zor by mali pr\u00e1ve oni, teda my. <\/p>\n<p>N\u00e1sledne nasleduje stru\u010dn\u00fd preh\u013ead knihy. <\/p>\n<h2>1. \u00davod<\/h2>\n<p>\nV roku 1969 bol vytvoren\u00fd jazyk C, ktor\u00fd sa stal z\u00e1kladn\u00fdm programovac\u00edm jazykom a u\u017e 50 rokov n\u00edm zost\u00e1va. Pre\u010do je to tak? Predov\u0161etk\u00fdm preto, \u017ee C je <i>aplikovan\u00fd<\/i> jazyk, ktor\u00fd dal programu <i>\u013eudsk\u00fd<\/i> v\u00fdzor namiesto <i>strojov\u00e9ho<\/i>. Toto dosiahnutie upevnili jazyky z rodiny C: C++, JavaScript, PHP, Java, C# a \u010fal\u0161ie. Po druh\u00e9, je to stru\u010dn\u00fd a kr\u00e1sny jazyk. <\/p>\n<p>Av\u0161ak samotn\u00fd jazyk C sa zvy\u010dajne zamie\u0148a so strojov\u00fdm assemblerom, \u010d\u00edm sa komplikuje a skres\u013euje jeho vn\u00edmanie. Druhou extr\u00e9mnos\u0165ou je vnucovanie akejsi \"filozofie\" k jazyku: procedur\u00e1lnej, objektovej, funk\u010dnej, kompilovanej, interpretovanej, typizovanej a podobne. To prid\u00e1va em\u00f3cie, ale nepom\u00e1ha lep\u0161ie pop\u00edsa\u0165 jazyk. <\/p>\n<p>Pravda le\u017e\u00ed niekde uprostred, a to pre jazyk C \u2014 presne uprostred medzi filozofick\u00fdm a strojov\u00fdm vn\u00edman\u00edm. <\/p>\n<p>Jazyk C nie je samostatn\u00fd, podlieha be\u017en\u00e9mu p\u00edsomn\u00e9mu jazyku, a z\u00e1rove\u0148 \u2014 s\u00e1m riadi jazyk assembler. Toto postavenie popisuje <i>Re\u010dov\u00fd model programu<\/i>, pod\u013ea ktor\u00e9ho je program rozdelen\u00fd na tri podriaden\u00e9 typy: re\u010dov\u00fd, k\u00f3dov\u00fd, pr\u00edkazov\u00fd. Jazyk C zodpoved\u00e1 za druh\u00fd, k\u00f3dov\u00fd typ. <\/p>\n<p>Definovan\u00edm miesta jazyka v programe m\u00f4\u017eeme usporiada\u0165 inform\u00e1cie o \u0148om, \u010do rob\u00ed <i>Vrstvov\u00fd syst\u00e9m jazyka programu<\/i>, ktor\u00fd predstavuje jazyk C v duchu Mend\u011blejevovej s\u00fastavy \u2014 na jednej str\u00e1nke. <\/p>\n<p>Syst\u00e9m je postaven\u00fd so zoh\u013eadnen\u00edm <i>obecnosti aplikovan\u00fdch jazykov<\/i>, vypl\u00fdvaj\u00facej z ich re\u010dovej podriadenosti. Jedna s\u00faprava jednotiek Matrio\u0161ek C umo\u017e\u0148uje popisova\u0165 a porovn\u00e1va\u0165 r\u00f4zne jazyky, \u010d\u00edm vytv\u00e1ra radu Matrio\u0161ek: C++, PHP, JavaScript, C#, MySQL, Python a tak \u010falej. Je to zasl\u00fa\u017een\u00e9 a spr\u00e1vne, \u017ee r\u00f4zne jazyky sa popisuj\u00fa jednotkami z\u00e1kladn\u00e9ho jazyka. <\/p>\n<h2>2. KAPITOLA 1. Re\u010dov\u00fd model programu. Zrozumite\u013en\u00e9 C<\/h2>\n<p>\nV prvej kapitole je predstaven\u00fd <i>re\u010dov\u00fd model programu<\/i>, ktor\u00fd odr\u00e1\u017ea aplikovan\u00fd pr\u00edstup. Pod\u013ea neho m\u00e1 program tri zjavn\u00e9, postupn\u00e9 typy: <\/p>\n<ol>\n<li>re\u010dov\u00fd \u2014 priama re\u010d program\u00e1tora, ktor\u00fd rie\u0161i \u00falohu, <\/li>\n<li>k\u00f3dov\u00fd \u2014 k\u00f3dovanie rie\u0161enia do matematick\u00e9ho tvaru v jazyku C (alebo akomko\u013evek inom)<\/li>\n<li>a pr\u00edkazov\u00fd \u2014 bezprostredn\u00e9 strojov\u00e9 pr\u00edkazy. <\/li>\n<\/ol>\n<p>\nRe\u010dov\u00fd model vysvet\u013euje, pre\u010do je C jednoduch\u00fd a zrozumite\u013en\u00fd jazyk. C je postaven\u00fd na vzore a podobne na\u0161ej be\u017enej \u013eudskej re\u010di. <\/p>\n<p>Prv\u00fd typ programu je priama re\u010d program\u00e1tora. Re\u010d zodpoved\u00e1 \u013eudsk\u00e9mu mysleniu. Za\u010diato\u010dn\u00ed program\u00e1tori p\u00ed\u0161u programy pomocou re\u010di \u2014 najprv v sloven\u010dine, potom krok za krokom prekladaj\u00fa akcie do k\u00f3dov\u00e9ho jazyka. A pr\u00e1ve pod\u013ea tohto vzoru bol vytvoren\u00fd jazyk C. <\/p>\n<p>Z\u00e1very program\u00e1tora, vyjadren\u00e9 re\u010dou, sa transformuj\u00fa do k\u00f3dov\u00e9ho \u010d\u00edseln\u00e9ho form\u00e1tu. T\u00fato transform\u00e1ciu by sme mali nazva\u0165 <i>odrazom<\/i>, preto\u017ee re\u010d a k\u00f3d maj\u00fa jednu povahu (odraz \u2014 zrodenie \u2014 rod). To je zrejm\u00e9, ak porovn\u00e1me re\u010dov\u00fd (v\u013eavo) a k\u00f3dov\u00fd (vpravo) typ programu. <\/p>\n<p><img decoding=\"async\" alt=\"\ud83e\udd47\u010co teda bude s autentifik\u00e1ciou a heslami? Druh\u00e1 \u010das\u0165 spr\u00e1vy Javelin \u201eStav pr\u00edsnej autentifik\u00e1cie\u201c | ProHoster\" src=\"\/wp-content\/uploads\/2019\/05\/e88d13730660ebac1d661bb2d34a33d5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJe zauj\u00edmav\u00e9, \u017ee odraz prebieha ve\u013emi jednoducho \u2014 len dvoma rodmi v\u00fdrazov. <\/p>\n<p>Av\u0161ak s\u00fa\u010dasn\u00fd popis jazyka C (z roku 1978) neobsahuje dostato\u010dn\u00fd zoznam n\u00e1zvov ani na popis jazyka v\u0161eobecne, ani na \u00falohu odrazu konkr\u00e9tne. Preto sme n\u00faten\u00ed venova\u0165 sa kreativite a zavies\u0165 tieto n\u00e1zvy.<\/p>\n<p>V\u00fdber slov mus\u00ed by\u0165 presn\u00fd a jasn\u00fd. Na to bol potrebn\u00fd osobitn\u00fd pr\u00edstup, stru\u010dne vyjadren\u00fd takto \u2014 pr\u00edsne pou\u017e\u00edvanie rodn\u00e9ho jazyka. Pre angli\u010danov by to bol anglick\u00fd jazyk, ale my nie sme angli\u010dania. Tak\u017ee pou\u017eijeme to, \u010do m\u00e1me, a budeme sa sna\u017ei\u0165 rozpr\u00e1va\u0165 po slovensky. <\/p>\n<p>Odraz vykon\u00e1va dva rody v\u00fdrazov: <\/p>\n<ol>\n<li><i>v\u00fdpo\u010det <\/i>((V\u010d) \u2014 odr\u00e1\u017ea zmenu vlastnost\u00ed predmetu. Vlastnos\u0165 predmetu je vyjadren\u00e1 \u010d\u00edslom, tak\u017ee akcia nad vlastnos\u0165ou \u2014 to je akcia nad \u010d\u00edslom \u2014 oper\u00e1cia. <\/li>\n<li><i>podriadenie <\/i>((P\u010d) \u2014 odr\u00e1\u017ea zmenu poradia akci\u00ed. Predobrazom P\u010d je re\u010dov\u00e9 zlo\u017een\u00e9 podriaden\u00e9 s\u00favetie, preto v\u00e4\u010d\u0161ina typov P\u010d za\u010d\u00edna s podriaden\u00fdmi spojkami \u201eak\u201c, \u201ein\u00e1\u010d\u201c, \u201ek\u00fdm\u201c, \u201epre\u201c. \u010eal\u0161ie typy P\u010d ich dop\u013a\u0148aj\u00fa. <\/li>\n<\/ol>\n<p>\nMimochodom, m\u00f4\u017eete veri\u0165, \u017ee v popise C nie je n\u00e1zov pre v\u00fdrazy v\u00fdpo\u010det \u2014 naz\u00fdvaj\u00fa sa jednoducho \u201ev\u00fdrazy\u201c? Po tom u\u017e neprekvap\u00ed absencia n\u00e1zvu a zjednotenia pre rod podriadenie, a vlastne celkov\u00fd nedostatok n\u00e1zvov, defin\u00edci\u00ed a generaliz\u00e1ci\u00ed. V\u0161etko preto, \u017ee sl\u00e1vny K\/R (\u201eJazyk C\u201c, Kernighan\/Ritchie, 1978) nie je popisom, ale pr\u00edru\u010dkou na pou\u017e\u00edvanie jazyka. <\/p>\n<p>Av\u0161ak ma\u0165 popis jazyka predsa len by bolo \u017eiaduce. Preto ho pon\u00faka <i>Vrstvov\u00fd syst\u00e9m jazyka programu<\/i>. <\/p>\n<h2>3. KAPITOLA 2. Vrstvov\u00e1 s\u00fastava. Stru\u010dn\u00fd C<\/h2>\n<p>\nAk\u00fdko\u013evek popis by mal by\u0165 presn\u00fd a mimoriadne stru\u010dn\u00fd. V pr\u00edpade jazykov\u00e9ho programu je priame popisovanie \u0165a\u017ek\u00e9. <\/p>\n<p>Tu m\u00e1me program. Sklad\u00e1 sa z modulov. Moduly pozost\u00e1vaj\u00fa z podprogramov a zoskupen\u00ed (structure). Podprogramy sa skladaj\u00fa z jednotliv\u00fdch v\u00fdrazov: ozn\u00e1men\u00ed, v\u00fdpo\u010dtov, podriaden\u00ed. Existuje desa\u0165 druhov podriaden\u00ed. Podriadenia prip\u00e1jaj\u00fa podraden\u00e9 \u00farovne a podprogramy. Ozn\u00e1men\u00ed je tie\u017e nieko\u013eko. Ozn\u00e1menia sa zap\u00e1jaj\u00fa nielen do podprogramov a podraden\u00fdch \u00farovn\u00ed, ale aj do modulov a zoskupen\u00ed. A v\u00e4\u010d\u0161ina v\u00fdrazov sa sklad\u00e1 zo slov, ktor\u00e9 je \u0165a\u017ek\u00e9 op\u00edsa\u0165, tak\u017ee sa zvy\u010dajne predkladaj\u00fa len vo dvoch zoznamoch \u2014 p\u00f4vodn\u00fdch a odvoden\u00fdch slov, s ktor\u00fdmi sa treba obozn\u00e1mi\u0165 po\u010das cel\u00e9ho u\u010denia a pou\u017e\u00edvania jazyka. Pridajme k tomu interpunk\u010dn\u00e9 znamienka a e\u0161te nieko\u013eko \u010fal\u0161\u00edch v\u00fdrazov. <\/p>\n<p>V takom opise nie je jednoduch\u00e9 pochopi\u0165, kto na kom st\u00e1l. <\/p>\n<p>Priamy hierarchick\u00fd pr\u00edstup k popisu jazyka by bol nadmerne zlo\u017eit\u00fd. H\u013eadanie obch\u00e1dzok vedie k opisu jazyka na z\u00e1klade jeho re\u010dovej povahy a pr\u00edkazovej str\u00e1nky. Takto vznikol Svrchn\u00fd syst\u00e9m, ktor\u00fd \u010diasto\u010dne s\u00favis\u00ed s Periodickou tabu\u013ekou Mend\u011blejeva, ktor\u00e1 je tie\u017e <i>svrchn\u00e1<\/i>. Ako sa uk\u00e1zalo 42 rokov po jej vydan\u00ed (1869), periodicita syst\u00e9mu s\u00favis\u00ed s elektr\u00f3nov\u00fdmi <i>vrstvami <\/i>(1911, model Bohr-Rutherfordovej at\u00f3movej \u0161trukt\u00fary). Rovnako Svrchn\u00fd a Periodick\u00fd syst\u00e9my sp\u00e1ja tabulkov\u00e9 usporiadanie v\u0161etk\u00fdch jednotiek na jednej str\u00e1nke. <\/p>\n<p>Popis jazykov\u00fdch jednotiek je stru\u010dn\u00fd \u2014 len 10 druhov v\u00fdrazov a 8 druhov in\u00fdch jednotiek, a taktie\u017e je obsahovo bohat\u00fd a preh\u013eadn\u00fd. Aj ke\u010f je to nezvy\u010dajn\u00e9 pre prv\u00e9 zozn\u00e1menie. <\/p>\n<p>Jazykov\u00e9 jednotky s\u00fa rozdelen\u00e9 do 6 \u00farovn\u00ed:<\/p>\n<ol>\n<li>rody \u2014 riadky tabu\u013eky<\/li>\n<li>oddelenia \u2014 \u0161peci\u00e1lne skupiny rodov (\u010dasti prvej l\u00ednie)<\/li>\n<li>druhy \u2014 bunky (hlavn\u00e1 \u00farove\u0148 delenia)<\/li>\n<li>nadrody \u2014 odde\u013eova\u010de druhov (zriedkav\u00e1 \u00farove\u0148)<\/li>\n<li>druhy \u2014 formuly jednotiek na spodnej strane bunky alebo oddelene<\/li>\n<li>vzory \u2014 samotn\u00e9 jednotky (len pre slov\u00e1)<\/li>\n<\/ol>\n<p>\nVzory slov opisuje <i>slovn\u00edk<\/i> \u2014 samostatn\u00fd pod syst\u00e9m zlo\u017een\u00fd z t\u00fdch ist\u00fdch \u0161iestich \u00farovn\u00ed. <\/p>\n<p>Re\u010dov\u00e1 zlo\u017eka jazyka C je dos\u0165 evidentn\u00e1, hoci si aj zasl\u00fa\u017ei popis. Pr\u00edkazov\u00e1 \u010das\u0165 jazyka sa v\u0161ak t\u00fdka riadenia kompil\u00e1cie, po\u010das ktorej sa vytv\u00e1ra tret\u00ed typ programu \u2014 pr\u00edkazov\u00fd. Tu sa dost\u00e1vame k najp\u00f4sobivej\u0161ej str\u00e1nke jazyka C \u2014 kr\u00e1se. <\/p>\n<h2>4. NASLEDUJ\u00daCE KAPITOLY. Kr\u00e1sny C<\/h2>\n<p>\nJazyk C le\u017e\u00ed v z\u00e1klade modern\u00e9ho programovania. Pre\u010do? Po prv\u00e9, kv\u00f4li najvy\u0161\u0161iemu s\u00faladu s re\u010dou. Po druh\u00e9, preto\u017ee elegantne obch\u00e1dza obmedzenia strojov\u00e9ho spracovania \u010d\u00edsel.<\/p>\n<p>\u010co presne pon\u00fakol C? Typ a vrstvu. <\/p>\n<p>Slovo \u201etyp\u201c je prekladom anglick\u00e9ho slova \u201etype\u201c, ktor\u00e9 poch\u00e1dza z gr\u00e9ckeho \u201eprototypo\u201c \u2014 \u201epredobraz\u201c. V sloven\u010dine slovo \u201etyp\u201c nevyjadruje z\u00e1kladnos\u0165 vyjadren\u00e9ho pojmu a navy\u0161e sa zamie\u0148a so slu\u017eobn\u00fdm v\u00fdznamom \u201edruh\u201c. <\/p>\n<p>Na za\u010diatku typ rie\u0161il \u010disto strojov\u00fa \u00falohu v\u00fdpo\u010dtu, ale nesk\u00f4r sa stal odrazov\u00fdm most\u00edkom pre vznik objektov\u00fdch jazykov. <\/p>\n<p>Vrstva rie\u0161ila viacero \u00faloh s\u00fa\u010dasne \u2014 ako strojov\u00fdch, tak aplika\u010dn\u00fdch. Preto sa \u00favod za\u010dne s jednou\u00falohov\u00fdm typom a prejde k viac\u00falohov\u00e9mu vrstve. <\/p>\n<p>Jedna z nepr\u00edjemn\u00fdch \u010d\u0155t historick\u00e9ho programovania spo\u010d\u00edva v tom, \u017ee v\u00e4\u010d\u0161ina pojmov, vr\u00e1tane hlavn\u00fdch, je poskytovan\u00e1 bez defin\u00edci\u00ed. \u201eProgramovac\u00ed jazyk (meno riek) m\u00e1 cel\u00e9 a desatinn\u00e9 \u010d\u00edsla\u2026\u201c \u2014 a ideme \u010falej. \u010co je \u201etyp\u201c (typ) \u2014 definova\u0165 nie je potrebn\u00e9, preto\u017ee autori to sami dokonale nech\u00e1pu a zakryj\u00fa to \u201epre jasnos\u0165\u201c. Ak ich zatla\u010dia do k\u00fata, poskytn\u00fa nejasn\u00fa a nepou\u017eite\u013en\u00fa defin\u00edciu. Ve\u013emi pom\u00e1ha schova\u0165 sa za zahrani\u010dn\u00fdmi slovami: pre slovensk\u00fdch autorov \u2014 za anglick\u00fdmi (typ), pre Angli\u010danov \u2014 za franc\u00fazskymi (subroutine), gr\u00e9cky (polymorfizmus), latinsk\u00fd (inkapsul\u00e1cia) alebo ich kombin\u00e1ciami (polymorfizmus ad-hoc). <\/p>\n<p>Ale to nie je n\u00e1\u0161 osud. Na\u0161a vo\u013eba \u2014 defin\u00edcie s vylo\u017een\u00fdm \u0161t\u00edtom v \u010distej sloven\u010dine. <\/p>\n<h3>Obraz<\/h3>\n<p>\n<i>Obraz<\/i> \u2014 to je predobrazuj\u00face meno veli\u010diny, ur\u010duj\u00face 1) vlastn\u00e9 vlastnosti veli\u010diny a 2) v\u00fdber oper\u00e1ci\u00ed k veli\u010dine. <\/p>\n<p>Slovu \u201etyp\u201c (druh) zodpoved\u00e1 prv\u00e1 \u010das\u0165 defin\u00edcie: \u201evlastn\u00e9 vlastnosti veli\u010diny\u201c. Ale hlavn\u00fd zmysel typu spo\u010d\u00edva v druhej \u010dasti: \u201ev\u00fdber oper\u00e1ci\u00ed k veli\u010din\u00e1m\u201c.<\/p>\n<p>V\u00fdchodiskov\u00fd bod na zavedenie typu v jazyku C \u2014 be\u017en\u00e9 v\u00fdpo\u010dty, napr\u00edklad oper\u00e1cia s\u010d\u00edtania. <\/p>\n<p><i>Papierov\u00e1<\/i> matematika, zaznamenan\u00e1 ru\u010dne alebo tla\u010den\u00e1, nerob\u00ed \u017eiadne zvl\u00e1\u0161tne rozl\u00ed\u0161enie medzi druhmi \u010d\u00edsel, zvy\u010dajne ich pova\u017euj\u00fac za re\u00e1lne. Preto s\u00fa oper\u00e1cie ich spracovania jednozna\u010dn\u00e9.<\/p>\n<p><i>Strojov\u00e1<\/i> Matematika pr\u00edsne del\u00ed \u010d\u00edsla na cel\u00e9 a zlomkov\u00e9. R\u00f4zne typy \u010d\u00edsel s\u00fa v pam\u00e4ti uchov\u00e1van\u00e9 a spracov\u00e1van\u00e9 r\u00f4znymi pr\u00edkazmi procesora. Napr\u00edklad pr\u00edkazy s\u010d\u00edtania cel\u00fdch a zlomkov\u00fdch \u010d\u00edsel s\u00fa dve r\u00f4zne pr\u00edkazy, ktor\u00e9 zodpovedaj\u00fa dvom r\u00f4znym uzlom procesora. Naopak, pr\u00edkaz na s\u010d\u00edtanie cel\u00e9ho a zlomkov\u00e9ho argumentu ch\u00fdba. <\/p>\n<p><i>Aplikovan\u00e1<\/i> matematika, teda jazyk C, rozde\u013euje typy \u010d\u00edsel, ale sp\u00e1ja oper\u00e1cie: s\u010d\u00edtanie pre cel\u00e9 a\/alebo zlomkov\u00e9 \u010d\u00edsla sa zapisuje jedn\u00fdm symbolom oper\u00e1cie.<\/p>\n<p>Jasn\u00e9 definovanie pojmu obraz umo\u017e\u0148uje jednozna\u010dne hovori\u0165 o dvoch \u010fal\u0161\u00edch pojmoch: <i>ve\u013ekos\u0165 <\/i>a <i>oper\u00e1cia<\/i>. <\/p>\n<h3>Ve\u013ekos\u0165 a oper\u00e1cia<\/h3>\n<p>\n<i>Ve\u013ekos\u0165 <\/i> \u2014 spracov\u00e1van\u00e9 \u010d\u00edslo.<\/p>\n<p><i>Oper\u00e1cia<\/i> \u2014 spracovanie hodn\u00f4t p\u00f4vodn\u00fdch ve\u013ekost\u00ed (argumentov) za \u00fa\u010delom z\u00edskania v\u00fdsledn\u00e9ho \u010d\u00edsla (v\u00fdsledku). <\/p>\n<p>Ve\u013ekos\u0165 a oper\u00e1cia s\u00fa vz\u00e1jomne prepojen\u00e9. Ka\u017ed\u00e1 oper\u00e1cia je ve\u013ekos\u0165ou, preto\u017ee m\u00e1 \u010d\u00edseln\u00fd v\u00fdsledok. A ka\u017ed\u00e1 ve\u013ekos\u0165 je v\u00fdsledkom prenosu hodnoty do registru procesora\/zo procesora, teda \u2014 v\u00fdsledkom oper\u00e1cie. Napriek tejto vz\u00e1jomnej s\u00favislosti je predsa hlavn\u00e9, aby ich bolo mo\u017en\u00e9 opisova\u0165 oddelene, aj ke\u010f s opakovan\u00edm jedn\u00e9ho slova v r\u00f4znych oddieloch slovn\u00edka, \u010do sa aj deje v ma3. <\/p>\n<p>Strojov\u00fd pr\u00edstup delil v\u0161etky \u010d\u00edsla, ktor\u00e9 program\u00e1tor pou\u017e\u00edval, na <i>pr\u00edkazy <\/i>a <i>\u00fadaje<\/i>. Predt\u00fdm boli oboje \u010d\u00edsla, napr\u00edklad pr\u00edkazy sa p\u00edsali \u010d\u00edseln\u00fdmi k\u00f3dmi. Av\u0161ak v aplika\u010dn\u00fdch jazykoch sa pr\u00edkazy prestali naz\u00fdva\u0165 \u010d\u00edslami a stali sa <i>slovami <\/i>a <i>symbolmi oper\u00e1ci\u00ed<\/i>. \u010c\u00edslami zostali iba \u201e\u00fadaje\u201c, ale pokra\u010dova\u0165 v naz\u00fdvan\u00ed ich tak je absurdn\u00e9, preto\u017ee pri prechode od strojov\u00e9ho k matematick\u00e9mu poh\u013eadu s\u00fa \u010d\u00edsla ve\u013ekosti, ktor\u00e9 sa delia na p\u00f4vodn\u00e9 (<i>\u00fadaje<\/i>) a v\u00fdsledn\u00e9 (<i>h\u013eadan\u00e9<\/i>). \u201eNezn\u00e1me \u00fadaje\u201c \u2014 to by znelo hl\u00fapo. <\/p>\n<p>Pr\u00edkazy sa tie\u017e rozdelili na dva typy oper\u00e1ci\u00ed: matematick\u00e9 a pomocn\u00e9. Matematick\u00e9 oper\u00e1cie s\u00fa oper\u00e1cie. K pomocn\u00fdm sa obr\u00e1time nesk\u00f4r. <\/p>\n<p>V jazyku C sa be\u017en\u00e9 papierov\u00e9 a strojov\u00e9 jednozna\u010dn\u00e9 alebo jedin\u010dn\u00e9 matematick\u00e9 oper\u00e1cie takmer \u00faplne st\u00e1vaj\u00fa viacn\u00e1sobn\u00fdmi. <\/p>\n<p>Viacn\u00e1sobn\u00e9 oper\u00e1cie \u2013 nieko\u013eko rovnomenn\u00fdch oper\u00e1ci\u00ed s r\u00f4znymi obrazmi argumentov a r\u00f4znymi, v\u00fdznamovo bl\u00edzkymi, oper\u00e1ciami. <\/p>\n<p>Cel\u00fdm argumentom zodpoved\u00e1 cel\u00e1 oper\u00e1cia, zlomkov\u00fdm \u2014 zlomkov\u00e1. Tento rozdiel je obzvl\u00e1\u0161\u0165 vidite\u013en\u00fd pri oper\u00e1cii delenia, ke\u010f v\u00fdraz 1\/2 d\u00e1va v\u00fdsledok 0, a nie 0,5. Tak\u00e1to z\u00e1pis nie je v s\u00falade s pravidlami papierovej matematiky, ale jazyk C sa ich nesna\u017e\u00ed dodr\u017eiava\u0165 (na rozdiel od Fortranu) \u2014 hr\u00e1 pod\u013ea svojich <i>aplikovate\u013en\u00fdch<\/i> pravidiel.<\/p>\n<p>V pr\u00edpade zmie\u0161ania cel\u00fdch a zlomkov\u00fdch \u010d\u00edsel sa zap\u00edna jedin\u00e1 spr\u00e1vna <i>\u00faprava hodn\u00f4t argumentov<\/i> \u2014 v\u00fdberov\u00e9 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 hodnoty z jedn\u00e9ho obrazu do druh\u00e9ho. Skuto\u010dne, pri s\u010d\u00edtan\u00ed cel\u00e9ho a zlomkov\u00e9ho \u010d\u00edsla v\u00fdsledok \u2014 zlomkov\u00fd, preto obraz oper\u00e1cie <i>vyber\u00e1 <\/i>oper\u00e1ciu transform\u00e1cie cel\u00e9ho argumentu na zlomkov\u00fa hodnotu. <\/p>\n<p>Rada oper\u00e1ci\u00ed zost\u00e1va nie <i>mno\u017en\u00e9<\/i>, a <i>jednotn\u00e9<\/i>. Tak\u00e9to oper\u00e1cie s\u00fa definovan\u00e9 iba pre jeden typ argumentov: zvy\u0161ok delenia \u2014 cel\u00e9 argumenty, ukladanie (bitov\u00e9 oper\u00e1cie) \u2014 prirodzen\u00e9 cel\u00e9. Ma3 ozna\u010duje mno\u017enos\u0165 oper\u00e1ci\u00ed znakmi (#^) s uveden\u00edm obrazov, pre ktor\u00e9 je oper\u00e1cia definovan\u00e1. To je d\u00f4le\u017eit\u00e1, ale predt\u00fdm prehliadan\u00e1 vlastnos\u0165 ka\u017edej oper\u00e1cie. <\/p>\n<p>V\u0161etky funkcie s\u00fa \u013eubovo\u013en\u00e9 jednotn\u00e9 oper\u00e1cie. V\u00fdnimku tvoria oper\u00e1tory \u2014 <i>bez\u0161pecifick\u00e9 funkcie<\/i>, zabudovan\u00e9 do jazyka (z\u00e1kladn\u00e9 oper\u00e1cie). <\/p>\n<h3>Podpora<\/h3>\n<p>\n<i>Podpora <\/i> \u2014 sprievodn\u00e1 \u010dinnos\u0165 oper\u00e1cie.<\/p>\n<p>Ak sa oper\u00e1cia pova\u017euje za hlavn\u00fa \u010dinnos\u0165, je mo\u017en\u00e9 vy\u010dleni\u0165 dve sprievodn\u00e9, ktor\u00e9 zabezpe\u010duj\u00fa oper\u00e1ciu a l\u00ed\u0161ia sa od nej. To s\u00fa 1) spr\u00e1va premennej a 2) podriadenie. Tak\u00e1to \u010dinnos\u0165 sa naz\u00fdva <i>podporou<\/i>.<\/p>\n<p>Tu je treba sa odvr\u00e1ti\u0165 a osobitne poveda\u0165 o rusk\u00fdch prekladoch u\u010debn\u00edc programovania. V texte K\/R pre z\u00e1pis \u010dinnost\u00ed bolo zaveden\u00e9 nov\u00e9 slovo <i>statement <\/i>(v\u00fdraz), ktor\u00e9 sa pok\u00fasilo rozdeli\u0165 pojmy strojov\u00e9ho pr\u00edkazu do r\u00f4znych \u010dinnost\u00ed: 1) oper\u00e1cia, 2) vyhl\u00e1senie a 3) podriadenie (nazvan\u00e9 \u201eovl\u00e1dacie kon\u0161trukcie\u201c). T\u00fato snahu zni\u010dili rusk\u00ed prekladatelia, ktor\u00ed nahradili \u201ev\u00fdraz\u201c slovom \u201eoper\u00e1tor\u201c, ktor\u00e9:<\/p>\n<ol>\n<li>sa stalo synonymom strojov\u00e9ho slova \u201epr\u00edkaz\u201c, <\/li>\n<li>uk\u00e1zalo sa by\u0165 synonymom spojenia \u201eznak \u010dinnosti\u201c,<\/li>\n<li>a taktie\u017e z\u00edskalo neobmedzen\u00e9 mno\u017estvo dodato\u010dn\u00fdch v\u00fdznamov. To znamen\u00e1, \u017ee sa stalo podobou anglick\u00e9ho \u010dl\u00e1nku \u201ee-e-e\u2026\u201c. <\/li>\n<\/ol>\n<p>\nPozrime sa na sprievodn\u00e9 \u010dinnosti, alebo <i>podporu<\/i>.<\/p>\n<h4><i>Spr\u00e1va premennej<\/i> <\/h4>\n<p>\n<i>Spr\u00e1va premennej<\/i> (UP) \u2014 vytvorenie\/odstr\u00e1nenie buniek premennej. <br \/>\nUP sa deje implicitne pri vyhl\u00e1sen\u00ed premennej, ktor\u00e9 u\u017e je nap\u00edsan\u00e9 z in\u00e9ho d\u00f4vodu \u2014 na ur\u010denie rozsahu hodnoty. Explicitne sa riadi iba jeden typ <i>pr\u00eddavn\u00fdch premenn\u00fdch<\/i> pomocou funkci\u00ed malloc() a free(). <\/p>\n<p>Treba poznamena\u0165, \u017ee implicitn\u00e9 akcie s\u00fa pohodlnej\u0161ie na p\u00edsanie, preto\u017ee nevy\u017eaduj\u00fa ni\u010d p\u00edsa\u0165, ale \u0165a\u017e\u0161ie na pochopenie \u2014 je \u0165a\u017e\u0161ie ich zoh\u013eadni\u0165 a interpretova\u0165. <\/p>\n<h4><i>Podriadenie<\/i><\/h4>\n<p>\n<i>Podriadenie <\/i> \u2014 pripojenie\/odpojenie vrstven\u00fdch sekci\u00ed. <\/p>\n<p>Jazyk C navrhol odli\u0161n\u00fd od assemblera, praktick\u00fd sp\u00f4sob riadenia poradia \u010dinnost\u00ed \u2014 podriadenie. Odr\u00e1\u017ea a rozv\u00edja zlo\u017een\u00e9 podriaden\u00e9 vety s jasn\u00fdm oddelen\u00edm na hlavn\u00fa \u010das\u0165 (podriaden\u00e1 veta) a ved\u013eaj\u0161iu \u010das\u0165 (sekcie pod\u00farovne\/podprogram). <\/p>\n<p>Vyhl\u00e1senie a podriadenie s\u00fa \u00faplne vybudovan\u00e9 na pojme <i>vrstva<\/i>. <\/p>\n<h3>Vrstva<\/h3>\n<p>\n<i>Vrstva <\/i> \u2014 to je obmedzen\u00fd jednovrstvov\u00fd v\u00fdber v\u00fdrazov. <\/p>\n<p>Vrstva na seba vzala jasne a nejasne vykon\u00e1vanie hne\u010f nieko\u013ek\u00fdch \u00faloh: <\/p>\n<ol>\n<li>usporiadanie programu,<\/li>\n<li>obmedzenie vidite\u013enosti mien (nejasne),<\/li>\n<li>riadenie premenn\u00fdch (buniek pam\u00e4te) (nejasne),<\/li>\n<li>ur\u010dovanie ved\u013eaj\u0161\u00edch sekci\u00ed na podriadenie,<\/li>\n<li>definovanie funkci\u00ed a v\u00fdberov a in\u00e9. <\/li>\n<\/ol>\n<p>\nV strojov\u00fdch jazykoch neexistoval pojem vrstva, preto sa neobjavil ani v K\/R, a ak tam nie\u010do nebolo \u2014 zav\u00e1dza\u0165 to v nasleduj\u00facich knih\u00e1ch by bolo nezmyslom a rozvratn\u00fdm myslen\u00edm. Preto pojem vrstva sa v\u00f4bec neobjavil, hoci je to ve\u013emi u\u017eito\u010dn\u00e9 a celkom zjavn\u00e9. <\/p>\n<p>Bez vrstvy nie je mo\u017en\u00e9 stru\u010dne a jasne vysvetli\u0165 mnoh\u00e9 akcie a pravidl\u00e1 programu. Napr\u00edklad, pre\u010do je jednoduch\u00e9 ako tri halieriky goto \u2014 zl\u00e9, a zlo\u017eit\u00fd while \u2014 dobr\u00fd. M\u00f4\u017eete sa len bezmocne s\u0165a\u017eova\u0165, ako robil Dijkstra (\u201ekvalifik\u00e1cia program\u00e1torov \u2014 funkcia, sp\u00e4tne z\u00e1visl\u00e1 od frekvencie v\u00fdskytu pr\u00edkazov goto v ich programoch\u201c. Skr\u00e1tka, len kozy pou\u017e\u00edvaj\u00fa goto. \u00darove\u0148 od\u00f4vodnenia \u2014 Boh.) Pravda, nie je to tak\u00e9 hrozn\u00e9, ak va\u0161e knihy v\u00f4bec nemusia ni\u010d vysvet\u013eova\u0165, ale, ako sme u\u017e povedali, to nie je n\u00e1\u0161 osud. <\/p>\n<p>Mimochodom, m\u00f4\u017eeme predpoklada\u0165, \u017ee Den Ritchie ponechal goto ako k\u013e\u00fa\u010d na h\u013eadanie ist\u00e9ho nenazvan\u00e9ho pojmu, preto\u017ee neexistovala \u017eiadna potreba ani kr\u00e1sa v pou\u017eit\u00ed goto. Naopak, bolo potrebn\u00e9 jednoduch\u00e9 a zrozumite\u013en\u00e9 vysvetlenie nov\u00fdch princ\u00edpov jazyka, ktor\u00e9 s\u00e1m Ritchie nepl\u00e1noval poskytn\u00fa\u0165 a ktor\u00e9 s\u00fa zalo\u017een\u00e9 na pojme. <i>vrstva<\/i>. <\/p>\n<h3>Odch\u00fdlka<\/h3>\n<p>\n<i>Odch\u00fdlka <\/i> \u2014 zmena be\u017en\u00fdch vlastnost\u00ed nov\u00e9ho n\u00e1zvu. <\/p>\n<p>Najd\u00f4le\u017eitej\u0161ia odch\u00fdlka s\u00favis\u00ed so vrstvov\u00fdmi vlastnos\u0165ami programu a popisuje sa jedn\u00fdm slovom \u201estatic\u201c, ktor\u00e9 m\u00e1 r\u00f4zne v\u00fdznamy v ka\u017edom z typov vrstvy. <\/p>\n<h2>5. POSLEDN\u00c1 KAPITOLA. Spolo\u010dnos\u0165 aplika\u010dn\u00fdch jazykov<\/h2>\n<p>\nAplika\u010dn\u00e9 jazyky \u2014 to s\u00fa <i>obrazov\u00e9 <\/i>jazyky (maj\u00face obraz, \u201etypizovan\u00e9\u201c). S\u00fa zalo\u017een\u00e9 na explicitnom alebo implicitnom pou\u017e\u00edvan\u00ed obrazu. A tu sa op\u00e4\u0165 prejavuje rozpor: explicitn\u00fd obraz je zrozumite\u013enej\u0161\u00ed, ale menej pohodln\u00fd, a naopak. <\/p>\n<p><img decoding=\"async\" alt=\"\ud83e\udd47\u010co teda bude s autentifik\u00e1ciou a heslami? Druh\u00e1 \u010das\u0165 spr\u00e1vy Javelin \u201eStav pr\u00edsnej autentifik\u00e1cie\u201c | ProHoster\" src=\"\/wp-content\/uploads\/2019\/05\/7d0fd49d678736a023f471b54847be7d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>(Ozna\u010denie tabu\u013eky zatia\u013e nebolo dodan\u00e9, tak\u017ee tabu\u013eka je zobrazen\u00e1 ako obr\u00e1zok.)<\/i><\/p>\n<p>Po C sa rozvoj aplika\u010dn\u00fdch jazykov ub\u00edral cestou zvy\u0161ovania ich obraznosti. Najd\u00f4le\u017eitej\u0161\u00edm pre pochopenie vysokej obraznosti je priamy potomok C \u2014 jazyk C++. Rozv\u00edja my\u0161lienku vo\u013enej vo\u013eby oper\u00e1ci\u00ed k hodnot\u00e1m a konkretizuje ju na z\u00e1klade si-ovsk\u00e9ho v\u00fdrazu vo\u013eby, ktor\u00fd dost\u00e1va nov\u00fd n\u00e1zov \u2014 objekt. Av\u0161ak C++ nie je tak\u00fd stru\u010dn\u00fd a v\u00fdsti\u017en\u00fd ako C, kv\u00f4li pre\u0165a\u017eeniu nov\u00fdch druhov vo\u013eby a s nimi spojen\u00fdmi pravidlami. Mimochodom, porozpr\u00e1vajme o \u201epre\u0165a\u017een\u00ed\u201c. <\/p>\n<h3>Pre\u0165a\u017eenie a polymorfizmus <\/h3>\n<p>\nSlovo \u201epre\u0165a\u017eenie\u201c (overload) \u2014 zastaran\u00fd term\u00edn strojov\u00e9ho pr\u00edstupu, ozna\u010duj\u00faci vytv\u00e1ranie <i>viacn\u00e1sobn\u00fdch oper\u00e1ci\u00ed<\/i>. <\/p>\n<p>Strojov\u00fdch (syst\u00e9mov\u00fdch) program\u00e1torov <i>viacn\u00e1sobnos\u0165 <\/i>oper\u00e1ci\u00ed mohla celkom dr\u00e1\u017edi\u0165: \u201e\u010co znamen\u00e1 tento znak (+): s\u010d\u00edtanie cel\u00fdch \u010d\u00edsel, s\u010d\u00edtanie zlomkov\u00fdch \u010d\u00edsel alebo v\u00f4bec posun?! V na\u0161ich \u010dasoch sa takto nep\u00edsalo!\u201c Odtia\u013e poch\u00e1dza negat\u00edvny podt\u00f3n zvolen\u00e9ho slova (\u201epreberanie\u201c, \u201eu\u017e ma to nebav\u00ed\u201c). Pre aplika\u010dn\u00e9ho program\u00e1tora s\u00fa viacn\u00e1sobn\u00e9 oper\u00e1cie z\u00e1kladn\u00fdm kame\u0148om, hlavn\u00fdm dosiahnut\u00edm a dedi\u010dstvom jazyka C, nato\u013eko prirodzen\u00e9, \u017ee ich \u010dasto ani nevn\u00edma. <\/p>\n<p>V jazyku C++ <i>viacn\u00e1sobnos\u0165<\/i> roz\u0161\u00edrila sa nielen na z\u00e1kladn\u00e9 oper\u00e1cie, ale aj na funkcie \u2014 ako samostatn\u00e9, tak aj kombinovan\u00e9 do tried \u2014 met\u00f3dy. Spolu s mnoh\u00fdmi met\u00f3dami sa objavila mo\u017enos\u0165 ich predefinovania v roz\u0161\u00edren\u00fdch triedach, ktor\u00e1 bola nejasne ozna\u010den\u00e1 ako \u201epolymorfizmus\u201c. Kombin\u00e1cia polymorfizmu a pre\u0165a\u017eenia vytvorila exploz\u00edvnu zmes, ktor\u00e1 sa rozdelila na dva polymorfizmy: \u201eprav\u00fd\u201c a \u201ead-hoc\u201c. Pochopi\u0165 toto je mo\u017en\u00e9 iba v rozpore s priraden\u00fdmi n\u00e1zvami. Cudzojazy\u010dn\u00e9 n\u00e1zvy vytvorili cestu k ad. <\/p>\n<p>Ozn\u00e1menie typu \u201epre\u0165a\u017eenie\u201c sa lep\u0161ie vyjadr\u00ed slovom <i>dopravy <\/i> \u2014 prid\u00e1va ozn\u00e1menie s rovnak\u00fdm n\u00e1zvom funkcie s argumentami in\u00e9ho typu. <\/p>\n<p>Ozn\u00e1menie typu \u201epolymorfizmus\u201c sa lep\u0161ie naz\u00fdva slovom <i>predefinovanie<\/i> \u2014 prekrytie ozn\u00e1menia v novom roz\u0161iruj\u00facom vrstv\u00e1ch rovnomennej funkcie s argumentami toho ist\u00e9ho typu. <\/p>\n<p>Vtedy bude jednoduch\u00e9 pochopi\u0165, \u017ee rovnomenn\u00e9 met\u00f3dy r\u00f4znych typov (argumentov) \u2014 <i>dopravy<\/i>, a jedn\u00e9ho typu \u2014 <i>predefinuj\u00fa<\/i>. <\/p>\n<p>Rusk\u00e9 slov\u00e1 rozhoduj\u00fa. <\/p>\n<h3>Prist\u00e1vacia dr\u00e1ha<\/h3>\n<p>\nZv\u00e1\u017eenie pojmov vysoko-typovan\u00fdch jazykov potvrdzuje d\u00f4le\u017eitos\u0165 jasn\u00e9ho ur\u010denia z\u00e1kladn\u00fdch pojmov. S spr\u00e1vne op\u00edsan\u00fdm jazykom C bude \u0161t\u00fadium vysoko-typovan\u00fdch jazykov jednoduch\u00e9 a pr\u00edjemn\u00e9. <\/p>\n<p>Najm\u00e4 to je d\u00f4le\u017eit\u00e9 pre <i>implicitn\u00e9 vysoko-typovan\u00e9 jazyky<\/i> (PHP, JavaScript). Pre nich d\u00f4le\u017eitos\u0165 objektov (zlo\u017een\u00fdch typov) rastie e\u0161te viac ako v C++, ale samotn\u00fd pojem typu sa st\u00e1va implicitn\u00fdm a \u0165a\u017eko uchopite\u013en\u00fdm. Z poh\u013eadu pohodlia sa stali jednoduch\u0161\u00edmi, ale z poh\u013eadu porozumenia \u2014 zlo\u017eit\u00fdmi. <\/p>\n<p>Preto by sa mal \u0161tudijn\u00fd proces za\u010da\u0165 jazykom C a postupova\u0165 \u010falej v porad\u00ed vzniku jazykov rodiny C. <\/p>\n<p>To ist\u00e9 plat\u00ed aj pre opis jazykov. R\u00f4zne jazyky maj\u00fa zhoduj\u00faci sa, alebo men\u0161\u00ed s\u00fabor rodov jednotiek ako jazyk C. Po\u010det typov a vzorov sa m\u00f4\u017ee l\u00ed\u0161i\u0165 v oboch smeroch: C++ m\u00e1 viac typov ako C, JavaScript \u2014 menej. <\/p>\n<p>Osobitn\u00fa zmienku si zasl\u00fa\u017ei jazyk MySQL. Zdalo by sa \u2014 ni\u010d spolo\u010dn\u00e9, ale je skvele pop\u00edsate\u013en\u00fd Matryoshkou, a obozn\u00e1menie s n\u00edm sa st\u00e1va r\u00fdchlej\u0161\u00edm a jednoduch\u0161\u00edm. \u010co je d\u00f4le\u017eit\u00e9, vzh\u013eadom na jeho v\u00fdznam pre web \u2014 hlavn\u00fa cestu modern\u00e9ho programovania. A kde je MySQL, tam s\u00fa aj in\u00e9 SQL. Ako aj r\u00f4zne Fortrany-Paskaly-Python sa tie\u017e daj\u00fa op\u00edsa\u0165 Matryoshkou, akon\u00e1hle sa k tomu dostan\u00fa ruky. <\/p>\n<p>\u010cak n\u00e1s \u010dakaj\u00fa ve\u013ek\u00e9 veci \u2013 aplikovan\u00fd popis jazyka C a jednotn\u00fd popis nasleduj\u00facich jazykov. \u201eNa\u0161e ciele s\u00fa jasn\u00e9, \u00falohy s\u00fa ur\u010den\u00e9. Do pr\u00e1ce, druhovia! (Bur\u00e1caj\u00face, dlh\u00e9 potlesky, ktor\u00e9 prech\u00e1dzaj\u00fa do ov\u00e1cie. V\u0161etci vst\u00e1vaj\u00fa.)\u201c <\/p>\n<p>Va\u0161e n\u00e1zory bud\u00fa vypo\u010dut\u00e9 s ve\u013ekou pozornos\u0165ou, va\u0161a pomoc pri tvorbe str\u00e1nky matru\u0161iek bude prijat\u00e1 s ve\u013ekou v\u010fakou. Podrobnej\u0161ie inform\u00e1cie o knihe n\u00e1jdete na str\u00e1nke, majstrovsky skrytej v Matru\u0161ke C.<br \/>\n<br \/>Zdroj: <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-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - 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).\" \/>\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\/sk\/blog\/news\/matryoshka-si-slojnaya-sistema-yazyka-programmy\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\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).\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/news\/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\udd47Matru\u0161ka C. Vrstven\u00fd syst\u00e9m programovacieho jazyka | ProHoster","description":"Sk\u00fasme predstavi\u0165 ch\u00e9miu bez Periodickej tabu\u013eky Mendeljeva (1869).","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/news\/matryoshka-si-slojnaya-sistema-yazyka-programmy","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","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).","og:url":"https:\/\/prohoster.info\/sk\/blog\/news\/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","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/33886","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=33886"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/33886\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/25550"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=33886"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=33886"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=33886"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}