{"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\/nl\/blog\/news\/matryoshka-si-slojnaya-sistema-yazyka-programmy","title":{"rendered":"\ud83e\udd47Wat gebeurt er dan met authenticatie en wachtwoorden? Het tweede deel van het Javelin-rapport \"De staat van strikte authenticatie\" | ProHoster","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Laten we proberen de chemie zonder de Periodieke Tabel van Mendelejev (1869) voor te stellen. Hoeveel elementen moest je onthouden, en dan nog in willekeurige volgorde\u2026 (Toen \u2014 60.)<\/p>\n<p>Hiervoor hoeft men alleen maar aan \u00e9\u00e9n of meerdere programmeertalen tegelijk te denken. Dezelfde gevoelens, dezelfde creatieve chaos. <\/p>\n<p>En nu kunnen we de gevoelens ervaren van chemici uit de 19e eeuw toen hen al hun kennis, en nog wat meer, in \u00e9\u00e9n Periodieke Tabel werd aangeboden. <\/p>\n<p><img decoding=\"async\" alt=\"\ud83e\udd47Wat gebeurt er dan met authenticatie en wachtwoorden? Het tweede deel van het Javelin-rapport &quot;De staat van strikte authenticatie&quot; | 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 \/>\nHet boek 'Matroesjka C. Gelaagd systeem van de programmeertaal' presenteert alle eenheden van de C-taal als in het kwadraat. Dit maakt het mogelijk om ze te ordenen, verouderde informatie te corrigeren en zelfs het begrip programma te verduidelijken. <\/p>\n<p>Vandaag de dag behoeft informatie over programmeren zelfs meer systematisering dan de chemische elementen 150 jaar geleden. <\/p>\n<p>De eerste noodzaak \u2014 onderwijs. Mendelejev begon met het cre\u00ebren van zijn systeem toen hij voor de vraag stond \u2014 met welk element te beginnen met lesgeven: O, H, N, He, Au\u2026 Hij had het gemakkelijker \u2014 hij onderwees de beste chemie-studenten van de SPb-universiteit. Maar programmeren wordt al op school onderwezen en binnenkort ook in de kleuterschool. <\/p>\n<p>De tweede noodzaak \u2014 een wetenschappelijke benadering. Met behulp van de Periodieke Tabel zijn nieuwe elementen ontdekt en zijn informatie over oude elemente gecorrigeerd. Het hielp bij het cre\u00ebren van het atoommodel (1911). En zo verder. <\/p>\n<p>De derde noodzaak \u2014 het verduidelijken van het begrip programma. <\/p>\n<p>Modern programmeren zit met \u00e9\u00e9n been vast in de jaren 50 van de 20e eeuw. Toen waren programma's eenvoudig en waren machines en machinetaal complex, dus draaide alles om machines en talen. <\/p>\n<p>Nu is het omgekeerd: programma's zijn complex en primair, talen zijn eenvoudig en secundair. Dit wordt de toegepaste benadering genoemd, die voor velen wel bekend lijkt te zijn. Maar studenten en ontwikkelaars blijven overtuigd worden dat alles nog steeds hetzelfde is. <\/p>\n<p>Wat ons terugbrengt bij de eerste lezing van docent Mendelejev. Wat te zeggen tegen eerstejaarsstudenten? Waar is de waarheid? Dat is de vraag. <\/p>\n<p>Het boek 'Matroesjka C. Gelaagd systeem van de programmeertaal' biedt zijn antwoord daarop. Het is gericht niet alleen op studenten, maar ook op ervaren programmeurs, aangezien zij de waarheid moeten zoeken en hun wereldbeeld moeten omkeren, dat wil zeggen wij. <\/p>\n<p>Hierna volgt een samenvatting van het boek. <\/p>\n<h2>1. Inleiding<\/h2>\n<p>\nIn 1969, the C language was created, which became a fundamental programming language and has remained so for 50 years. Why is this the case? First and foremost, because C is a <i>practical<\/i> language that gave a program <i>a human-like<\/i> appearance instead of <i>a machine-like<\/i>. This achievement has been cemented by languages from the C family: C++, JavaScript, PHP, Java, C#, and others. Secondly, it is a concise and elegant language. <\/p>\n<p>However, the C language is often confused with machine assembly language, thereby complicating and distorting its perception. Another extreme is imposing some 'philosophy' on the language: procedural, object-oriented, functional, compiled, interpreted, typed, and so on. This adds emotions but does not help to better describe the language. <\/p>\n<p>The truth lies in between, and for the C language, it is strictly in between philosophical and machine perception. <\/p>\n<p>The C language is not independent; it follows the norms of ordinary written speech, and at the same time, it directs the assembly language. This position describes <i>The Speech Model of a Program<\/i>, according to which a program is divided into three subordinate types: speech, code, and command. The C language is responsible for the second type, code. <\/p>\n<p>By determining the place of the language in the program, one can organize information about it, which makes <i>The Layered System of the Program Language<\/i>, representing the C language in the spirit of the Mendeleev system\u2014on a single page. <\/p>\n<p>The system is built considering <i>the commonality of practical languages<\/i>, arising from their speech subordination. One set of units of the C Matryoshka allows for the description and comparison of different languages, creating a series of Matryoshkas: C++, PHP, JavaScript, C#, MySQL, Python, and so on. It is worthy and correct that different languages are described by the units of the fundamental language. <\/p>\n<h2>2. CHAPTER 1. The Speech Model of a Program. Understandable C<\/h2>\n<p>\nIn the first chapter, the <i>speech model of a program<\/i>, reflecting the applied approach, is presented. According to it, a program has three obvious sequential types: <\/p>\n<ol>\n<li>speech \u2014 the direct speech of the programmer solving the task, <\/li>\n<li>code \u2014 encoding the solution in mathematical form in the C language (or any other)<\/li>\n<li>and command \u2014 the direct machine commands. <\/li>\n<\/ol>\n<p>\nThe Speech Model explains why C is a simple and understandable language. C is built in the image and likeness of our familiar human speech. <\/p>\n<p>Het eerste type van programma is de gesproken taal van de programmeur. De taal komt overeen met menselijk denken. Beginners gebruiken de gesproken taal om programma's te schrijven - eerst in het Russisch, daarna stap voor stap vertalen ze de acties naar de codeertaal. De programmeertaal C is op deze basis ontwikkeld. <\/p>\n<p>De redeneringen van de programmeur, uitgedrukt in woorden, worden omgezet in een numerieke code. Dit proces noemen we <i>reflectie<\/i>, daar zowel de gesproken taal als de code dezelfde aard hebben (reflectie \u2013 geboorte \u2013 oorsprong). Dit wordt vrij duidelijk als je de gesproken (links) en de code (rechts) versies van het programma vergelijkt. <\/p>\n<p><img decoding=\"async\" alt=\"\ud83e\udd47Wat gebeurt er dan met authenticatie en wachtwoorden? Het tweede deel van het Javelin-rapport &quot;De staat van strikte authenticatie&quot; | ProHoster\" src=\"\/wp-content\/uploads\/2019\/05\/e88d13730660ebac1d661bb2d34a33d5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVerrassend genoeg gebeurt reflectie heel eenvoudig - met slechts twee soorten uitdrukkingen. <\/p>\n<p>Echter, de moderne beschrijving van de programmeertaal C (van 1978) bevat geen voldoende lijst van termen, zowel voor de beschrijving van de taal in het algemeen als voor de reflectie in het bijzonder. Daarom moeten we creatief aan de slag en deze termen introduceren.<\/p>\n<p>De keuze van woorden moet precisie en duidelijkheid bieden. Hiervoor is een speciale benadering vereist, kort samengevat als - strikt gebruik van de moedertaal. Voor Engelsen zou dat Engels zijn, maar wij zijn geen Engelsen. Dus gebruiken we wat we hebben, en doen ons best om in het Russisch te spreken. <\/p>\n<p>Reflectie wordt uitgevoerd door twee soorten uitdrukkingen: <\/p>\n<ol>\n<li><i>berekening <\/i>(Bv) - reflecteert de verandering van eigenschappen van een object. Een eigenschap van een object wordt uitgedrukt door een getal, dan is een handeling op de eigenschap een handeling op het getal - een operatie. <\/li>\n<li><i>ondergeschiktheid <\/i>(Ov) - reflecteert de verandering in de volgorde van acties. Een voorbeeld van Ov is een samengesteld zin in de gesproken taal, waardoor de meeste types Ov beginnen met ondergeschikte voegwoorden zoals \"als\", \"anders\", \"terwijl\", \"voor\". Andere types Ov vullen deze aan. <\/li>\n<\/ol>\n<p>\nTrouwens, je zou kunnen geloven dat er in de beschrijving van C geen naam is voor de uitdrukkingen berekening - ze worden gewoon \"uitdrukkingen\" genoemd? Na dit zal het ook niet verbazen dat er geen naam of samenvoeging voor de soort ondergeschiktheid is, en in het algemeen is er een schaarste aan benamingen, definities en generalisaties. Dit komt omdat het beroemde K\/R (\"Programmeertaal C\", Kernighan\/Ritchie, 1978) geen beschrijving is, maar een handleiding voor het toepassen van de taal. <\/p>\n<p>Toch zou het fijn zijn om een beschrijving van de taal te hebben. Daarom stelt hij voor <i>The Layered System of the Program Language<\/i>. <\/p>\n<h2>3. HOOFDSTUK 2. Laag systeem. Korte C<\/h2>\n<p>\nIedere beschrijving moet nauwkeurig en zo kort mogelijk zijn. In het geval van de programmeertaal is een oppervlakkige beschrijving moeilijk. <\/p>\n<p>Hier hebben we een programma. Het bestaat uit modules. De modules zijn opgebouwd uit subprogramma's en verzamelingen (structuur). Subprogramma's bestaan uit afzonderlijke uitdrukkingen: declaraties, berekeningen, ondergeschikten. Er zijn maar liefst tien soorten ondergeschikten. Ondergeschikten koppelen subniveaus en subprogramma's. Er zijn ook verschillende declaraties. Bovendien worden declaraties niet alleen in subprogramma's en subniveaus opgenomen, maar ook in modules en in verzamelingen. En de meeste uitdrukkingen bestaan uit woorden, die zo moeilijk te beschrijven zijn dat ze meestal gewoon in twee lijsten worden gegeven \u2014 originele en afgeleide woorden, waarmee men gedurende het leren en toepassen van de taal kennismaakt. Laten we daar leestekens en een aantal andere uitdrukkingen aan toevoegen. <\/p>\n<p>In deze uitleg is het moeilijk te begrijpen wie op wie stond. <\/p>\n<p>Een directe hi\u00ebrarchische benadering van de beschrijving van de taal zou te ingewikkeld zijn. Het zoeken naar omwegen leidt tot de beschrijving van de taal op basis van zijn spraakachtige aard en de commandozijde. Zo ontstond het gelaagd systeem, dat gedeeltelijk samenvalt met het Periodiek Systeem van Mendelejev, dat ook gelaagd is. <i>gelaagd<\/i>. Zoals bleek 42 jaar na de publicatie ervan (1869), is de periodiciteit van het systeem gerelateerd aan elektronische <i>lagen <\/i>(1911, het model van het Bohr-Rutherford-atoom). Bovendien delen het gelaagd systeem en het Periodiek Systeem de tabelindeling van alle eenheden op \u00e9\u00e9n pagina. <\/p>\n<p>De beschrijving van de eenheden van de taal is beknopt \u2014 in totaal 10 soorten uitdrukkingen en 8 soorten andere eenheden, evenals inhoudelijk en visueel. Hoewel onwennig voor een eerste kennismaking. <\/p>\n<p>De eenheden van de taal zijn verdeeld over 6 niveaus:<\/p>\n<ol>\n<li>ordes \u2014 rijen in de tabel<\/li>\n<li>afdelingen \u2014 speciale groepen van soorten (delen van de eerste rij)<\/li>\n<li>soorten \u2014 cellen (de belangrijkste indelingsniveau)<\/li>\n<li>bovenklassen \u2014 scheidingsmiddelen tussen soorten (zeldzaam niveau)<\/li>\n<li>soorten \u2014 formules van de eenheden onderaan de cel of apart<\/li>\n<li>voorbeelden \u2014 de eenheden zelf (alleen voor woorden)<\/li>\n<\/ol>\n<p>\nVoorbeelden van woorden worden beschreven door <i>een woordenboek<\/i> \u2014 een afzonderlijk subsysteem, samengesteld uit dezelfde zes niveaus. <\/p>\n<p>De spraakcomponent van de C-taal is overduidelijk, hoewel het nog steeds een beschrijving waard is. De commandozijde van de taal heeft namelijk te maken met het beheer van de compilatie, waarbij een derde soort programma wordt gecre\u00eberd \u2014 de commando. Hier komen we bij het meest boeiende aspect van de C-taal \u2014 de schoonheid. <\/p>\n<h2>4. VOLGENDE HOOFDSTUKKEN. Mooie C<\/h2>\n<p>\nDe programmeertaal C vormt de basis van moderne programmering. Waarom? Ten eerste vanwege de grootste overeenkomst met de menselijke taal. Ten tweede omdat het elegant de beperkingen van machineverwerking van getallen omzeilt.<\/p>\n<p>Wat biedt C precies aan? Typen en lagen. <\/p>\n<p>Het woord 'type' is de vertaling van het Engelse woord 'type', dat afkomstig is van het Griekse 'prototype' \u2014 'voorbeeld'. In het Nederlands geeft het woord 'type' de kern van het uitgedrukte concept niet weer en wordt het bovendien gemengd met de functionele betekenis 'soort'. <\/p>\n<p>Oorspronkelijk was het type bedoeld voor een puur machineklare berekening, en later werd het een startbaan voor de ontwikkeling van objectgeori\u00ebnteerde talen. <\/p>\n<p>De laag loste direct meerdere taken op \u2014 zowel machine- als toepassingsgerelateerde. Daarom begint de bespreking met een enkelvoudig type en gaat deze over naar een meervoudige laag. <\/p>\n<p>Een van de onaangename kenmerken van historische programmering is dat de meeste concepten, inclusief de basisbegrippen, zonder definities worden gegeven. 'De programmeertaal (de naam van rivieren) heeft een geheel getal en een zwevend type...' \u2014 en het verhaal gaat verder. Wat is een 'type' (voorbeeld) \u2014 dat is niet nodig om te defini\u00ebren, omdat de auteurs het zelf niet volledig begrijpen en het zullen afdoen 'voor de duidelijkheid'. Als ze onder druk worden gezet, geven ze een vaag en nutteloos antwoord. Het helpt enorm om zich achter buitenlandse woorden te verbergen: voor Russische auteurs \u2014 achter Engelse (type), voor Engelsen \u2014 achter Franse (subroutine), Griekse (polymorfisme), Latijnse (encapsulatie) of hun combinaties (polymorfisme ad-hoc). <\/p>\n<p>Maar dat is niet ons lot. Onze keuze is definities in helder Russisch. <\/p>\n<h3>Afbeelding<\/h3>\n<p>\n<i>Afbeelding<\/i> \u2014 dat is de proto-naam van een waarde, die 1) de eigen eigenschappen van de waarde bepaalt en 2) de selectie van operaties met de waarde. <\/p>\n<p>Het woord 'type' (soort) komt overeen met het eerste deel van de definitie: 'eigen eigenschappen van de waarde'. Maar de belangrijkste betekenis van het type ligt in het tweede deel: 'de selectie van operaties met waarden'.<\/p>\n<p>De vertrekpunt voor de introductie van types in de taal C is een gewone berekening, bijvoorbeeld de optelling. <\/p>\n<p><i>Papieren<\/i> wiskunde, genoteerd met de hand of getypt, maakt niet echt onderscheid tussen soorten getallen, gewoonlijk redelijkerwijs beschouwend als re\u00ebel. Daarom zijn de operaties op deze getallen eenduidig.<\/p>\n<p><i>Machine<\/i> Wiskunde verdeelt cijfers strikt in hele en breukgetallen. Verschillende soorten cijfers worden op verschillende manieren in het geheugen opgeslagen en verwerkt door verschillende processorcommando's. Bijvoorbeeld, de commando's voor de optelling van hele en breukgetallen zijn twee verschillende commando's, die overeenkomen met twee verschillende knooppunten van de processor. Er is echter geen commando voor de optelling van een heel en een breukgetal. <\/p>\n<p><i>Toegepaste<\/i> wiskunde, dat wil zeggen de taal C, verdeelt soorten cijfers, maar verenigt operaties: optelling voor hele en\/of breukgetallen wordt met \u00e9\u00e9n bewerkingsteken geschreven.<\/p>\n<p>Een duidelijke definitie van het begrip afbeelding stelt ons in staat om met zekerheid over twee andere begrippen te spreken: <i>grootte <\/i>en <i>bewerking<\/i>. <\/p>\n<h3>Grootte en bewerking<\/h3>\n<p>\n<i>Grootte <\/i> is het verwerkte getal.<\/p>\n<p><i>Operatie<\/i> is de verwerking van de waarden van de oorspronkelijke grootten (argumenten) om het eindgetal (resultaat) te verkrijgen. <\/p>\n<p>Grootte en bewerking zijn met elkaar verbonden. Elke bewerking is een grootte, omdat het een numeriek resultaat heeft. En elke grootte is het resultaat van het verzenden van een waarde naar een register van de processor\/uit de processor, dat wil zeggen - het resultaat van een bewerking. Ondanks deze onderlinge verbinding blijft de mogelijkheid van hun afzonderlijke beschrijving echter het belangrijkste, ook al met herhaling van hetzelfde woord in verschillende secties van het woordenboek, wat het geval is in ma3. <\/p>\n<p>De machine-aanpak verdeelde alle cijfers die door de programmeur werden gebruikt in <i>van de opdrachten. <\/i>en <i>gegevens<\/i>. Vroeger waren beide soorten cijfers gewoon cijfers, bijvoorbeeld commando's werden in numerieke codes geschreven. Echter, in toegepaste talen zijn commando's niet langer cijfers geworden en zijn ze <i>woorden <\/i>en <i>handelingen<\/i>. Alleen 'gegevens' bleven cijfers, maar het is belachelijk om ze zo te blijven noemen, omdat bij de overgang van een machine- naar een wiskundig perspectief, cijfers grootten zijn die worden verdeeld in oorspronkelijke (<i>gegevens<\/i>) en eindresultaten (<i>gevonden<\/i>). 'Onbekende gegevens' klinkt al dom. <\/p>\n<p>Commando's werden ook verdeeld in twee soorten handelingen: wiskundige en dienende handelingen. Wiskundige handelingen zijn bewerkingen. We komen later terug op de dienende handelingen. <\/p>\n<p>In de C-talen worden de gebruikelijke papieren en machine-eenduidige, of enkele, wiskundige bewerkingen bijna volledig meervoudig. <\/p>\n<p>Meervoudige bewerkingen zijn verschillende gelijknamige bewerkingen met verschillende beelden van argumenten en verschillende, semantisch verwante, handelingen. <\/p>\n<p>Hele argumenten komen overeen met een hele operatie, breukargumenten met een breuk. Dit verschil is vooral zichtbaar bij de deling, wanneer de uitdrukking 1\/2 resulteert in 0, in plaats van 0,5. Deze notatie voldoet niet aan de regels van de papierwiskunde, maar de C-taal streeft er ook niet naar om deze na te volgen (in tegenstelling tot Fortran) - het speelt op zijn eigen manier. <i>toepasselijk<\/i> regels.<\/p>\n<p>In het geval van een mengeling van gehele en fractionele getallen geldt alleen de juiste <i>conversie van argumentwaarden<\/i> \u2014 een selectieve transformatie van de waarde van de ene vorm naar de andere. Inderdaad, bij het optellen van een geheel en een fractie is het resultaat - een fractie, daarom kiest de vorm van de operatie <i>de juiste <\/i>transformatie van het gehele argument naar een fractiewaarde. <\/p>\n<p>Een aantal operaties blijven niet <i>meervoudig<\/i>, met behulp van 1 bit, gelijk aan 0, <i>enkelvoudig<\/i>. Dergelijke operaties zijn alleen gedefinieerd voor \u00e9\u00e9n type argumenten: de rest van de deling - gehele argumenten, bitoperaties - natuurlijke gehele. Ma3 geeft de meervoudigheid van operaties aan met de tekens (#^) en verwijst naar de vormen waarvoor de operatie gedefinieerd is. Dit is een belangrijke, maar eerder genegeerde eigenschap van elke operatie. <\/p>\n<p>Alle functies zijn willekeurige enkelvoudige operaties. Uitzonderingen zijn de operatoren - <i>haakjesloze functies<\/i>, ingebouwd in de taal (oorspronkelijke operaties). <\/p>\n<h3>Bijstand<\/h3>\n<p>\n<i>Bijstand <\/i> is een ondersteunende handeling bij de operatie.<\/p>\n<p>Als we de operatie als de primaire handeling beschouwen, kunnen we twee ondersteunende handelingen onderscheiden die de operatie mogelijk maken en zich van de operatie onderscheiden. Dit zijn 1) variabele controle en 2) ondergeschiktheid. Deze handeling wordt genoemd <i>bijstand.<\/i>.<\/p>\n<p>Hier moeten we ons even afleiden en apart spreken over de Russische vertalingen van leerboeken over programmeren. In de tekst K\/R werd een nieuw woord ge\u00efntroduceerd voor het beschrijven van acties <i>statement <\/i>(uitdrukking), dat een poging deed om het begrip van machinesturing in verschillende handelingen te splitsen: 1) operatie, 2) declaratie en 3) ondergeschiktheid (genaamd 'besturingsconstructies'). Deze poging werd door Russische vertalers ondermijnd, die 'uitdrukking' vervingen door 'operator', wat:<\/p>\n<ol>\n<li>een synoniem werd voor het machinemeerwoord 'commando', <\/li>\n<li>een synoniem bleek voor de uitdrukking 'actie teken',<\/li>\n<li>en bovendien een onbeperkt aantal extra betekenissen kreeg. Het werd dus een soort Engelse lidwoord 'uh\u2026'. <\/li>\n<\/ol>\n<p>\nLaten we de ondersteunende handelingen overwegen, of <i>bijstand.<\/i>.<\/p>\n<h4><i>Variabele controle.<\/i> <\/h4>\n<p>\n<i>Variabele controle.<\/i> (UP) \u2014 het cre\u00ebren\/verwijderen van variabele cellen. <br \/>\nUP gebeurt impliciet bij de declaratie van een variabele, die al om een andere reden wordt geschreven \u2014 om de waarde aan te geven. Alleen \u00e9\u00e9n soort wordt expliciet beheerd, <i>toevallige variabelen<\/i> met behulp van de functies malloc() en free(). <\/p>\n<p>Het moet worden opgemerkt dat impliciete acties handiger zijn om te schrijven, omdat ze in het algemeen niets vereisen om te schrijven, maar moeilijker te begrijpen zijn \u2014 ze zijn moeilijker te tellen en te interpreteren. <\/p>\n<h4><i>Subordinatie<\/i><\/h4>\n<p>\n<i>Subordinatie <\/i> \u2014 het aansluiten\/uitschakelen van gelaagde secties. <\/p>\n<p>De programmeertaal C biedt een andere wijze van controle over de volgorde van handelingen dan assembler, namelijk subordinatie. Het weerspiegelt en ontwikkelt een samengestelde zin met een duidelijke scheiding tussen het hoofdonderdeel (ondergeschikte zin) en het bijvoeglijke gedeelte (subniveau\/seconde-programma). <\/p>\n<p>Zowel de declaratie als de subordinatie zijn volledig gebaseerd op het begrip <i>laag<\/i>. <\/p>\n<h3>Laag<\/h3>\n<p>\n<i>Laag <\/i> \u2014 is een beperkte eendelige selectie van uitdrukkingen. <\/p>\n<p>De laag heeft expliciet en impliciet de uitvoering van meerdere taken op zich genomen: <\/p>\n<ol>\n<li>het ordenen van het programma,<\/li>\n<li>beperking van de zichtbaarheid van namen (impliciet),<\/li>\n<li>beheer van variabelen (geheugencellen) (impliciet),<\/li>\n<li>bepaling van bijgedeelten voor subordinatie,<\/li>\n<li>bepaling van functies en selecties en anderen. <\/li>\n<\/ol>\n<p>\nIn machinetaal was het begrip laag niet aanwezig, dus het verscheen ook niet in K\/R, en als er daar niets was, zou het introduceren daarvan in latere boeken als ketterij en vrijdenkerij worden beschouwd. Daarom is het begrip laag in het geheel niet verschenen, hoewel het uiterst nuttig en vrij voor de hand liggend is. <\/p>\n<p>Zonder een laag is het onmogelijk om veel acties en regels van het programma kort en duidelijk uit te leggen. Bijvoorbeeld, waarom een eenvoudige, als drie cent, goto \u2014 slecht is, en een ingewikkelde while \u2014 goed. Je kunt alleen machteloos schelden, zoals Dijkstra deed (\u2018de kwalificatie van programmeurs is een functie die omgekeerd afhankelijk is van de frequentie van het voorkomen van goto-operators in hun programma's\u2019. Kortom, alleen gekken gebruiken goto. Het niveau van rechtvaardiging \u2014 God.) Natuurlijk is het niet zo erg als jouw boeken helemaal niets hoeven uit te leggen, maar zoals we al zeiden, dat is niet ons lot. <\/p>\n<p>Trouwens, men zou kunnen veronderstellen dat Den Ritchie de goto precies heeft achtergelaten als een sleutel voor het zoeken naar een bepaalde onbenoembare zaak, omdat er geen noodzaak of schoonheid in de uitdrukking goto was. Maar er was wel behoefte aan een simpele en duidelijke uitleg van de nieuwe principes van de taal, die Ritchie zelf niet wilde geven, en die juist gebaseerd zijn op het begrip <i>laag<\/i>. <\/p>\n<h3>Afbakening<\/h3>\n<p>\n<i>Afbakening <\/i> \u2014 wijziging van de gebruikelijke eigenschappen van de nieuwe naam. <\/p>\n<p>De belangrijkste afbakening heeft te maken met de laagstructuren van het programma en wordt beschreven met \u00e9\u00e9n woord: \"static\", dat verschillende betekenissen heeft in elk van de laagtypen. <\/p>\n<h2>5. LAATSTE HOOFDSTUK. Algemene kenmerken van toepassings talen<\/h2>\n<p>\nToepassings talen zijn <i>beeldende <\/i>talen (met beeld, \"getypeerd\"). Ze zijn gebaseerd op expliciet of impliciet gebruik van beeld. En hier zien we opnieuw een tegenstrijdigheid: een expliciet beeld is begrijpelijker, maar minder handig, en vice versa. <\/p>\n<p><img decoding=\"async\" alt=\"\ud83e\udd47Wat gebeurt er dan met authenticatie en wachtwoorden? Het tweede deel van het Javelin-rapport &quot;De staat van strikte authenticatie&quot; | ProHoster\" src=\"\/wp-content\/uploads\/2019\/05\/7d0fd49d678736a023f471b54847be7d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>(De opmaak van de tabel is nog niet geleverd, dus de tabel wordt weergegeven als een afbeelding.)<\/i><\/p>\n<p>Na C is de ontwikkeling van toepassings talen gegaan via de weg van het vergroten van hun beeldend vermogen. Het belangrijkste voor het begrip van de hoge beeldendheid is de rechtstreekse afstammeling van C \u2014 de programmeertaal C++. Deze ontwikkelt het idee van willekeurige selectie van operaties voor waarden en belichaamt dit op basis van de C-uitdrukking selectie, die een nieuwe naam krijgt \u2014 object. Echter, C++ is niet zo beknopt en expressief als C, vanwege de overload van nieuwe soorten selectie en de bijbehorende regels. Over de \"overload\" gesproken. <\/p>\n<h3>Overload en polymorfisme <\/h3>\n<p>\nHet woord \"overload\" (overbelasting) is een verouderde term uit de machine-aanpak, die het cre\u00ebren van <i>meervoudige operaties<\/i>. <\/p>\n<p>Systeem programmeurs <i>meervoudigheid <\/i>van operaties kon behoorlijk irriteren: \"Wat betekent dit teken (+): de som van gehele getallen, de som van breukgetallen of gewoon verspringen?! In onze tijd schreef men zo niet!\" Vandaar de negatieve ondertoon van het gekozen woord (\"overload\", \"vermoeid\"). Voor een toepassings programmeur zijn meervoudige operaties de hoeksteen, het belangrijkste resultaat en de erfenis van de taal C, zo natuurlijk dat ze vaak niet eens worden gerealiseerd. <\/p>\n<p>In de programmeertaal C++ <i>meervoudigheid<\/i> het verspreidde zich niet alleen naar de basishandelingen, maar ook naar functies \u2014 zowel afzonderlijk als samengevoegd in klassen \u2014 methoden. Samen met de meerdere methoden kwam de mogelijkheid tot overschrijving in uitgebreide klassen, die vaag 'polymorfisme' werd genoemd. De combinatie van polymorfisme en overbelasting gaf een explosieve mix die zich splitste in twee polymorfismen: 'echte' en 'ad-hoc'. Dit kan alleen worden begrepen ondanks de toegewezen namen. Met buitenlandse namen is de weg naar ad geplaveid. <\/p>\n<p>De aankondiging van het type 'overbelasting' kan beter worden uitgedrukt met het woord <i>dubbele aankondiging <\/i> \u2014 het toevoegen van een aankondiging van dezelfde functie met argumenten van een andere vorm. <\/p>\n<p>De aankondiging van het type 'polymorfisme' kan beter 'her-aankondiging' worden genoemd <i>her-aankondiging<\/i> \u2014 een overlappende aankondiging in een nieuwe uitbreidende laag van de functie met dezelfde naam met argumenten van dezelfde vorm. <\/p>\n<p>Dan zal het eenvoudig zijn om te begrijpen dat de methoden met dezelfde naam van verschillende vormen (argumenten) \u2014 <i>dubbel worden verklaard<\/i>, en van dezelfde vorm \u2014 <i>her-aangemeld worden<\/i>. <\/p>\n<p>Russische woorden lossen het op. <\/p>\n<h3>Startbaan<\/h3>\n<p>\nDe overweging van de concepten van hoog-abstrakte talen bevestigt het belang van een duidelijke definitie van fundamentele concepten. Met correct beschreven C zal het leren van hoog-abstrakte talen eenvoudig en plezierig zijn. <\/p>\n<p>Dit is vooral belangrijk voor <i>impliciete hoog-abstrakte talen<\/i> (PHP, JavaScript). Voor hen wordt het belang van objecten (samengestelde vormen) nog groter dan in C++, maar zelf het begrip vorm wordt impliciet en moeilijk te vangen. Vanuit het perspectief van gebruiksvriendelijkheid zijn ze eenvoudiger geworden, maar qua begrip zijn ze complexer. <\/p>\n<p>Daarom moet je de studie van programmeertalen beginnen met de taal C en verdergaan in de volgorde van verschijnen van de C-taalfamilie. <\/p>\n<p>Hetzelfde geldt voor de beschrijving van talen. Verschillende talen hebben een overlappende, of kleinere set soorten eenheden dan de taal C. Het aantal soorten en voorbeelden kan in beide richtingen verschillen: C++ heeft meer soorten dan C, JavaScript heeft er minder. <\/p>\n<p>Bijzonder vermeldenswaard is de taal MySQL. Het leek niets gemeen te hebben, maar het kan perfect worden beschreven met Matryoshka, en de kennismaking ermee wordt sneller en gemakkelijker. Wat belangrijk is, gezien zijn belang voor het web \u2014 de hoofdweg van moderne programmering. En waar MySQL is, zijn er ook andere SQL. En allerlei Fortrans-Pascal-Python kunnen ook met Matryoshka worden beschreven, zodra de handen het toestaan. <\/p>\n<p>Dus, we staan voor grote dingen - een praktische beschrijving van de programmeertaal C en een eenduidige beschrijving van de daaropvolgende talen. \"Onze doelen zijn duidelijk, de taken zijn gedefinieerd. Aan de slag, vrienden! (Stormachtig, langdurig applaus, overgaand in een ovatie. Iedereen staat op.)\" <\/p>\n<p>Uw meningen zullen met veel aandacht worden gehoord, uw hulp bij het cre\u00ebren van de matroesjka-website zal met grote dankbaarheid worden aanvaard. Meer gedetailleerde informatie over het boek is te vinden op de site, slim verstopt in de Matroesjka C.<br \/>\n<br \/>Bron: <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.3 - 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\/nl\/blog\/news\/matryoshka-si-slojnaya-sistema-yazyka-programmy\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\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\/nl\/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\udd47Matroesjka C. Gelaagd systeem van de programmeertaal | ProHoster","description":"Laten we proberen de chemie zonder de Periodieke Tabel van Mendelejev (1869) voor te stellen.","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/news\/matryoshka-si-slojnaya-sistema-yazyka-programmy","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","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\/nl\/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\/nl\/wp-json\/wp\/v2\/posts\/33886","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=33886"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/33886\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media\/25550"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=33886"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=33886"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=33886"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}