LÄt oss försöka förestÀlla oss kemi utan Mendelejevs periodiska system (1869). Hur mÄnga element skulle man behöva ha i huvudet, dessutom i godtycklig ordning... (DÄ - 60.)
För detta rÀcker det att tÀnka pÄ ett eller flera programmeringssprÄk Ät gÄngen. Samma kÀnslor, samma kreativa kaos.
Nu kan vi uppleva kemisternas kÀnslor frÄn 1800-talet, nÀr de fick all sin kunskap, och lite till, i ett och samma periodiska system.

Boken "Matryoshka C. Det lagerbaserade systemet för programmeringssprÄk" presenterar alla enheter av sprÄket C som pÄ en handflata. Det gör det möjligt att ordna dem, ÄtgÀrda förÄldrad information och till och med precisera sjÀlva begreppet program.
I dag behöver information om programmering systematiseras mer Àn kemiska element gjorde för 150 Är sedan.
Det första behovet Àr undervisning. Mendelejv började skapa sitt system nÀr han stod inför frÄgan - vilket element ska man börja förelÀsa om: O, H, N, He, Au⊠Han hade det lÀttare - han lÀrde de bÀsta - studenterna vid Sankt Petersburgs universitet. Men programmering undervisas redan i skolorna och kommer snart att börja i daghem.
Det andra behovet Àr en vetenskaplig metod. Med hjÀlp av det periodiska systemet upptÀcktes nya element och information om gamla korrigerades. Det hjÀlpte till att skapa atommodellen (1911). Och sÄ vidare.
Det tredje behovet Àr att precisera begreppet program.
Modern programmering har en fot fast i 50-talet av 1900-talet. DÄ var program enkla, men maskiner och maskinsprÄk var komplexa, sÄ allt kretsade kring maskiner och sprÄk.
Nu Àr det tvÀrtom: program Àr komplexa och primÀra, sprÄk Àr enkla och sekundÀra. Detta kallas en tillÀmpad metod som alla verkar vara bekanta med. Men studenter och utvecklare fortsÀtter att övertygas om att allt fortfarande Àr likadant.
Detta för oss tillbaka till den första förelÀsningen av privatdocent Mendelejv. Vad ska man sÀga till förstaÄrsstudenter? Var Àr sanningen? Det Àr frÄgan.
Boken "Matryoshka C. Det lagerbaserade systemet för programmeringssprÄk" ger sitt svar. Den riktar sig inte bara till studenter, utan Àven till erfarna programmerare, eftersom det Àr de, alltsÄ vi, som mÄste leta efter sanningen och förÀndra vÄr vÀrldsbild.
Nedan följer en sammanfattning av boken.
1. Inledning
à r 1969 skapades programmeringssprÄket C, som har blivit ett grundlÀggande sprÄk inom programmering och fortfarande Àr det efter 50 Är. Varför Àr det sÄ? Framför allt eftersom C Àr en applikationens sprÄk, som ger programmet ett mÀnskligt utseende istÀllet för maskinellt. Denna prestation har faststÀllts av sprÄk i C-familjen: C++, JavaScript, PHP, Java, C# och andra. För det andra Àr det ett kort och vackert sprÄk.
Men oftast blandas sjÀlva C-sprÄket ihop med maskinsprÄk, vilket komplicerar och förvrÀnger dess uppfattning. En annan extremitet Àr att pÄtvinga sprÄket en viss "filosofi": procedur-, objekt-, funktionell, kompilering, tolkning, typning och sÄ vidare. Det tillför kÀnslor, men hjÀlper inte att bÀttre beskriva sprÄket.
Sanningen ligger mitt emellan, och för C-sprÄket Àr det strikt mitt emellan den filosofiska och maskinella uppfattningen.
C-sprÄket Àr inte sjÀlvstÀndigt; det underordnas vanlig tal- och skriftsprÄk och samtidigt styr det maskinsprÄket. Detta tillstÄnd beskrivs av Programmodell för sprÄk, som enligt vilken programmet delas upp i tre underordnade typer: tal, kod, och kommandon. C-sprÄket ansvarar för den andra, kodtypen.
Genom att definiera sprĂ„kets plats i programmet kan informationen om det struktureras, vilket gör att SprĂ„ksystemet i programmet, som presenterar C-sprĂ„ket i anda av Mendelejev-systemet â pĂ„ en och samma sida.
Systemet Àr byggt med hÀnsyn till gemensamma applikationssprÄk, vilket följer av deras sprÄkliga underordning. En uppsÀttning enheter av Matryoshka C gör det möjligt att beskriva och jÀmföra olika sprÄk, vilket skapade en rad Matryoshkas: C++, PHP, JavaScript, C#, MySQL, Python och sÄ vidare. Det Àr bÄde vÀrdigt och korrekt att olika sprÄk beskrivs av enheter frÄn det grundlÀggande sprÄket.
2. KAPITEL 1. Programmodell för sprÄk. FörstÄeligt C
I det första kapitlet presenteras programmodell för sprÄk, som Äterspeglar en applikationsbaserad ansats. Enligt den har programmet tre uppenbara sekventiella typer:
- tala â direkt tal frĂ„n programmeraren som löser ett problem,
- kod â kodning av lösningen i matematisk form pĂ„ C-sprĂ„ket (eller nĂ„got annat)
- och kommandon â direkt maskinkommandon.
Programmodellen för sprÄk förklarar varför C Àr ett enkelt och förstÄeligt sprÄk. C Àr byggt i enlighet med den mÀnskliga tal- och skrivstilen vi Àr vana vid.
Den första typen av program Ă€r programmerarens direkta tal. Talen motsvarar mĂ€nskligt tĂ€nkande. Nybörjare programmerare skriver program med hjĂ€lp av tal â först pĂ„ ryska, sedan steg för steg översĂ€tter de handlingarna till kodsprĂ„k. Och just efter denna mall skapades programsprĂ„ket C.
Programmerarens slutsatser, uttryckta i tal, omvandlas till ett numeriskt kodformat. Denna omvandling bör kallas reflektion, eftersom tal och kod har en gemensam natur (reflektion â födelse â slĂ€kt). Detta Ă€r helt uppenbart om man jĂ€mför det talade (till vĂ€nster) och kodformatet (till höger).

Det Ă€r intressant att reflektionen sker mycket enkelt â med bara tvĂ„ typer av uttryck.
Men den moderna beskrivningen av C-sprÄket (frÄn 1978) innehÄller inte en tillrÀcklig lista med namn vare sig för att beskriva sprÄket i allmÀnhet eller för uppgiften kring reflektion sÀrskilt. DÀrför tvingas vi att vara kreativa och introducera dessa namn.
Valet av ord mĂ„ste vara exakt och klart. För detta krĂ€vdes en sĂ€rskild metod som kort uttrycks sĂ„ hĂ€r â strikt anvĂ€ndning av modersmĂ„let. För britterna skulle det vara engelska, men vi Ă€r inte britter. SĂ„ vi anvĂ€nder det vi har och kommer att försöka prata ryska.
Reflektion utförs av tvÄ typer av uttryck:
- berĂ€kning (Bc) â reflekterar förĂ€ndringarna i egenskaperna hos föremĂ„let. Egenskapen hos föremĂ„let uttrycks med ett nummer, sĂ„ handlingen över egenskapen innebĂ€r en handling över numret â en operation.
- underordning (Uo) â reflekterar förĂ€ndringen av handlingsordningen. Förebilden för Uo Ă€r det talade sammansatta meningen, dĂ€rför inleds de flesta typer av Uo med underordnande konjunktioner som "om", "annars", "medan", "för". Andra typer av Uo kompletterar dem.
Förresten, kan du tro att det i beskrivningen av C inte finns nĂ„got namn för uttrycken berĂ€kning â de kallas bara "uttryck"? Efter detta Ă€r det inte lĂ€ngre förvĂ„nande att det saknas ett namn och förening för typen underordning, och Ă€ven den allmĂ€nna bristen pĂ„ namn, definitioner och generaliseringar. Allt detta beror pĂ„ att den berömda K/R ("C Programming Language", Kernighan/Ritchie, 1978) inte Ă€r en beskrivning utan en handbok för sprĂ„kets tillĂ€mpning.
Men man skulle verkligen vilja ha en beskrivning av sprÄket. SÄ detta föreslÄs av SprÄksystemet i programmet.
3. KAPITEL 2. Lagerbaserat system. Kort C
Varje beskrivning mÄste vara exakt och ytterst kortfattad. I fallet med programsprÄk Àr en direkt beskrivning svÄr.
HĂ€r har vi ett program. Det bestĂ„r av moduler. Moduler bestĂ„r av underprogram och samlingar (structure). Underprogram bestĂ„r av individuella uttryck: deklarationer, berĂ€kningar, och underordningar. Det finns hela tio typer av underordningar. Underordningar kopplar ihop undernivĂ„er och underprogram. Det finns ocksĂ„ flera deklarationer. I sjĂ€lva verket ingĂ„r deklarationer inte bara i underprogram och undernivĂ„er, utan Ă€ven i moduler och samlingar. Och de flesta uttryck bestĂ„r av ord som Ă€r sĂ„ svĂ„ra att beskriva att de vanligtvis ges i tvĂ„ listor â de ursprungliga och hĂ€rledda orden som man kommer att lĂ€ra kĂ€nna under hela studiet och anvĂ€ndningen av sprĂ„ket. LĂ„t oss lĂ€gga till detta skiljetecken och ytterligare ett antal uttryck.
I denna framstÀllning Àr det svÄrt att förstÄ vem som stÄr pÄ vem.
En direkt hierarkisk metod för att beskriva sprÄket skulle vara alltför komplicerad. Att leta efter kringvÀgar leder till en beskrivning av sprÄket baserat pÄ dess talande natur och den kommandonatur. PÄ sÄ sÀtt föddes det Skiktade systemet, delvis stÀmmer överens med Mendelejevs periodiska system, som ocksÄ Àr skiktat. Som det visade sig 42 Är efter dess publicering (1869) Àr periodiciteten i systemet kopplad till elektroniska skikt (1911, Bohr-Rutherford-modellen). Dessutom förenar det Skiktade och Periodiska systemet tabellplaceringen av alla enheter pÄ en och samma sida.
Beskrivningen av sprĂ„kenhet blir kortfattad â totalt 10 typer av uttryck och 8 typer av andra enheter, samt bĂ„de innehĂ„llsmĂ€ssig och visuell. Ăven om det kan verka ovanligt vid första bekantskapen.
SprÄkenheter Àr indelade i 6 nivÄer:
- ordnar â rader i tabellen
- avdelningar â speciella grupper av typer (delar av den första raden)
- typer â celler (huvudnivĂ„ av indelning)
- övertyper â avgrĂ€nsare av typer (sĂ€llsynt nivĂ„)
- typer â formler för enheter i botten av cellen eller separat
- exempel â sjĂ€lva enheterna (endast för ord)
Exempel av ord beskriver ordbok â ett separat subsystem bestĂ„ende av samma sex nivĂ„er.
Den talande komponenten i sprĂ„ket C Ă€r ganska uppenbar, Ă€ven om den fortfarande förtjĂ€nar en beskrivning. Ă andra sidan Ă€r den kommandodel av sprĂ„ket just relaterad till hantering av kompilering, dĂ€r en tredje typ av program skapas â kommandoprogrammet. HĂ€r kommer vi till den mest fĂ€ngslande sidan av sprĂ„ket C â skönheten.
4. EFTERFĂLJANDE KAPITEL. Vacker C
C-sprÄket ligger till grund för modern programmering. Varför? För det första pÄ grund av att det bÀst motsvarar sprÄket. För det andra, eftersom det elegant kringgÄr begrÀnsningarna i maskinell behandling av tal.
Vad föreslog C? Typ och lager.
Ordet "typ" Ă€r en översĂ€ttning av det engelska ordet "type", vilket hĂ€rstammar frĂ„n det grekiska "prototyp" â "förbild". I svenskan fĂ„ngar inte ordet "typ" helt innebörden av det uttryckta begreppet, utan blandas dessutom med den funktionella betydelsen "slag".
Ursprungligen löste typ en rent maskinell uppgift för berÀkning, men blev sedan en startbana för födelsen av objektorienterade sprÄk.
Lager löste omedelbart flera problem â bĂ„de maskinella och tillĂ€mpningsbaserade. DĂ€rför börjar vi med att se pĂ„ en uppgiftsorienterad typ och gĂ„r vidare till ett flertalslager.
En av de obehagliga aspekterna av historisk programmering Ă€r att de flesta begrepp, inklusive grundlĂ€ggande, ges utan definitioner. "ProgrammeringssprĂ„ket (namnet pĂ„ floder) har ett heltal och ett flyttal ..." â och sĂ„ fortsatte man vidare. Vad som menas med "typ" (typ) â behöver inte definieras, eftersom författarna sjĂ€lva inte helt förstĂ„r det och ska "klargöra". Om de trycks mot vĂ€ggen, sĂ„ ger de en otydlig och vĂ€rdelös definition. Det hjĂ€lper mycket att gömma sig bakom utlĂ€ndska ord: för ryska författare Ă€r det bakom engelska (typ), för engelsmĂ€nnen bakom franska (subroutine), grekiska (polymorfism), latinska (inkapsling) eller deras kombinationer (polymorfism ad-hoc).
Men detta Àr inte vÄrt öde. VÄrt val Àr definitioner med lyft visir pÄ ren ryska.
Typ
Typ Àr ett förbildande namn pÄ storheten, som definierar 1) de egna egenskaperna hos storheten och 2) valet av operationer för storheten.
Ordet "typ" (slag) motsvarar den första delen av definitionen: "egna egenskaper hos storheten". Men den huvudsakliga innebörden av typen ligger i den andra delen: "valet av operationer för storheterna."
UtgÄngspunkten för att införa typ i C-sprÄket Àr vanlig berÀkning, till exempel addition.
Pappers matematik, skriven för hand eller tryckt, gör inget sÀrskilt Ätskiljande mellan typer av tal, vanligtvis antas de vara reella. DÀrför Àr deras bearbetningsoperationer entydiga.
Maskinell Matematik delar strikt upp tal i hela och brÄktal. Olika typer av tal lagras pÄ olika sÀtt i minnet och behandlas av olika instruktioner i processorn. Till exempel Àr instruktionerna för addition av hela och brÄktal tvÄ olika instruktioner, som motsvarar tvÄ olika processorenheter. Men det finns ingen instruktion för att addera heltal och brÄktal.
TillÀmpad matematik, det vill sÀga programmeringssprÄket C, delar upp typer av tal men förenar operationer: addition för hela och/eller brÄktal anges med en och samma operator.
En tydlig definition av begreppet form gör att man ocksÄ kan prata tydligt om tvÄ andra begrepp: störrelse och operation.
Störrelse och operation
Störrelse â det behandlade talet.
Operation â bearbetning av de ursprungliga storheternas vĂ€rden (argument) för att fĂ„ det slutliga talet (resultatet).
Störrelse och operation Ă€r sammanlĂ€nkade. Varje operation Ă€r en storlek, eftersom den har ett numeriskt resultat. Varje storlek Ă€r resultatet av att vĂ€rdet överförs till en processorregister/frĂ„n processorn, det vill sĂ€ga â resultatet av operationen. Trots denna koppling Ă€r det fortfarande viktigt att kunna beskriva dem separat, Ă€ven om det innebĂ€r att upprepa ett och samma ord i olika delar av ordförrĂ„det, vilket ocksĂ„ sker i ma3.
Den maskinella ansatsen delade alla tal som en programmerare anvÀnder i kommandon och data. Tidigare var bÄde och bÄde just tal, till exempel skrevs instruktioner med numeriska koder. Men i tillÀmpade sprÄk slutade instruktioner att vara tal och blev ord och operationssymboler.. Endast "data" förblev tal, men det Àr absurt att fortsÀtta kalla dem sÄ, eftersom nÀr man gÄr frÄn maskinens till den matematiska synvinkeln Àr tal storheter som delas in i ursprungliga (data) och slutliga (sökta). "OkÀnt data" skulle lÄta dumt.
Instruktionerna delades ocksÄ upp i tvÄ typer av handlingar: matematiska och tjÀnstehandlingar. Matematiska handlingar Àr operationer. Vi Äterkommer till tjÀnstehandlingar senare.
I programmeringssprÄk som C blir de vanliga papper- och maskinbaserade entydiga, eller enskilda, matematiska operationerna nÀstan alla flerdimensionella.
Flerdimensionella operationer â flera identiska operationer med olika former av argument och olika, men liknande, handlingar.
Hela argument motsvarar en hel operation, decimaler â en decimal. Denna skillnad Ă€r sĂ€rskilt tydlig vid division, nĂ€r uttrycket 1/2 ger resultatet 0, istĂ€llet för 0,5. Denna skrivning följer inte reglerna för papirmatematik, men C-sprĂ„ket strĂ€var inte efter att följa dem (till skillnad frĂ„n Fortran) â det spelar efter sina tillĂ€mpnings regler.
Vid blandning av heltal och decimaler aktiveras det enda korrekta konvertering av argumentvĂ€rden â en urvalstransformering av vĂ€rdet frĂ„n en form till en annan. Verkligen, vid addition av ett helt och ett decimaltal blir resultatet â ett decimaltal, sĂ„ operationens form vĂ€ljer konvertering av det hela argumentet till ett decimalt vĂ€rde.
En rad operationer förblir inte flera, och enkla. SĂ„dana operationer definieras endast för en typ av argument: resten av divisionen â hela argument, maskininlĂ€ggning (bitoperationer) â naturliga heltal. Ma3 indikerar mĂ„ngfalden av operationer med tecken (#^) som anger de former för vilka operationen Ă€r definierad. Detta Ă€r en viktig, men tidigare förbisedd egenskap hos varje operation.
Alla funktioner Ă€r godtyckliga enkla operationer. Undantaget Ă€r operatörer â parentesfria funktioner, inbyggda i sprĂ„ket (ursprungliga operationer).
BistÄnd
BistĂ„nd â en Ă„tgĂ€rd som Ă€r kopplad till operationen.
Om man betraktar operationen som en huvudÄtgÀrd, kan man utpeka tvÄ assisterande ÄtgÀrder som stöder operationen och skiljer sig frÄn den. Dessa Àr 1) kontroll av variabeln och 2) underordning. Denna ÄtgÀrd kallas bistÄnd.
HÀr bör vi avvika och sÀrskilt nÀmna de ryska översÀttningarna av lÀroböcker inom programmering. I texten K/R infördes ett nytt ord för att beskriva ÄtgÀrder statement (uttryck), vilket gjorde ett försök att separera begreppen maskinkommandon i olika ÄtgÀrder: 1) operation, 2) deklaration och 3) underordning (som kallas "kontrollstrukturer"). Detta försök begravdes av ryska översÀttare, som bytte ut "uttryck" mot "operatör", vilket:
- blev en synonym till den maskinella termen "kommando",
- visade sig vara en synonym till frasen "ÄtgÀrdstecken",
- och fick Àven ett obegrÀnsat antal ytterligare betydelser. Det blev alltsÄ en liknelse till den engelska artikeln "uhh...".
LÄt oss betrakta de följande ÄtgÀrderna, eller bistÄnd.
Kontroll av variabeln
Kontroll av variabeln (UP) â skapande/ta bort variabelceller.
UP sker implicit vid deklaration av en variabel, vilket redan skrivs av en annan anledning â för att ange mĂ€ngden. Endast en typ hanteras uttryckligen. extra variabler genom funktionerna malloc() och free().
Det bör nĂ€mnas att implicita Ă„tgĂ€rder Ă€r bekvĂ€mare att skriva, eftersom det överhuvudtaget inte krĂ€ver nĂ„got att skriva, men svĂ„rare att förstĂ„ â de Ă€r svĂ„rare att beakta och tolka.
Underordning
Underordning â koppling/avkoppling av skiktavsnitt.
SprĂ„ket C föreslog ett applicerbart sĂ€tt att styra ordningen av Ă„tgĂ€rder â underordning, vilket Ă„terspeglar och utvecklar en sammansatt mening med tydlig uppdelning mellan huvuddel (underordnad mening) och bisats (avsnitt av nivĂ„/subprogram).
SÄvÀl deklaration som underordning Àr helt och hÄllet byggda pÄ begreppet skikt.
Skikt
Skikt â Ă€r en begrĂ€nsad enskiktsvaluppsĂ€ttning av uttryck.
Skiktet har tydligt och implicit tagit pÄ sig flera uppgifter samtidigt:
- ordning av programmet,
- begrÀnsning av namns synlighet (implicit),
- hantering av variabler (minnesceller) (implicit),
- bestÀmning av bisatsavsnitt för underordning,
- definiera funktioner och samlingar och andra.
I maskinsprĂ„k fanns det inte nĂ„got begrepp om skikt, dĂ€rför dök det inte upp i K/R, och om nĂ„got inte fanns dĂ€r â skulle det vara en heresi och otĂ€nkbarhet att införa det i efterföljande böcker. DĂ€rför dök begreppet skikt aldrig upp överhuvudtaget, Ă€ven om det Ă€r extremt anvĂ€ndbart och ganska uppenbart.
Utan skikt Ă€r det omöjligt att kort och klart förklara mĂ„nga Ă„tgĂ€rder och regler för programmet. Till exempel, varför en enkel goto â som en treöring â Ă€r dĂ„lig, medan en komplicerad while Ă€r bra. Man kan bara maktlöst klaga, som Dijkstra gjorde (âprogrammerares kvalifikation â en funktion som omvĂ€nt beror pĂ„ hur ofta goto-operatorer anvĂ€nds i deras programâ. Kort sagt, bara idioter anvĂ€nder goto. BevisnivĂ„ â Gud.) Visserligen Ă€r detta inte sĂ„ farligt om dina böcker överhuvudtaget inte behöver förklara nĂ„got, men som vi redan sagt, Ă€r det inte vĂ„rt öde.
Förresten kan man anta att Den Ritchie lÀmnade kvar goto som en nyckel för att söka efter ett visst obestÀmt begrepp, eftersom det inte fanns nÄgot behov eller skönhet i uttrycket goto. Men det fanns ett behov av en enkel och tydlig förklaring av de nya principerna i sprÄket, som Ritchie inte ville ge, och som just bygger pÄ begreppet. skikt.
Avvikelse
Avvikelse â en förĂ€ndring av de vanliga egenskaperna hos det nya namnet.
Den mest viktiga avvikelsen Àr just relaterad till programmets lagrade egenskaper, och beskrivs med ett ord "static", som har olika betydelser i varje typ av lager.
5. SISTE KAPITEL. Gemensamma tillÀmpningssprÄk
TillĂ€mpningssprĂ„k Ă€r formliga sprĂ„k (som har en form, "typade"). De grundar sig pĂ„ explicit eller implicit anvĂ€ndning av formen. HĂ€r uppstĂ„r Ă„terigen en motsĂ€gelse: en explicit form â mer begriplig, men mindre praktisk, och vice versa.

