🥇Wat gebeurt er dan met authenticatie en wachtwoorden? Het tweede deel van het Javelin-rapport "De staat van strikte authenticatie" | ProHoster

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… (Toen — 60.)

Hiervoor hoeft men alleen maar aan één of meerdere programmeertalen tegelijk te denken. Dezelfde gevoelens, dezelfde creatieve chaos.

En nu kunnen we de gevoelens ervaren van chemici uit de 19e eeuw toen hen al hun kennis, en nog wat meer, in één Periodieke Tabel werd aangeboden.

🥇Wat gebeurt er dan met authenticatie en wachtwoorden? Het tweede deel van het Javelin-rapport "De staat van strikte authenticatie" | ProHoster


Het 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.

Vandaag de dag behoeft informatie over programmeren zelfs meer systematisering dan de chemische elementen 150 jaar geleden.

De eerste noodzaak — onderwijs. Mendelejev begon met het creëren van zijn systeem toen hij voor de vraag stond — met welk element te beginnen met lesgeven: O, H, N, He, Au… Hij had het gemakkelijker — hij onderwees de beste chemie-studenten van de SPb-universiteit. Maar programmeren wordt al op school onderwezen en binnenkort ook in de kleuterschool.

De tweede noodzaak — 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ëren van het atoommodel (1911). En zo verder.

De derde noodzaak — het verduidelijken van het begrip programma.

Modern programmeren zit met één 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.

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.

Wat ons terugbrengt bij de eerste lezing van docent Mendelejev. Wat te zeggen tegen eerstejaarsstudenten? Waar is de waarheid? Dat is de vraag.

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.

Hierna volgt een samenvatting van het boek.

1. Inleiding

In 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 practical language that gave a program a human-like appearance instead of a machine-like. 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.

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.

The truth lies in between, and for the C language, it is strictly in between philosophical and machine perception.

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 The Speech Model of a Program, 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.

By determining the place of the language in the program, one can organize information about it, which makes The Layered System of the Program Language, representing the C language in the spirit of the Mendeleev system—on a single page.

The system is built considering the commonality of practical languages, 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.

2. CHAPTER 1. The Speech Model of a Program. Understandable C

In the first chapter, the speech model of a program, reflecting the applied approach, is presented. According to it, a program has three obvious sequential types:

  1. speech — the direct speech of the programmer solving the task,
  2. code — encoding the solution in mathematical form in the C language (or any other)
  3. and command — the direct machine commands.

The Speech Model explains why C is a simple and understandable language. C is built in the image and likeness of our familiar human speech.

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.

De redeneringen van de programmeur, uitgedrukt in woorden, worden omgezet in een numerieke code. Dit proces noemen we reflectie, daar zowel de gesproken taal als de code dezelfde aard hebben (reflectie – geboorte – oorsprong). Dit wordt vrij duidelijk als je de gesproken (links) en de code (rechts) versies van het programma vergelijkt.

🥇Wat gebeurt er dan met authenticatie en wachtwoorden? Het tweede deel van het Javelin-rapport "De staat van strikte authenticatie" | ProHoster

Verrassend genoeg gebeurt reflectie heel eenvoudig - met slechts twee soorten uitdrukkingen.

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.

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.

