{"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\/sv\/blog\/news\/matryoshka-si-slojnaya-sistema-yazyka-programmy","title":{"rendered":"Matryoshka C. Lagindelat systemspr\u00e5k","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>L\u00e5t oss f\u00f6rs\u00f6ka f\u00f6rest\u00e4lla oss kemi utan Mendelejevs periodiska system (1869). Hur m\u00e5nga element skulle man beh\u00f6va ha i huvudet, dessutom i godtycklig ordning... (D\u00e5 - 60.)<\/p>\n<p>F\u00f6r detta r\u00e4cker det att t\u00e4nka p\u00e5 ett eller flera programmeringsspr\u00e5k \u00e5t g\u00e5ngen. Samma k\u00e4nslor, samma kreativa kaos. <\/p>\n<p>Nu kan vi uppleva kemisternas k\u00e4nslor fr\u00e5n 1800-talet, n\u00e4r de fick all sin kunskap, och lite till, i ett och samma periodiska system. <\/p>\n<p><img decoding=\"async\" alt=\"Matryoshka C. Lagindelat systemspr\u00e5k\" 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 \/>\nBoken \"Matryoshka C. Det lagerbaserade systemet f\u00f6r programmeringsspr\u00e5k\" presenterar alla enheter av spr\u00e5ket C som p\u00e5 en handflata. Det g\u00f6r det m\u00f6jligt att ordna dem, \u00e5tg\u00e4rda f\u00f6r\u00e5ldrad information och till och med precisera sj\u00e4lva begreppet program. <\/p>\n<p>I dag beh\u00f6ver information om programmering systematiseras mer \u00e4n kemiska element gjorde f\u00f6r 150 \u00e5r sedan. <\/p>\n<p>Det f\u00f6rsta behovet \u00e4r undervisning. Mendelejv b\u00f6rjade skapa sitt system n\u00e4r han stod inf\u00f6r fr\u00e5gan - vilket element ska man b\u00f6rja f\u00f6rel\u00e4sa om: O, H, N, He, Au\u2026 Han hade det l\u00e4ttare - han l\u00e4rde de b\u00e4sta - studenterna vid Sankt Petersburgs universitet. Men programmering undervisas redan i skolorna och kommer snart att b\u00f6rja i daghem. <\/p>\n<p>Det andra behovet \u00e4r en vetenskaplig metod. Med hj\u00e4lp av det periodiska systemet uppt\u00e4cktes nya element och information om gamla korrigerades. Det hj\u00e4lpte till att skapa atommodellen (1911). Och s\u00e5 vidare. <\/p>\n<p>Det tredje behovet \u00e4r att precisera begreppet program. <\/p>\n<p>Modern programmering har en fot fast i 50-talet av 1900-talet. D\u00e5 var program enkla, men maskiner och maskinspr\u00e5k var komplexa, s\u00e5 allt kretsade kring maskiner och spr\u00e5k. <\/p>\n<p>Nu \u00e4r det tv\u00e4rtom: program \u00e4r komplexa och prim\u00e4ra, spr\u00e5k \u00e4r enkla och sekund\u00e4ra. Detta kallas en till\u00e4mpad metod som alla verkar vara bekanta med. Men studenter och utvecklare forts\u00e4tter att \u00f6vertygas om att allt fortfarande \u00e4r likadant. <\/p>\n<p>Detta f\u00f6r oss tillbaka till den f\u00f6rsta f\u00f6rel\u00e4sningen av privatdocent Mendelejv. Vad ska man s\u00e4ga till f\u00f6rsta\u00e5rsstudenter? Var \u00e4r sanningen? Det \u00e4r fr\u00e5gan. <\/p>\n<p>Boken \"Matryoshka C. Det lagerbaserade systemet f\u00f6r programmeringsspr\u00e5k\" ger sitt svar. Den riktar sig inte bara till studenter, utan \u00e4ven till erfarna programmerare, eftersom det \u00e4r de, allts\u00e5 vi, som m\u00e5ste leta efter sanningen och f\u00f6r\u00e4ndra v\u00e5r v\u00e4rldsbild. <\/p>\n<p>Nedan f\u00f6ljer en sammanfattning av boken. <\/p>\n<h2>1. Inledning<\/h2>\n<p>\n\u00c5r 1969 skapades programmeringsspr\u00e5ket C, som har blivit ett grundl\u00e4ggande spr\u00e5k inom programmering och fortfarande \u00e4r det efter 50 \u00e5r. Varf\u00f6r \u00e4r det s\u00e5? Framf\u00f6r allt eftersom C \u00e4r en <i>applikationens<\/i> spr\u00e5k, som ger programmet ett <i>m\u00e4nskligt<\/i> utseende ist\u00e4llet f\u00f6r <i>maskinellt<\/i>. Denna prestation har fastst\u00e4llts av spr\u00e5k i C-familjen: C++, JavaScript, PHP, Java, C# och andra. F\u00f6r det andra \u00e4r det ett kort och vackert spr\u00e5k. <\/p>\n<p>Men oftast blandas sj\u00e4lva C-spr\u00e5ket ihop med maskinspr\u00e5k, vilket komplicerar och f\u00f6rvr\u00e4nger dess uppfattning. En annan extremitet \u00e4r att p\u00e5tvinga spr\u00e5ket en viss \"filosofi\": procedur-, objekt-, funktionell, kompilering, tolkning, typning och s\u00e5 vidare. Det tillf\u00f6r k\u00e4nslor, men hj\u00e4lper inte att b\u00e4ttre beskriva spr\u00e5ket. <\/p>\n<p>Sanningen ligger mitt emellan, och f\u00f6r C-spr\u00e5ket \u00e4r det strikt mitt emellan den filosofiska och maskinella uppfattningen. <\/p>\n<p>C-spr\u00e5ket \u00e4r inte sj\u00e4lvst\u00e4ndigt; det underordnas vanlig tal- och skriftspr\u00e5k och samtidigt styr det maskinspr\u00e5ket. Detta tillst\u00e5nd beskrivs av <i>Programmodell f\u00f6r spr\u00e5k<\/i>, som enligt vilken programmet delas upp i tre underordnade typer: tal, kod, och kommandon. C-spr\u00e5ket ansvarar f\u00f6r den andra, kodtypen. <\/p>\n<p>Genom att definiera spr\u00e5kets plats i programmet kan informationen om det struktureras, vilket g\u00f6r att <i>Spr\u00e5ksystemet i programmet<\/i>, som presenterar C-spr\u00e5ket i anda av Mendelejev-systemet \u2013 p\u00e5 en och samma sida. <\/p>\n<p>Systemet \u00e4r byggt med h\u00e4nsyn till <i>gemensamma applikationsspr\u00e5k<\/i>, vilket f\u00f6ljer av deras spr\u00e5kliga underordning. En upps\u00e4ttning enheter av Matryoshka C g\u00f6r det m\u00f6jligt att beskriva och j\u00e4mf\u00f6ra olika spr\u00e5k, vilket skapade en rad Matryoshkas: C++, PHP, JavaScript, C#, MySQL, Python och s\u00e5 vidare. Det \u00e4r b\u00e5de v\u00e4rdigt och korrekt att olika spr\u00e5k beskrivs av enheter fr\u00e5n det grundl\u00e4ggande spr\u00e5ket. <\/p>\n<h2>2. KAPITEL 1. Programmodell f\u00f6r spr\u00e5k. F\u00f6rst\u00e5eligt C<\/h2>\n<p>\nI det f\u00f6rsta kapitlet presenteras <i>programmodell f\u00f6r spr\u00e5k<\/i>, som \u00e5terspeglar en applikationsbaserad ansats. Enligt den har programmet tre uppenbara sekventiella typer: <\/p>\n<ol>\n<li>tala \u2013 direkt tal fr\u00e5n programmeraren som l\u00f6ser ett problem, <\/li>\n<li>kod \u2013 kodning av l\u00f6sningen i matematisk form p\u00e5 C-spr\u00e5ket (eller n\u00e5got annat)<\/li>\n<li>och kommandon \u2013 direkt maskinkommandon. <\/li>\n<\/ol>\n<p>\nProgrammodellen f\u00f6r spr\u00e5k f\u00f6rklarar varf\u00f6r C \u00e4r ett enkelt och f\u00f6rst\u00e5eligt spr\u00e5k. C \u00e4r byggt i enlighet med den m\u00e4nskliga tal- och skrivstilen vi \u00e4r vana vid. <\/p>\n<p>Den f\u00f6rsta typen av program \u00e4r programmerarens direkta tal. Talen motsvarar m\u00e4nskligt t\u00e4nkande. Nyb\u00f6rjare programmerare skriver program med hj\u00e4lp av tal \u2013 f\u00f6rst p\u00e5 ryska, sedan steg f\u00f6r steg \u00f6vers\u00e4tter de handlingarna till kodspr\u00e5k. Och just efter denna mall skapades programspr\u00e5ket C. <\/p>\n<p>Programmerarens slutsatser, uttryckta i tal, omvandlas till ett numeriskt kodformat. Denna omvandling b\u00f6r kallas <i>reflektion<\/i>, eftersom tal och kod har en gemensam natur (reflektion \u2013 f\u00f6delse \u2013 sl\u00e4kt). Detta \u00e4r helt uppenbart om man j\u00e4mf\u00f6r det talade (till v\u00e4nster) och kodformatet (till h\u00f6ger). <\/p>\n<p><img decoding=\"async\" alt=\"Matryoshka C. Lagindelat systemspr\u00e5k\" src=\"\/wp-content\/uploads\/2019\/05\/e88d13730660ebac1d661bb2d34a33d5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet \u00e4r intressant att reflektionen sker mycket enkelt \u2013 med bara tv\u00e5 typer av uttryck. <\/p>\n<p>Men den moderna beskrivningen av C-spr\u00e5ket (fr\u00e5n 1978) inneh\u00e5ller inte en tillr\u00e4cklig lista med namn vare sig f\u00f6r att beskriva spr\u00e5ket i allm\u00e4nhet eller f\u00f6r uppgiften kring reflektion s\u00e4rskilt. D\u00e4rf\u00f6r tvingas vi att vara kreativa och introducera dessa namn.<\/p>\n<p>Valet av ord m\u00e5ste vara exakt och klart. F\u00f6r detta kr\u00e4vdes en s\u00e4rskild metod som kort uttrycks s\u00e5 h\u00e4r \u2013 strikt anv\u00e4ndning av modersm\u00e5let. F\u00f6r britterna skulle det vara engelska, men vi \u00e4r inte britter. S\u00e5 vi anv\u00e4nder det vi har och kommer att f\u00f6rs\u00f6ka prata ryska. <\/p>\n<p>Reflektion utf\u00f6rs av tv\u00e5 typer av uttryck: <\/p>\n<ol>\n<li><i>ber\u00e4kning <\/i>(Bc) \u2013 reflekterar f\u00f6r\u00e4ndringarna i egenskaperna hos f\u00f6rem\u00e5let. Egenskapen hos f\u00f6rem\u00e5let uttrycks med ett nummer, s\u00e5 handlingen \u00f6ver egenskapen inneb\u00e4r en handling \u00f6ver numret \u2013 en operation. <\/li>\n<li><i>underordning <\/i>(Uo) \u2013 reflekterar f\u00f6r\u00e4ndringen av handlingsordningen. F\u00f6rebilden f\u00f6r Uo \u00e4r det talade sammansatta meningen, d\u00e4rf\u00f6r inleds de flesta typer av Uo med underordnande konjunktioner som \"om\", \"annars\", \"medan\", \"f\u00f6r\". Andra typer av Uo kompletterar dem. <\/li>\n<\/ol>\n<p>\nF\u00f6rresten, kan du tro att det i beskrivningen av C inte finns n\u00e5got namn f\u00f6r uttrycken ber\u00e4kning \u2013 de kallas bara \"uttryck\"? Efter detta \u00e4r det inte l\u00e4ngre f\u00f6rv\u00e5nande att det saknas ett namn och f\u00f6rening f\u00f6r typen underordning, och \u00e4ven den allm\u00e4nna bristen p\u00e5 namn, definitioner och generaliseringar. Allt detta beror p\u00e5 att den ber\u00f6mda K\/R (\"C Programming Language\", Kernighan\/Ritchie, 1978) inte \u00e4r en beskrivning utan en handbok f\u00f6r spr\u00e5kets till\u00e4mpning. <\/p>\n<p>Men man skulle verkligen vilja ha en beskrivning av spr\u00e5ket. S\u00e5 detta f\u00f6resl\u00e5s av <i>Spr\u00e5ksystemet i programmet<\/i>. <\/p>\n<h2>3. KAPITEL 2. Lagerbaserat system. Kort C<\/h2>\n<p>\nVarje beskrivning m\u00e5ste vara exakt och ytterst kortfattad. I fallet med programspr\u00e5k \u00e4r en direkt beskrivning sv\u00e5r. <\/p>\n<p>H\u00e4r har vi ett program. Det best\u00e5r av moduler. Moduler best\u00e5r av underprogram och samlingar (structure). Underprogram best\u00e5r av individuella uttryck: deklarationer, ber\u00e4kningar, och underordningar. Det finns hela tio typer av underordningar. Underordningar kopplar ihop underniv\u00e5er och underprogram. Det finns ocks\u00e5 flera deklarationer. I sj\u00e4lva verket ing\u00e5r deklarationer inte bara i underprogram och underniv\u00e5er, utan \u00e4ven i moduler och samlingar. Och de flesta uttryck best\u00e5r av ord som \u00e4r s\u00e5 sv\u00e5ra att beskriva att de vanligtvis ges i tv\u00e5 listor \u2014 de ursprungliga och h\u00e4rledda orden som man kommer att l\u00e4ra k\u00e4nna under hela studiet och anv\u00e4ndningen av spr\u00e5ket. L\u00e5t oss l\u00e4gga till detta skiljetecken och ytterligare ett antal uttryck. <\/p>\n<p>I denna framst\u00e4llning \u00e4r det sv\u00e5rt att f\u00f6rst\u00e5 vem som st\u00e5r p\u00e5 vem. <\/p>\n<p>En direkt hierarkisk metod f\u00f6r att beskriva spr\u00e5ket skulle vara alltf\u00f6r komplicerad. Att leta efter kringv\u00e4gar leder till en beskrivning av spr\u00e5ket baserat p\u00e5 dess talande natur och den kommandonatur. P\u00e5 s\u00e5 s\u00e4tt f\u00f6ddes det Skiktade systemet, delvis st\u00e4mmer \u00f6verens med Mendelejevs periodiska system, som ocks\u00e5 \u00e4r <i>skiktat<\/i>. Som det visade sig 42 \u00e5r efter dess publicering (1869) \u00e4r periodiciteten i systemet kopplad till elektroniska <i>skikt <\/i>(1911, Bohr-Rutherford-modellen). Dessutom f\u00f6renar det Skiktade och Periodiska systemet tabellplaceringen av alla enheter p\u00e5 en och samma sida. <\/p>\n<p>Beskrivningen av spr\u00e5kenhet blir kortfattad \u2014 totalt 10 typer av uttryck och 8 typer av andra enheter, samt b\u00e5de inneh\u00e5llsm\u00e4ssig och visuell. \u00c4ven om det kan verka ovanligt vid f\u00f6rsta bekantskapen. <\/p>\n<p>Spr\u00e5kenheter \u00e4r indelade i 6 niv\u00e5er:<\/p>\n<ol>\n<li>ordnar \u2014 rader i tabellen<\/li>\n<li>avdelningar \u2014 speciella grupper av typer (delar av den f\u00f6rsta raden)<\/li>\n<li>typer \u2014 celler (huvudniv\u00e5 av indelning)<\/li>\n<li>\u00f6vertyper \u2014 avgr\u00e4nsare av typer (s\u00e4llsynt niv\u00e5)<\/li>\n<li>typer \u2014 formler f\u00f6r enheter i botten av cellen eller separat<\/li>\n<li>exempel \u2014 sj\u00e4lva enheterna (endast f\u00f6r ord)<\/li>\n<\/ol>\n<p>\nExempel av ord beskriver <i>ordbok<\/i> \u2014 ett separat subsystem best\u00e5ende av samma sex niv\u00e5er. <\/p>\n<p>Den talande komponenten i spr\u00e5ket C \u00e4r ganska uppenbar, \u00e4ven om den fortfarande f\u00f6rtj\u00e4nar en beskrivning. \u00c5 andra sidan \u00e4r den kommandodel av spr\u00e5ket just relaterad till hantering av kompilering, d\u00e4r en tredje typ av program skapas \u2014 kommandoprogrammet. H\u00e4r kommer vi till den mest f\u00e4ngslande sidan av spr\u00e5ket C \u2014 sk\u00f6nheten. <\/p>\n<h2>4. EFTERF\u00d6LJANDE KAPITEL. Vacker C<\/h2>\n<p>\nC-spr\u00e5ket ligger till grund f\u00f6r modern programmering. Varf\u00f6r? F\u00f6r det f\u00f6rsta p\u00e5 grund av att det b\u00e4st motsvarar spr\u00e5ket. F\u00f6r det andra, eftersom det elegant kringg\u00e5r begr\u00e4nsningarna i maskinell behandling av tal.<\/p>\n<p>Vad f\u00f6reslog C? Typ och lager. <\/p>\n<p>Ordet \"typ\" \u00e4r en \u00f6vers\u00e4ttning av det engelska ordet \"type\", vilket h\u00e4rstammar fr\u00e5n det grekiska \"prototyp\" \u2013 \"f\u00f6rbild\". I svenskan f\u00e5ngar inte ordet \"typ\" helt inneb\u00f6rden av det uttryckta begreppet, utan blandas dessutom med den funktionella betydelsen \"slag\". <\/p>\n<p>Ursprungligen l\u00f6ste typ en rent maskinell uppgift f\u00f6r ber\u00e4kning, men blev sedan en startbana f\u00f6r f\u00f6delsen av objektorienterade spr\u00e5k. <\/p>\n<p>Lager l\u00f6ste omedelbart flera problem \u2013 b\u00e5de maskinella och till\u00e4mpningsbaserade. D\u00e4rf\u00f6r b\u00f6rjar vi med att se p\u00e5 en uppgiftsorienterad typ och g\u00e5r vidare till ett flertalslager. <\/p>\n<p>En av de obehagliga aspekterna av historisk programmering \u00e4r att de flesta begrepp, inklusive grundl\u00e4ggande, ges utan definitioner. \"Programmeringsspr\u00e5ket (namnet p\u00e5 floder) har ett heltal och ett flyttal ...\" \u2013 och s\u00e5 fortsatte man vidare. Vad som menas med \"typ\" (typ) \u2013 beh\u00f6ver inte definieras, eftersom f\u00f6rfattarna sj\u00e4lva inte helt f\u00f6rst\u00e5r det och ska \"klarg\u00f6ra\". Om de trycks mot v\u00e4ggen, s\u00e5 ger de en otydlig och v\u00e4rdel\u00f6s definition. Det hj\u00e4lper mycket att g\u00f6mma sig bakom utl\u00e4ndska ord: f\u00f6r ryska f\u00f6rfattare \u00e4r det bakom engelska (typ), f\u00f6r engelsm\u00e4nnen bakom franska (subroutine), grekiska (polymorfism), latinska (inkapsling) eller deras kombinationer (polymorfism ad-hoc). <\/p>\n<p>Men detta \u00e4r inte v\u00e5rt \u00f6de. V\u00e5rt val \u00e4r definitioner med lyft visir p\u00e5 ren ryska. <\/p>\n<h3>Typ<\/h3>\n<p>\n<i>Typ<\/i> \u00e4r ett f\u00f6rbildande namn p\u00e5 storheten, som definierar 1) de egna egenskaperna hos storheten och 2) valet av operationer f\u00f6r storheten. <\/p>\n<p>Ordet \"typ\" (slag) motsvarar den f\u00f6rsta delen av definitionen: \"egna egenskaper hos storheten\". Men den huvudsakliga inneb\u00f6rden av typen ligger i den andra delen: \"valet av operationer f\u00f6r storheterna.\"<\/p>\n<p>Utg\u00e5ngspunkten f\u00f6r att inf\u00f6ra typ i C-spr\u00e5ket \u00e4r vanlig ber\u00e4kning, till exempel addition. <\/p>\n<p><i>Pappers<\/i> matematik, skriven f\u00f6r hand eller tryckt, g\u00f6r inget s\u00e4rskilt \u00e5tskiljande mellan typer av tal, vanligtvis antas de vara reella. D\u00e4rf\u00f6r \u00e4r deras bearbetningsoperationer entydiga.<\/p>\n<p><i>Maskinell<\/i> Matematik delar strikt upp tal i hela och br\u00e5ktal. Olika typer av tal lagras p\u00e5 olika s\u00e4tt i minnet och behandlas av olika instruktioner i processorn. Till exempel \u00e4r instruktionerna f\u00f6r addition av hela och br\u00e5ktal tv\u00e5 olika instruktioner, som motsvarar tv\u00e5 olika processorenheter. Men det finns ingen instruktion f\u00f6r att addera heltal och br\u00e5ktal. <\/p>\n<p><i>Till\u00e4mpad<\/i> matematik, det vill s\u00e4ga programmeringsspr\u00e5ket C, delar upp typer av tal men f\u00f6renar operationer: addition f\u00f6r hela och\/eller br\u00e5ktal anges med en och samma operator.<\/p>\n<p>En tydlig definition av begreppet form g\u00f6r att man ocks\u00e5 kan prata tydligt om tv\u00e5 andra begrepp: <i>st\u00f6rrelse <\/i>och <i>operation<\/i>. <\/p>\n<h3>St\u00f6rrelse och operation<\/h3>\n<p>\n<i>St\u00f6rrelse <\/i> \u2013 det behandlade talet.<\/p>\n<p><i>Operation<\/i> \u2013 bearbetning av de ursprungliga storheternas v\u00e4rden (argument) f\u00f6r att f\u00e5 det slutliga talet (resultatet). <\/p>\n<p>St\u00f6rrelse och operation \u00e4r sammanl\u00e4nkade. Varje operation \u00e4r en storlek, eftersom den har ett numeriskt resultat. Varje storlek \u00e4r resultatet av att v\u00e4rdet \u00f6verf\u00f6rs till en processorregister\/fr\u00e5n processorn, det vill s\u00e4ga \u2013 resultatet av operationen. Trots denna koppling \u00e4r det fortfarande viktigt att kunna beskriva dem separat, \u00e4ven om det inneb\u00e4r att upprepa ett och samma ord i olika delar av ordf\u00f6rr\u00e5det, vilket ocks\u00e5 sker i ma3. <\/p>\n<p>Den maskinella ansatsen delade alla tal som en programmerare anv\u00e4nder i <i>kommandon <\/i>och <i>data<\/i>. Tidigare var b\u00e5de och b\u00e5de just tal, till exempel skrevs instruktioner med numeriska koder. Men i till\u00e4mpade spr\u00e5k slutade instruktioner att vara tal och blev <i>ord <\/i>och <i>operationssymboler.<\/i>. Endast \"data\" f\u00f6rblev tal, men det \u00e4r absurt att forts\u00e4tta kalla dem s\u00e5, eftersom n\u00e4r man g\u00e5r fr\u00e5n maskinens till den matematiska synvinkeln \u00e4r tal storheter som delas in i ursprungliga (<i>data<\/i>) och slutliga (<i>s\u00f6kta<\/i>). \"Ok\u00e4nt data\" skulle l\u00e5ta dumt. <\/p>\n<p>Instruktionerna delades ocks\u00e5 upp i tv\u00e5 typer av handlingar: matematiska och tj\u00e4nstehandlingar. Matematiska handlingar \u00e4r operationer. Vi \u00e5terkommer till tj\u00e4nstehandlingar senare. <\/p>\n<p>I programmeringsspr\u00e5k som C blir de vanliga papper- och maskinbaserade entydiga, eller enskilda, matematiska operationerna n\u00e4stan alla flerdimensionella. <\/p>\n<p>Flerdimensionella operationer \u2013 flera identiska operationer med olika former av argument och olika, men liknande, handlingar. <\/p>\n<p>Hela argument motsvarar en hel operation, decimaler \u2013 en decimal. Denna skillnad \u00e4r s\u00e4rskilt tydlig vid division, n\u00e4r uttrycket 1\/2 ger resultatet 0, ist\u00e4llet f\u00f6r 0,5. Denna skrivning f\u00f6ljer inte reglerna f\u00f6r papirmatematik, men C-spr\u00e5ket str\u00e4var inte efter att f\u00f6lja dem (till skillnad fr\u00e5n Fortran) \u2013 det spelar efter sina <i>till\u00e4mpnings<\/i> regler.<\/p>\n<p>Vid blandning av heltal och decimaler aktiveras det enda korrekta <i>konvertering av argumentv\u00e4rden<\/i> \u2013 en urvalstransformering av v\u00e4rdet fr\u00e5n en form till en annan. Verkligen, vid addition av ett helt och ett decimaltal blir resultatet \u2013 ett decimaltal, s\u00e5 operationens form <i>v\u00e4ljer <\/i>konvertering av det hela argumentet till ett decimalt v\u00e4rde. <\/p>\n<p>En rad operationer f\u00f6rblir inte <i>flera<\/i>, och <i>enkla<\/i>. S\u00e5dana operationer definieras endast f\u00f6r en typ av argument: resten av divisionen \u2013 hela argument, maskininl\u00e4ggning (bitoperationer) \u2013 naturliga heltal. Ma3 indikerar m\u00e5ngfalden av operationer med tecken (#^) som anger de former f\u00f6r vilka operationen \u00e4r definierad. Detta \u00e4r en viktig, men tidigare f\u00f6rbisedd egenskap hos varje operation. <\/p>\n<p>Alla funktioner \u00e4r godtyckliga enkla operationer. Undantaget \u00e4r operat\u00f6rer \u2013 <i>parentesfria funktioner<\/i>, inbyggda i spr\u00e5ket (ursprungliga operationer). <\/p>\n<h3>Bist\u00e5nd<\/h3>\n<p>\n<i>Bist\u00e5nd <\/i> \u2013 en \u00e5tg\u00e4rd som \u00e4r kopplad till operationen.<\/p>\n<p>Om man betraktar operationen som en huvud\u00e5tg\u00e4rd, kan man utpeka tv\u00e5 assisterande \u00e5tg\u00e4rder som st\u00f6der operationen och skiljer sig fr\u00e5n den. Dessa \u00e4r 1) kontroll av variabeln och 2) underordning. Denna \u00e5tg\u00e4rd kallas <i>bist\u00e5nd<\/i>.<\/p>\n<p>H\u00e4r b\u00f6r vi avvika och s\u00e4rskilt n\u00e4mna de ryska \u00f6vers\u00e4ttningarna av l\u00e4rob\u00f6cker inom programmering. I texten K\/R inf\u00f6rdes ett nytt ord f\u00f6r att beskriva \u00e5tg\u00e4rder <i>statement <\/i>(uttryck), vilket gjorde ett f\u00f6rs\u00f6k att separera begreppen maskinkommandon i olika \u00e5tg\u00e4rder: 1) operation, 2) deklaration och 3) underordning (som kallas \"kontrollstrukturer\"). Detta f\u00f6rs\u00f6k begravdes av ryska \u00f6vers\u00e4ttare, som bytte ut \"uttryck\" mot \"operat\u00f6r\", vilket:<\/p>\n<ol>\n<li>blev en synonym till den maskinella termen \"kommando\", <\/li>\n<li>visade sig vara en synonym till frasen \"\u00e5tg\u00e4rdstecken\",<\/li>\n<li>och fick \u00e4ven ett obegr\u00e4nsat antal ytterligare betydelser. Det blev allts\u00e5 en liknelse till den engelska artikeln \"uhh...\". <\/li>\n<\/ol>\n<p>\nL\u00e5t oss betrakta de f\u00f6ljande \u00e5tg\u00e4rderna, eller <i>bist\u00e5nd<\/i>.<\/p>\n<h4><i>Kontroll av variabeln<\/i> <\/h4>\n<p>\n<i>Kontroll av variabeln<\/i> (UP) \u2014 skapande\/ta bort variabelceller. <br \/>\nUP sker implicit vid deklaration av en variabel, vilket redan skrivs av en annan anledning \u2014 f\u00f6r att ange m\u00e4ngden. Endast en typ hanteras uttryckligen. <i>extra variabler<\/i> genom funktionerna malloc() och free(). <\/p>\n<p>Det b\u00f6r n\u00e4mnas att implicita \u00e5tg\u00e4rder \u00e4r bekv\u00e4mare att skriva, eftersom det \u00f6verhuvudtaget inte kr\u00e4ver n\u00e5got att skriva, men sv\u00e5rare att f\u00f6rst\u00e5 \u2014 de \u00e4r sv\u00e5rare att beakta och tolka. <\/p>\n<h4><i>Underordning<\/i><\/h4>\n<p>\n<i>Underordning <\/i> \u2014 koppling\/avkoppling av skiktavsnitt. <\/p>\n<p>Spr\u00e5ket C f\u00f6reslog ett applicerbart s\u00e4tt att styra ordningen av \u00e5tg\u00e4rder \u2014 underordning, vilket \u00e5terspeglar och utvecklar en sammansatt mening med tydlig uppdelning mellan huvuddel (underordnad mening) och bisats (avsnitt av niv\u00e5\/subprogram). <\/p>\n<p>S\u00e5v\u00e4l deklaration som underordning \u00e4r helt och h\u00e5llet byggda p\u00e5 begreppet <i>skikt<\/i>. <\/p>\n<h3>Skikt<\/h3>\n<p>\n<i>Skikt <\/i> \u2014 \u00e4r en begr\u00e4nsad enskiktsvalupps\u00e4ttning av uttryck. <\/p>\n<p>Skiktet har tydligt och implicit tagit p\u00e5 sig flera uppgifter samtidigt: <\/p>\n<ol>\n<li>ordning av programmet,<\/li>\n<li>begr\u00e4nsning av namns synlighet (implicit),<\/li>\n<li>hantering av variabler (minnesceller) (implicit),<\/li>\n<li>best\u00e4mning av bisatsavsnitt f\u00f6r underordning,<\/li>\n<li>definiera funktioner och samlingar och andra. <\/li>\n<\/ol>\n<p>\nI maskinspr\u00e5k fanns det inte n\u00e5got begrepp om skikt, d\u00e4rf\u00f6r d\u00f6k det inte upp i K\/R, och om n\u00e5got inte fanns d\u00e4r \u2014 skulle det vara en heresi och ot\u00e4nkbarhet att inf\u00f6ra det i efterf\u00f6ljande b\u00f6cker. D\u00e4rf\u00f6r d\u00f6k begreppet skikt aldrig upp \u00f6verhuvudtaget, \u00e4ven om det \u00e4r extremt anv\u00e4ndbart och ganska uppenbart. <\/p>\n<p>Utan skikt \u00e4r det om\u00f6jligt att kort och klart f\u00f6rklara m\u00e5nga \u00e5tg\u00e4rder och regler f\u00f6r programmet. Till exempel, varf\u00f6r en enkel goto \u2014 som en tre\u00f6ring \u2014 \u00e4r d\u00e5lig, medan en komplicerad while \u00e4r bra. Man kan bara maktl\u00f6st klaga, som Dijkstra gjorde (\u2018programmerares kvalifikation \u2014 en funktion som omv\u00e4nt beror p\u00e5 hur ofta goto-operatorer anv\u00e4nds i deras program\u2019. Kort sagt, bara idioter anv\u00e4nder goto. Bevisniv\u00e5 \u2014 Gud.) Visserligen \u00e4r detta inte s\u00e5 farligt om dina b\u00f6cker \u00f6verhuvudtaget inte beh\u00f6ver f\u00f6rklara n\u00e5got, men som vi redan sagt, \u00e4r det inte v\u00e5rt \u00f6de. <\/p>\n<p>F\u00f6rresten kan man anta att Den Ritchie l\u00e4mnade kvar goto som en nyckel f\u00f6r att s\u00f6ka efter ett visst obest\u00e4mt begrepp, eftersom det inte fanns n\u00e5got behov eller sk\u00f6nhet i uttrycket goto. Men det fanns ett behov av en enkel och tydlig f\u00f6rklaring av de nya principerna i spr\u00e5ket, som Ritchie inte ville ge, och som just bygger p\u00e5 begreppet. <i>skikt<\/i>. <\/p>\n<h3>Avvikelse<\/h3>\n<p>\n<i>Avvikelse <\/i> \u2014 en f\u00f6r\u00e4ndring av de vanliga egenskaperna hos det nya namnet. <\/p>\n<p>Den mest viktiga avvikelsen \u00e4r just relaterad till programmets lagrade egenskaper, och beskrivs med ett ord \"static\", som har olika betydelser i varje typ av lager. <\/p>\n<h2>5. SISTE KAPITEL. Gemensamma till\u00e4mpningsspr\u00e5k<\/h2>\n<p>\nTill\u00e4mpningsspr\u00e5k \u00e4r <i>formliga <\/i>spr\u00e5k (som har en form, \"typade\"). De grundar sig p\u00e5 explicit eller implicit anv\u00e4ndning av formen. H\u00e4r uppst\u00e5r \u00e5terigen en mots\u00e4gelse: en explicit form \u2014 mer begriplig, men mindre praktisk, och vice versa. <\/p>\n<p><img decoding=\"async\" alt=\"Matryoshka C. Lagindelat systemspr\u00e5k\" src=\"\/wp-content\/uploads\/2019\/05\/7d0fd49d678736a023f471b54847be7d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>(Tabellens layout finns inte \u00e4n, s\u00e5 tabellen ges som en bild.)<\/i><\/p>\n<p>Efter C:s utveckling gick till\u00e4mpningsspr\u00e5ken mot en \u00f6kning av deras formlighet. Den mest betydelsefulla f\u00f6r att f\u00f6rst\u00e5 den h\u00f6ga graden av formlighet \u00e4r den direkta efterkomman till C \u2014 spr\u00e5ket C++. Det utvecklar id\u00e9n om godtycklig tilldelning av operationer till v\u00e4rden och f\u00f6rverkligar den baserat p\u00e5 den C-liknande uttryckstilldelningen, vilken f\u00e5r det nya namnet \u2014 objekt. Men C++ \u00e4r inte lika kortfattat och uttrycksfullt som C, p\u00e5 grund av \u00f6verbelastning av nya typer av tilldelning och de regler som \u00e4r kopplade till dem. F\u00f6rresten, l\u00e5t oss prata om \"\u00f6verbelastning\". <\/p>\n<h3>\u00d6verbelastning och polymorfism <\/h3>\n<p>\nOrdet \"\u00f6verbelastning\" (overload) \u00e4r en f\u00f6r\u00e5ldrad term fr\u00e5n den maskinella metoden, som betecknar skapandet av <i>flera operationer<\/i>. <\/p>\n<p>Maskinprogrammerarnas (systemprogrammerare) <i>m\u00e5ngfald <\/i>av operationer kunde mycket v\u00e4l irritera: \"Vad betyder den h\u00e4r symbolen (+): addition av heltal, addition av br\u00e5ktal eller rent av f\u00f6rskjutning?! P\u00e5 v\u00e5r tid skrev vi inte s\u00e5 h\u00e4r!\" D\u00e4rifr\u00e5n kommer den negativa tonen i det valda ordet (\"\u00f6verdrift\", \"tr\u00f6tt p\u00e5\"). F\u00f6r en till\u00e4mpningsprogrammerare \u00e4r flera operationer h\u00f6rnstenen, den viktigaste prestationen och arvet fr\u00e5n C-spr\u00e5ket, s\u00e5 naturliga att de ofta inte ens uppfattas. <\/p>\n<p>I spr\u00e5ket C++ <i>m\u00e5ngfald<\/i> spridningen har p\u00e5verkat inte bara grundoperationer utan ocks\u00e5 funktioner \u2013 b\u00e5de separata och gemensamma i klasser \u2013 metoder. Tillsammans med flera metoder kom m\u00f6jligheten till deras \u00f6verskrivning i utvidgade klasser, vilket otydligt har kallats f\u00f6r \"polymorfism\". Kombinationen av polymorfism och \u00f6verbelastning gav en explosiv blandning som delades upp i tv\u00e5 typer av polymorfism: \"\u00e4kte\" och \"ad-hoc\". Att f\u00f6rst\u00e5 detta kan bara g\u00f6ras trots de tilldelade namnen. Utl\u00e4ndska namn har banat v\u00e4g till ad. <\/p>\n<p>En deklaration av typen \"\u00f6verbelastning\" uttrycks b\u00e4ttre med ordet <i>\u00f6vedecklaration <\/i> \u2013 en till\u00e4ggsdeklaration av en funktion med samma namn men med argument av annan typ. <\/p>\n<p>En deklaration av typen \"polymorfism\" b\u00f6r b\u00e4ttre kallas f\u00f6r <i>\u00f6verskrivning<\/i> \u2013 en \u00f6verskrivande deklaration i ett nytt utvidgande lager av en funktion med samma namn men med argument av samma typ. <\/p>\n<p>D\u00e5 blir det l\u00e4tt att f\u00f6rst\u00e5 att metoder med samma namn men olika typer (argument) \u2013 <i>\u00f6vedecklas<\/i>, medan ett och samma typ \u2013 <i>\u00f6verskrivs<\/i>. <\/p>\n<p>Ryska ord l\u00f6ser problemet. <\/p>\n<h3>Startbana<\/h3>\n<p>\n\u00d6verv\u00e4gandet av begrepp inom h\u00f6gtypade spr\u00e5k bekr\u00e4ftar vikten av att tydligt definiera grundl\u00e4ggande begrepp. Med en r\u00e4tt beskriven C kommer studier av h\u00f6gtypade spr\u00e5k att bli l\u00e4tta och trevliga. <\/p>\n<p>Speciellt viktigt \u00e4r det f\u00f6r <i>implicita h\u00f6gtypade spr\u00e5k<\/i> (PHP, JavaScript). F\u00f6r dem blir betydelsen av objekt (sammanst\u00e4llda typer) \u00e4nnu mer framtr\u00e4dande \u00e4n i C++, men sj\u00e4lva begreppet typ blir otydligt och sv\u00e5rt att f\u00e5 grepp om. Ur bekv\u00e4mlighetssynpunkt har de blivit enklare, men ur f\u00f6rst\u00e5else synpunkt \u2013 sv\u00e5rare. <\/p>\n<p>D\u00e4rf\u00f6r b\u00f6r studiet av programmeringsspr\u00e5k inledas med spr\u00e5ket C och g\u00e5 vidare i den ordning som spr\u00e5ken i C-familjen uppstod. <\/p>\n<p>Detta g\u00e4ller ocks\u00e5 beskrivningen av spr\u00e5k. Olika spr\u00e5k har en \u00f6verlappande eller mindre upps\u00e4ttning typer \u00e4n C. Antalet typer och exempel kan variera \u00e5t b\u00e5da h\u00e5ll: C++ har fler typer \u00e4n C, medan JavaScript har f\u00e4rre. <\/p>\n<p>Spr\u00e5ket MySQL f\u00f6rtj\u00e4nar s\u00e4rskild omtanke. Tyckas vara \u2013 inget gemensamt, men det kan enkelt beskrivas med Matryoshka, och att l\u00e4ra k\u00e4nna det blir snabbare och enklare. Vad som \u00e4r viktigt, med tanke p\u00e5 dess betydelse f\u00f6r webben \u2013 den centrala v\u00e4gen inom modern programmering. Och d\u00e4r MySQL finns, finns \u00e4ven andra SQL. Ja, och alla m\u00f6jliga Fortran-Pascal-Python beskriver ocks\u00e5 Matryoshka, s\u00e5 snart tid finns. <\/p>\n<p>S\u00e5 det v\u00e4ntar stora saker p\u00e5 oss \u2013 en praktisk beskrivning av spr\u00e5ket C och en enhetlig beskrivning av de f\u00f6ljande spr\u00e5ken. \"V\u00e5ra m\u00e5l \u00e4r klara, uppgifterna best\u00e4mda. L\u00e5t oss arbeta, kamrater! (Vilt, l\u00e5ngvarigt appl\u00e5derande som \u00f6verg\u00e5r i en ovation. Alla reser sig.)\" <\/p>\n<p>Era \u00e5sikter kommer att lyssnas p\u00e5 med stort intresse, ert bidrag till skapandet av webbplatsen f\u00f6r matrjosjkor kommer att tas emot med stort tack. Mer utf\u00f6rlig information om boken finns p\u00e5 en webbplats, smart g\u00f6md i matrjosjkans C.<br \/>\n<br \/>K\u00e4lla: <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\/sv\/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=\"sv_SE\" \/>\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\/sv\/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\udd47Matrjosjka C. Lagerbaserat system f\u00f6r programspr\u00e5k | ProHoster","description":"L\u00e5t oss f\u00f6rs\u00f6ka f\u00f6rest\u00e4lla oss kemi utan Mendelejevs periodiska system (1869).","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/news\/matryoshka-si-slojnaya-sistema-yazyka-programmy","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/33886","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=33886"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/33886\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/25550"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=33886"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=33886"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=33886"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}