(Tabellens layout finns inte Àn, sÄ tabellen ges som en bild.)
Efter C:s utveckling gick tillĂ€mpningssprĂ„ken mot en ökning av deras formlighet. Den mest betydelsefulla för att förstĂ„ den höga graden av formlighet Ă€r den direkta efterkomman till C â sprĂ„ket C++. Det utvecklar idĂ©n om godtycklig tilldelning av operationer till vĂ€rden och förverkligar den baserat pĂ„ den C-liknande uttryckstilldelningen, vilken fĂ„r det nya namnet â objekt. Men C++ Ă€r inte lika kortfattat och uttrycksfullt som C, pĂ„ grund av överbelastning av nya typer av tilldelning och de regler som Ă€r kopplade till dem. Förresten, lĂ„t oss prata om "överbelastning".
Ăverbelastning och polymorfism
Ordet "överbelastning" (overload) Àr en förÄldrad term frÄn den maskinella metoden, som betecknar skapandet av flera operationer.
Maskinprogrammerarnas (systemprogrammerare) mÄngfald av operationer kunde mycket vÀl irritera: "Vad betyder den hÀr symbolen (+): addition av heltal, addition av brÄktal eller rent av förskjutning?! PÄ vÄr tid skrev vi inte sÄ hÀr!" DÀrifrÄn kommer den negativa tonen i det valda ordet ("överdrift", "trött pÄ"). För en tillÀmpningsprogrammerare Àr flera operationer hörnstenen, den viktigaste prestationen och arvet frÄn C-sprÄket, sÄ naturliga att de ofta inte ens uppfattas.
I sprĂ„ket C++ mĂ„ngfald spridningen har pĂ„verkat inte bara grundoperationer utan ocksĂ„ funktioner â bĂ„de separata och gemensamma i klasser â metoder. Tillsammans med flera metoder kom möjligheten till deras överskrivning i utvidgade klasser, vilket otydligt har kallats för "polymorfism". Kombinationen av polymorfism och överbelastning gav en explosiv blandning som delades upp i tvĂ„ typer av polymorfism: "Ă€kte" och "ad-hoc". Att förstĂ„ detta kan bara göras trots de tilldelade namnen. UtlĂ€ndska namn har banat vĂ€g till ad.
En deklaration av typen "överbelastning" uttrycks bĂ€ttre med ordet övedecklaration â en tillĂ€ggsdeklaration av en funktion med samma namn men med argument av annan typ.
En deklaration av typen "polymorfism" bör bĂ€ttre kallas för överskrivning â en överskrivande deklaration i ett nytt utvidgande lager av en funktion med samma namn men med argument av samma typ.
DĂ„ blir det lĂ€tt att förstĂ„ att metoder med samma namn men olika typer (argument) â övedecklas, medan ett och samma typ â överskrivs.
Ryska ord löser problemet.
Startbana
ĂvervĂ€gandet av begrepp inom högtypade sprĂ„k bekrĂ€ftar vikten av att tydligt definiera grundlĂ€ggande begrepp. Med en rĂ€tt beskriven C kommer studier av högtypade sprĂ„k att bli lĂ€tta och trevliga.
Speciellt viktigt Ă€r det för implicita högtypade sprĂ„k (PHP, JavaScript). För dem blir betydelsen av objekt (sammanstĂ€llda typer) Ă€nnu mer framtrĂ€dande Ă€n i C++, men sjĂ€lva begreppet typ blir otydligt och svĂ„rt att fĂ„ grepp om. Ur bekvĂ€mlighetssynpunkt har de blivit enklare, men ur förstĂ„else synpunkt â svĂ„rare.
DÀrför bör studiet av programmeringssprÄk inledas med sprÄket C och gÄ vidare i den ordning som sprÄken i C-familjen uppstod.
Detta gÀller ocksÄ beskrivningen av sprÄk. Olika sprÄk har en överlappande eller mindre uppsÀttning typer Àn C. Antalet typer och exempel kan variera Ät bÄda hÄll: C++ har fler typer Àn C, medan JavaScript har fÀrre.
SprĂ„ket MySQL förtjĂ€nar sĂ€rskild omtanke. Tyckas vara â inget gemensamt, men det kan enkelt beskrivas med Matryoshka, och att lĂ€ra kĂ€nna det blir snabbare och enklare. Vad som Ă€r viktigt, med tanke pĂ„ dess betydelse för webben â den centrala vĂ€gen inom modern programmering. Och dĂ€r MySQL finns, finns Ă€ven andra SQL. Ja, och alla möjliga Fortran-Pascal-Python beskriver ocksĂ„ Matryoshka, sĂ„ snart tid finns.
SĂ„ det vĂ€ntar stora saker pĂ„ oss â en praktisk beskrivning av sprĂ„ket C och en enhetlig beskrivning av de följande sprĂ„ken. "VĂ„ra mĂ„l Ă€r klara, uppgifterna bestĂ€mda. LĂ„t oss arbeta, kamrater! (Vilt, lĂ„ngvarigt applĂ„derande som övergĂ„r i en ovation. Alla reser sig.)"
Era Äsikter kommer att lyssnas pÄ med stort intresse, ert bidrag till skapandet av webbplatsen för matrjosjkor kommer att tas emot med stort tack. Mer utförlig information om boken finns pÄ en webbplats, smart gömd i matrjosjkans C.
KĂ€lla: habr.com