Reflectie wordt uitgevoerd door twee soorten uitdrukkingen:

  1. berekening (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.
  2. ondergeschiktheid (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.

Trouwens, 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.

Toch zou het fijn zijn om een beschrijving van de taal te hebben. Daarom stelt hij voor The Layered System of the Program Language.

3. HOOFDSTUK 2. Laag systeem. Korte C

Iedere beschrijving moet nauwkeurig en zo kort mogelijk zijn. In het geval van de programmeertaal is een oppervlakkige beschrijving moeilijk.

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 — 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.

In deze uitleg is het moeilijk te begrijpen wie op wie stond.

Een directe hiërarchische 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. gelaagd. Zoals bleek 42 jaar na de publicatie ervan (1869), is de periodiciteit van het systeem gerelateerd aan elektronische lagen (1911, het model van het Bohr-Rutherford-atoom). Bovendien delen het gelaagd systeem en het Periodiek Systeem de tabelindeling van alle eenheden op één pagina.

De beschrijving van de eenheden van de taal is beknopt — in totaal 10 soorten uitdrukkingen en 8 soorten andere eenheden, evenals inhoudelijk en visueel. Hoewel onwennig voor een eerste kennismaking.

De eenheden van de taal zijn verdeeld over 6 niveaus:

  1. ordes — rijen in de tabel
  2. afdelingen — speciale groepen van soorten (delen van de eerste rij)
  3. soorten — cellen (de belangrijkste indelingsniveau)
  4. bovenklassen — scheidingsmiddelen tussen soorten (zeldzaam niveau)
  5. soorten — formules van de eenheden onderaan de cel of apart
  6. voorbeelden — de eenheden zelf (alleen voor woorden)

Voorbeelden van woorden worden beschreven door een woordenboek — een afzonderlijk subsysteem, samengesteld uit dezelfde zes niveaus.

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ëerd — de commando. Hier komen we bij het meest boeiende aspect van de C-taal — de schoonheid.

4. VOLGENDE HOOFDSTUKKEN. Mooie C

De 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.

Wat biedt C precies aan? Typen en lagen.

Het woord 'type' is de vertaling van het Engelse woord 'type', dat afkomstig is van het Griekse 'prototype' — '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'.

Oorspronkelijk was het type bedoeld voor een puur machineklare berekening, en later werd het een startbaan voor de ontwikkeling van objectgeoriënteerde talen.

De laag loste direct meerdere taken op — zowel machine- als toepassingsgerelateerde. Daarom begint de bespreking met een enkelvoudig type en gaat deze over naar een meervoudige laag.

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...' — en het verhaal gaat verder. Wat is een 'type' (voorbeeld) — dat is niet nodig om te definiëren, 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 — achter Engelse (type), voor Engelsen — achter Franse (subroutine), Griekse (polymorfisme), Latijnse (encapsulatie) of hun combinaties (polymorfisme ad-hoc).

Maar dat is niet ons lot. Onze keuze is definities in helder Russisch.

Afbeelding

Afbeelding — 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.

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'.

De vertrekpunt voor de introductie van types in de taal C is een gewone berekening, bijvoorbeeld de optelling.

Papieren wiskunde, genoteerd met de hand of getypt, maakt niet echt onderscheid tussen soorten getallen, gewoonlijk redelijkerwijs beschouwend als reëel. Daarom zijn de operaties op deze getallen eenduidig.

Machine 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.

Toegepaste wiskunde, dat wil zeggen de taal C, verdeelt soorten cijfers, maar verenigt operaties: optelling voor hele en/of breukgetallen wordt met één bewerkingsteken geschreven.

Een duidelijke definitie van het begrip afbeelding stelt ons in staat om met zekerheid over twee andere begrippen te spreken: grootte en bewerking.

Grootte en bewerking

Grootte is het verwerkte getal.

Operatie is de verwerking van de waarden van de oorspronkelijke grootten (argumenten) om het eindgetal (resultaat) te verkrijgen.

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.

De machine-aanpak verdeelde alle cijfers die door de programmeur werden gebruikt in van de opdrachten. en gegevens. 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 woorden en handelingen. 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 (gegevens) en eindresultaten (gevonden). 'Onbekende gegevens' klinkt al dom.

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.

In de C-talen worden de gebruikelijke papieren en machine-eenduidige, of enkele, wiskundige bewerkingen bijna volledig meervoudig.

Meervoudige bewerkingen zijn verschillende gelijknamige bewerkingen met verschillende beelden van argumenten en verschillende, semantisch verwante, handelingen.

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. toepasselijk regels.

In het geval van een mengeling van gehele en fractionele getallen geldt alleen de juiste conversie van argumentwaarden — 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 de juiste transformatie van het gehele argument naar een fractiewaarde.

Een aantal operaties blijven niet meervoudig, met behulp van 1 bit, gelijk aan 0, enkelvoudig. Dergelijke operaties zijn alleen gedefinieerd voor één 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.

Alle functies zijn willekeurige enkelvoudige operaties. Uitzonderingen zijn de operatoren - haakjesloze functies, ingebouwd in de taal (oorspronkelijke operaties).

Bijstand

Bijstand is een ondersteunende handeling bij de operatie.

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 bijstand..

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ïntroduceerd voor het beschrijven van acties statement (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:

  1. een synoniem werd voor het machinemeerwoord 'commando',
  2. een synoniem bleek voor de uitdrukking 'actie teken',
  3. en bovendien een onbeperkt aantal extra betekenissen kreeg. Het werd dus een soort Engelse lidwoord 'uh…'.

Laten we de ondersteunende handelingen overwegen, of bijstand..

Variabele controle.

Variabele controle. (UP) — het creëren/verwijderen van variabele cellen.
UP gebeurt impliciet bij de declaratie van een variabele, die al om een andere reden wordt geschreven — om de waarde aan te geven. Alleen één soort wordt expliciet beheerd, toevallige variabelen met behulp van de functies malloc() en free().

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 — ze zijn moeilijker te tellen en te interpreteren.

Subordinatie

Subordinatie — het aansluiten/uitschakelen van gelaagde secties.

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).

Zowel de declaratie als de subordinatie zijn volledig gebaseerd op het begrip laag.

Laag

Laag — is een beperkte eendelige selectie van uitdrukkingen.

De laag heeft expliciet en impliciet de uitvoering van meerdere taken op zich genomen:

  1. het ordenen van het programma,
  2. beperking van de zichtbaarheid van namen (impliciet),
  3. beheer van variabelen (geheugencellen) (impliciet),
  4. bepaling van bijgedeelten voor subordinatie,
  5. bepaling van functies en selecties en anderen.

In 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.

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 — slecht is, en een ingewikkelde while — goed. Je kunt alleen machteloos schelden, zoals Dijkstra deed (‘de kwalificatie van programmeurs is een functie die omgekeerd afhankelijk is van de frequentie van het voorkomen van goto-operators in hun programma's’. Kortom, alleen gekken gebruiken goto. Het niveau van rechtvaardiging — 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.

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 laag.

Afbakening

Afbakening — wijziging van de gebruikelijke eigenschappen van de nieuwe naam.

De belangrijkste afbakening heeft te maken met de laagstructuren van het programma en wordt beschreven met één woord: "static", dat verschillende betekenissen heeft in elk van de laagtypen.

5. LAATSTE HOOFDSTUK. Algemene kenmerken van toepassings talen

Toepassings talen zijn beeldende 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.

🥇Wat gebeurt er dan met authenticatie en wachtwoorden? Het tweede deel van het Javelin-rapport "De staat van strikte authenticatie" | ProHoster

(De opmaak van de tabel is nog niet geleverd, dus de tabel wordt weergegeven als een afbeelding.)

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 — 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 — 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.

Overload en polymorfisme

Het woord "overload" (overbelasting) is een verouderde term uit de machine-aanpak, die het creëren van meervoudige operaties.

Systeem programmeurs meervoudigheid 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.

In de programmeertaal C++ meervoudigheid het verspreidde zich niet alleen naar de basishandelingen, maar ook naar functies — zowel afzonderlijk als samengevoegd in klassen — 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.

De aankondiging van het type 'overbelasting' kan beter worden uitgedrukt met het woord dubbele aankondiging — het toevoegen van een aankondiging van dezelfde functie met argumenten van een andere vorm.

De aankondiging van het type 'polymorfisme' kan beter 'her-aankondiging' worden genoemd her-aankondiging — een overlappende aankondiging in een nieuwe uitbreidende laag van de functie met dezelfde naam met argumenten van dezelfde vorm.

Dan zal het eenvoudig zijn om te begrijpen dat de methoden met dezelfde naam van verschillende vormen (argumenten) — dubbel worden verklaard, en van dezelfde vorm — her-aangemeld worden.

Russische woorden lossen het op.

Startbaan

De 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.

Dit is vooral belangrijk voor impliciete hoog-abstrakte talen (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.

Daarom moet je de studie van programmeertalen beginnen met de taal C en verdergaan in de volgorde van verschijnen van de C-taalfamilie.

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.

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 — 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.

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.)"

Uw meningen zullen met veel aandacht worden gehoord, uw hulp bij het creëren 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.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster