Matryoshka C. Tavoligita programlingva sistemo

Ni provu imagi kemion sen la Perioda Tabelo de Mendelejev (1869). Kiom da elementoj devis esti memoritaj, kaj en neniu aparta ordo... (Tiam - 60.)

Por fari tion, nur pensu pri unu aŭ pluraj programlingvoj samtempe. Samaj sentoj, sama krea kaoso.

Kaj nun ni povas revivi la sentojn de kemiistoj de la XNUMX-a jarcento, kiam oni proponis al ili ĉiujn siajn sciojn, kaj iom pli, en unu Perioda Tabelo.

Matryoshka C. Tavoligita programlingva sistemo


La libro "Matryoshka C. Tavoligita sistemo de programlingvo" prezentas ĉiujn unuojn de la C-lingvo per unu ekrigardo. Ĉi tio permesas vin organizi ilin, korekti malmodernajn informojn kaj eĉ klarigi la koncepton mem de la programo.

Hodiaŭ, programado de informoj bezonas sistemigon eĉ pli ol antaŭ 150 jaroj de kemiaj elementoj.

La unua neceso estas instruado. Mendelejev komencis krei sian sistemon kiam li alfrontis la demandon, per kiu elemento komenci prelegi: O, H, N, Li, Au... Samtempe estis pli facile por li - li instruis kemion al la plej bonaj - studentoj de Peterburga Universitato. Programado jam estas instruata en la lernejo kaj baldaŭ komenciĝos en infanĝardeno.

La dua bezono estas scienca aliro. Helpe de la Perioda Tabelo, novaj elementoj estis malkovritaj kaj informoj pri malnovaj estis korektitaj. Ŝi helpis krei la modelon de la atomo (1911). Kaj tiel plu.

La tria bezono estas klarigi la koncepton de programo.

Moderna programado havas unu piedon blokita en la 50-aj jaroj de la XNUMX-a jarcento. Tiam, programoj estis simplaj, sed maŝinoj kaj maŝinlingvoj estis kompleksaj, do ĉio turnis ĉirkaŭ maŝinoj kaj lingvoj.

Nun ĉio estas inverse: programoj estas kompleksaj kaj primaraj, lingvoj estas simplaj kaj malĉefaj. Ĉi tio nomiĝas la aplikata aliro, kiun ĉiuj ŝajnas koni. Sed studentoj kaj programistoj daŭre estas konvinkitaj, ke ĉio estas la sama.

Kiu revenigas nin al la unua prelego de Privatdozent Mendeleev. Kion diri al unuajaruloj? Kie estas la vero? Tio estas la demando.

La libro "Matryoshka C" proponas sian respondon al ĉi tiu demando. Tavoligita sistemo de programlingvo". Krome, ĝi estas adresita ne nur al studentoj, sed ankaŭ al trejnitaj programistoj, ĉar estas ili, tio estas, ni, kiuj devas serĉi la veron kaj ŝanĝi la mondkoncepton.

Kio sekvas estas resumo de la libro.

1. Enkonduko

En 1969 kreiĝis la C-lingvo, kiu fariĝis la fundamenta programlingvo kaj tiel restas dum 50 jaroj. Kial ĉi tio estas tiel? Unue, ĉar C estas aplikita la lingvo kiu donis la programon humana vidu anstataŭe maŝino. Ĉi tiu atingo estis certigita de lingvoj de la C-familio: C++, JavaScript, PHP, Java, C# kaj aliaj. Due, ĝi estas mallonga kaj bela lingvo.

Tamen, la C-lingvo mem estas kutime miksita kun maŝina asemblero, tiel malfaciligante kaj distordante ĝian percepton. La alia ekstremo estas la altrudo de certa "filozofio" al la lingvo: procedura, objekto, funkcia, kompilita, interpretita, tajpita ktp. Ĉi tio aldonas emocion, sed ne helpas pli bone priskribi la lingvon.

La vero estas en la mezo, kaj por la C-lingvo ĝi estas strikte en la mezo inter filozofia kaj maŝina percepto.

La C-lingvo ne estas sendependa, ĝi obeas ordinaran skriblingvon, kaj samtempe ĝi regas la asemblan lingvon mem. Ĉi tiu pozicio priskribas Parolmodelo de la programo, laŭ kiu la programo estas dividita en tri malsuperajn tipojn: parolo, kodo, komando. La C-lingvo respondecas pri la dua, kodspeco.

Determininte la lokon de la lingvo en la programo, vi povas organizi informojn pri ĝi, kio faras Tavoligita programlingva sistemo, reprezentante la C-lingvon en la spirito de la perioda sistemo - sur unu paĝo.

La sistemo estas konstruita konsiderante komunumoj de aplikataj lingvoj, ekestiĝanta de ilia parolsubiĝo. Unu aro de Matrioŝkaj C-unuoj permesas vin priskribi kaj kompari malsamajn lingvojn, kreante serion da Matrioŝkoj: C++, PHP, JavaScript, C#, MySQL, Python ktp. Estas digne kaj ĝuste, ke malsamaj lingvoj estas priskribitaj per unuoj de la fundamenta lingvo.

2. ĈAPITRO 1. Parolmodelo de la programo. Klara C

La unua ĉapitro prezentas parolmodelo de la programo, reflektante aplikatan aliron. Laŭ li, la programo havas tri evidentajn sinsekvajn tipojn:

  1. parolado - rekta parolado de la programisto solvanta la problemon,
  2. kodita - kodi solvon en matematikan formon en C-lingvo (aŭ ajna alia)
  3. and command - rektaj maŝinaj komandoj.

La parolmodelo klarigas kial C estas simpla kaj komprenebla lingvo. Xi estas konstruita laŭ la bildo kaj simileco de homa parolo kiu estas konata al ni.

La unua speco de programo estas la rekta parolado de la programisto. Parolado respondas al homa pensado. Komencantaj programistoj verkas programojn uzante parolon - unue en la rusa, poste paŝon post paŝo tradukante la agojn en kodlingvon. Kaj ĝuste sur tiu ĉi modelo estis kreita la C-lingvo.

La konkludoj de la programisto, esprimitaj en parolado, estas konvertitaj en kodigitan nombran formon. Ĉi tiu transformo devus esti nomita reflekto, ĉar parolo kaj kodo havas la saman naturon (reflektado - naskiĝo - sekso). Ĉi tio estas sufiĉe evidenta se ni komparas la parolspecojn (maldekstre) kaj kodon (dekstre) de la programo.

Matryoshka C. Tavoligita programlingva sistemo

Estas kurioze, ke pripensado okazas tre simple – kun nur du specoj de esprimoj.

Tamen la moderna priskribo de la C-lingvo (el 1978) ne enhavas sufiĉan liston de nomoj nek por priskribi la lingvon ĝenerale, nek por la pripensotasko aparte. Sekve, ni estas devigitaj krei ĉi tiujn nomojn.

La elekto de vortoj devas esti preciza kaj klara. Tio postulis specialan aliron, mallonge esprimitan jene: strikta uzo de la gepatra lingvo. Por la angloj estus la angla, sed ni ne estas angloj. Do ni uzos kion ni havas kaj provos paroli la rusan.

Reflektado estas farita per du specoj de esprimoj:

  1. kalkulo (HF) - reflektas ŝanĝon en la propraĵoj de objekto. La eco de objekto estas esprimita per nombro, tiam ago sur eco estas ago sur nombro - operacio.
  2. subordigo (Pch) - reflektas ŝanĝon en la ordo de agoj. La prototipo de Pch estas parolkompleksa frazo, tial la plej multaj specoj de Pch komenciĝas per subordigaj konjunkcioj "se", "alie", "dum", "por". Aliaj specoj de komputiloj kompletigas ilin.

Cetere, ĉu vi povas kredi, ke en la C-priskribo ne estas nomo por kalkulesprimoj - ili estas simple nomataj "esprimoj"? Post tio, ne plu estos surprize, ke ne ekzistas nomo kaj asocio por la tipo de subordigo, kaj ja la manko de nomoj, difinoj kaj ĝeneraloj ĝenerale. Ĉi tio estas ĉar la fama K/R ("La C Lingvo", Kernighan/Ritchie, 1978) ne estas priskribo, sed gvidilo por uzi la lingvon.

Tamen mi ankoraŭ ŝatus havi priskribon de la lingvo. Tial li estas oferata Tavoligita programlingva sistemo.

3. ĈAPITRO 2. Tavolsistemo. Mallonga C

Ajna priskribo devas esti preciza kaj ekstreme konciza. En la kazo de programlingvo, fronta priskribo estas malfacila.

Jen ni havas programon. Ĝi konsistas el moduloj. Moduloj konsistas el subrutinoj kaj kolektoj (strukturo). Subrutinoj konsistas el individuaj esprimoj: deklaroj, kalkuloj, subordigo. Estas ĝis dek specoj de subordigo. Subordigo ligas subnivelojn kaj subrutinojn. Estas ankaŭ pluraj reklamoj. Tamen, deklaroj estas inkluzivitaj ne nur en subrutinoj kaj subniveloj, sed ankaŭ en moduloj kaj kolektoj. Kaj la plej multaj esprimoj konsistas el vortoj, kiuj estas tiel malfacile priskribeblaj, ke ili kutime estas simple donitaj en du listoj - originalaj kaj derivitaj vortoj, kun kiuj vi konatiĝos dum la lernado kaj uzo de la lingvo. Ni aldonu interpunkciajn signojn kaj kelkajn aliajn esprimojn al tio.

En tia prezento, ne estas facile kompreni kiu staris sur kiu.

Rekta hierarkia aliro al priskribado de lingvo estus tro kompleksa. Trafikcirka serĉo kondukas al priskribo de lingvo bazita sur ĝia parolnaturo kaj komanda flanko. Tiel, la Tavola Sistemo naskiĝis, parte koincidante kun la Perioda Sistemo de Mendelejev, kiu ankaŭ estas ŝtofo. Kiel ĝi rezultis 42 jarojn post sia publikigo (1869), la periodeco de la sistemo estas rilata al elektronika tavoloj (1911, Bohr-Rutherford modelo de la atomo). Ankaŭ, la Tavoligitaj kaj Periodaj sistemoj estas similaj en la tabela aranĝo de ĉiuj unuoj sur unu paĝo.

La priskribo de lingvaj unuoj estas mallonga - nur 10 specoj de esprimoj kaj 8 specoj de aliaj unuoj, same kiel signifoplenaj kaj vidaj. Kvankam nekutima por la unua konato.

Lingvaj unuoj estas dividitaj en 6 nivelojn:

  1. unuoj - tabelaj vicoj
  2. fakoj - specialaj grupoj de genroj (partoj de la unua linio)
  3. genro - ĉeloj (ĉefa nivelo de divido)
  4. superspecio - speciapartigiloj (malofta nivelo)
  5. tipoj - unuoformuloj ĉe la fundo de la ĉelo aŭ aparte
  6. ŝablonoj - la unuoj mem (nur por vortoj)

Ekzemplaj vortoj priskribas vortfarado - aparta subsistemo konsistanta el la samaj ses niveloj.

La parolkomponento de la C-lingvo estas sufiĉe evidenta, kvankam ĝi ankoraŭ meritas priskribon. Sed la komanda parto de la lingvo ĝuste rilatas al kompila kontrolo, dum kiu kreiĝas la tria speco de programo - komando. Jen ni venas al la plej ekscita aspekto de la C-lingvo: beleco.

4. SENKAJ ĈAPITROJ. Bela Si

La C-lingvo estas la bazo de moderna programado. Kial? Unue, pro la plej granda korespondado al parolado. Due, ĉar ĝi bele preterpasis la limojn de maŝina nombro-pretigo.

Kion precize Xi proponis? Bildo kaj tavolo.

La vorto "bildo" estas traduko de la angla vorto "type", kiu devenas de la greka "prototype" - "type". En la rusa lingvo, la vorto "tipo" ne peras la bazŝtonon de la esprimita koncepto; krome, ĝi estas konfuzita kun la helpa signifo "tipo".

Komence, la bildo solvis pure maŝinan kalkulproblemon, kaj poste fariĝis startleno por naskiĝo de objektolingvoj.

La tavolo tuj solvis plurajn problemojn - kaj maŝinajn kaj aplikatajn. Tial la konsidero komenciĝos per unu-taska bildo kaj pluiros al plurtaska tavolo.

Unu el la malagrablaj trajtoj de historia programado estas ke la plej multaj konceptoj, inkluzive de bazaj, estas donitaj sen difinoj. "La programlingvo (nomo de riveroj) havas entjerajn kaj flosajn nombrospecojn..." kaj ili skrapis plu. Ne necesas difini, kio estas "tipo" (bildo), ĉar la aŭtoroj mem ne plene komprenas tion kaj silentigos ĝin "por klareco". Se ili estas alpinglitaj al la muro, ili donos malklaran kaj senutilan difinon. Multe helpas kaŝi sin malantaŭ fremdaj vortoj: por rusaj aŭtoroj - malantaŭ la angla (tipo), por angloj - malantaŭ la franca (subrutino), la greka (polimorfismo), la latina (enkapsuligo) aŭ iliaj kombinaĵoj (ad-hoc polimorfismo).

Sed ĉi tio ne estas nia destino. Nia elekto estas difinoj kun levita viziero en pura rusa.

Bildo

Bildo estas antaŭfigura nomo de kvanto, difinante 1) la internajn ecojn de la kvanto kaj 2) la elekton de operacioj por la kvanto.

La vorto "tipo" (tipo) respondas al la unua parto de la difino: "internsekaj ecoj de kvanto." Sed la ĉefa signifo de la bildo estas en la dua parto: "elekto de operacioj al kvantoj."

La deirpunkto por enkonduki bildon en C estas normala kalkulo, kiel la aldonoperacio.

Papero Matematiko, ĉu skribite permane aŭ presita, ne faras multe da distingo inter specoj de nombroj, kutime supozante ke ili estas realaj. Tial, iliaj pretigaj operacioj estas malambiguaj.

Maŝino Matematiko strikte dividas nombrojn en entjerojn kaj frakciojn. Malsamaj specoj de nombroj estas stokitaj alimaniere en memoro kaj prilaboritaj per malsamaj procesorinstrukcioj. Ekzemple, la instrukcioj por aldono de entjeroj kaj frakcioj estas du malsamaj instrukcioj egalrilatantaj al du malsamaj procesornodoj. Sed ne ekzistas komando por aldoni entjerajn kaj frakciajn argumentojn.

Aplikita matematiko, tio estas la C-lingvo, apartigas la specojn de nombroj, sed kombinas operaciojn: aldono por entjeroj kaj/aŭ frakcioj estas skribita kun unu agosigno.

Klara difino de la konceptobildo permesas al ni definitive paroli pri du aliaj konceptoj: grando и operacio.

Grando kaj funkciado

La kvanto — la nombro prilaborata.

Funkciado — prilaborado de la valoroj de la komencaj valoroj (argumentoj) por akiri la finan nombron (totala).

Grando kaj operacio estas interrilataj. Ĉiu operacio estas kvanto ĉar ĝi havas nombran rezulton. Kaj ĉiu valoro estas la rezulto de transdono de valoro al/de la procesora registro, tio estas, la rezulto de la operacio. Malgraŭ ĉi tiu rilato, la ĉefa afero estas la ebleco de ilia aparta priskribo, kvankam kun la ripeto de unu vorto en malsamaj sekcioj de la vortaro, kio okazas en MA3.

La maŝinaliro dividis ĉiujn nombrojn uzitajn fare de la programisto en ordonas и la datumoj. Antaŭe, ambaŭ el ili estis nombroj, ekzemple, komandoj estis skribitaj en nombraj kodoj. Tamen, en aplikataj lingvoj, ordonoj ĉesis esti nombroj kaj fariĝis per vortoj и agaj signoj. Nur "datenoj" restas kiel nombroj, sed estas absurde daŭre nomi ilin tiel, ĉar en la transiro de maŝino al matematika vidpunkto, nombroj estas kvantoj, kiuj estas dividitaj per la originalo (la datumoj) kaj fina (postulata). "Nekonata datumo" sonos stulte.

La teamoj ankaŭ estis dividitaj en du specojn de agoj: matematika kaj servo. Matematikaj agoj - operacioj. Ni venos al la oficialaj aferoj poste.

En la C-lingvoj, la kutimaj paperaj kaj maŝinoj malambiguaj, aŭ unuopaj, matematikaj operacioj preskaŭ universale fariĝas multoblaj.

Multoblaj operacioj estas pluraj samnomaj operacioj kun malsamaj specoj de argumentoj kaj malsamaj, similaj laŭ signifo, agoj.

Entjeraj argumentoj egalrilatas al tuta operacio, kaj frakciaj argumentoj egalrilatas al frakcia operacio. Ĉi tiu diferenco estas precipe klara dum la divida operacio, kiam la esprimo 1/2 donas entute 0, ne 0,5. Tia skribmaniero ne respondas al la reguloj de papera matematiko, sed la lingvo C ne klopodas plenumi ilin (malsame ol Fortran) - ĝi ludas laŭ sia propra aplikita reguloj.

En la kazo de miksado de entjeroj kaj frakcioj, la nura ĝusta estas inkluzivita ĵetante argumentajn valorojn — elektema transformo de valoro de unu bildo al alia. Efektive, kiam oni aldonas entjeron kaj frakcian nombron, la rezulto estas frakcia, do la bildo de la operacio kaptas la operacio de konvertado de entjera argumento al frakcia valoro.

Kelkaj operacioj restas multoblajkaj ununura. Tiaj operacioj estas difinitaj nur por unu speco de argumentoj: divido-resto - entjeraj argumentoj, stakiĝo (bitbitoperacioj) - naturaj entjeroj. Ma3 indikas la multecon de operacioj kun signoj (#^) indikante la bildojn por kiuj la operacio estas difinita. Ĉi tio estas grava sed antaŭe preteratentita posedaĵo de ĉiu operacio.

Ĉiuj funkcioj estas arbitraj unuoperacioj. La escepto estas la funkciigistoj - ne-krampoj funkcioj, konstruita en la lingvon (originalaj operacioj).

Helpo

Helpo - ago akompananta la operacion.

Se ni konsideras la operacion kiel la ĉefan agon, tiam ni povas distingi du akompanantajn, kiuj provizas la operacion kaj diferencas de ĝi. Ĉi tiuj estas 1) varia kontrolo kaj 2) subordigo. Ĉi tiu ago nomiĝas helpo.

Ĉi tie ni devas deturni kaj diri aparte pri rusaj tradukoj de programaj lernolibroj. Nova vorto estis enkondukita en la teksto de la K/R por registri agojn komunikaĵo (esprimo), kiu provis dividi la konceptojn de maŝinkomando en malsamajn agojn: 1) operacio, 2) deklaro, kaj 3) subigo (nomitaj "kontrolkonstruaĵoj"). Ĉi tiu provo estis enterigita de rusaj tradukistoj, anstataŭigante "esprimon" kun la vorto "funkciigisto", kiu:

  1. fariĝis sinonima kun la maŝinvorto "komando",
  2. montriĝis sinonima kun la frazo "signo de ago",
  3. kaj ankaŭ ricevis senliman nombron da aldonaj valoroj. Tio estas, ĝi fariĝis io simila al la angla artikolo "uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"

Konsideru la akompanajn agojn, aŭ helpo.

Varia kontrolo

Varia kontrolo (SUPREN) - kreante/forigante variajn ĉelojn.
UE okazas implicite kiam oni deklaras variablon, kiu jam estas skribita pro alia kialo - por indiki la bildon de la valoro. Nur unu vido estas eksplicite administrita pliaj variabloj uzante la funkciojn malloc() kaj free().

Oni devas rimarki, ke implicaj agoj estas pli oportunaj por skribi, ĉar ili tute ne postulas skribi ion, sed ili estas pli malfacile kompreneblaj - ili estas pli malfacile konsidereblaj kaj interpreteblaj.

Subigo

Subigo — konekti/malŝalti tavolsekciojn.

La C-lingvo ofertis aplikatan metodon de kontrolado de la ordo de agoj, diferenca de asemblero - subigo. Ĝi reflektas kaj disvolvas parolkompleksan frazon kun klara divido en la ĉefparton (subfrazo) kaj la malsuperan parton (subnivelaj/subrutinaj sekcioj).

Kaj deklaro kaj submetiĝo estas tute konstruitaj sur la koncepto tavolo.

Tavolo

Tavolo estas limigita ununivela selektema aro de esprimoj.

La tavolo eksplicite kaj implicite akceptis plurajn taskojn samtempe:

  1. organizante la programon
  2. limigante la videblecon de nomoj (implicite),
  3. administrado de variabloj (memorĉeloj) (implica),
  4. difino de malĉefaj propozicioj por subigo,
  5. difinoj de funkcioj kaj elektoj kaj aliaj.

Ne ekzistis koncepto de tavolo en maŝinlingvoj, do ĝi ne aperis en K/R, kaj se io ne estis tie, tiam enkonduki ĝin en postajn librojn estus herezo kaj liberpenso. Tial la koncepto de tavolo tute ne aperis, kvankam ĝi estas ege utila kaj sufiĉe evidenta.

Sen tavolo, estas neeble mallonge kaj klare klarigi multajn el la agoj kaj reguloj de la programo. Ekzemple, kial goto estas tiel simpla kiel tri kopekoj malbona, kaj la malfacila dum estas bona. Vi povas nur senhelpe ĵuri, kiel faris Dijkstra ("la lerteco de programistoj estas funkcio kiu inverse dependas de la ofteco de apero de goto-deklaroj en iliaj programoj." Mallonge, nur kaproj uzas goto. La nivelo de pravigo estas Dio.) Vere, ĉi tio ne estas tiom timiga se viaj libroj Ni tute ne devas klarigi ion, sed, kiel ni jam diris, ĉi tio ne estas nia destino.

Cetere, oni povas supozi, ke Dan Ritchie forlasis goto ĝuste kiel ŝlosilon por serĉi iun nenomitan koncepton, ĉar ne estis bezono aŭ beleco en la esprimo goto. Sed necesis simpla kaj komprenebla klarigo pri la novaj lingvoprincipoj, kiujn Richie mem ne volis doni, kaj kiuj ĝuste baziĝas sur la koncepto. tavolo.

Devio

Devio — ŝanĝante la kutimajn ecojn de la nova nomo.

La plej grava devio ĝuste rilatas al la tavolaj propraĵoj de la programo, kaj estas priskribita per unu vorto "senmova", kiu havas malsaman signifon en ĉiu tipo de tavolo.

5. LA LASTA ĈAPITRO. Komuneco de aplikataj lingvoj

Aplikataj lingvoj estas figura lingvoj (havanta bildon, "tajpitaj"). Ili baziĝas sur la eksplicita aŭ implica uzo de la bildo. Cetere, ĉi tie denove aperas kontraŭdiro: eksplicita bildo estas pli komprenebla, sed malpli oportuna, kaj inverse.

Matryoshka C. Tavoligita programlingva sistemo

(La tabelaranĝo ankoraŭ ne estis liverita, do la tabelo estas montrita kun bildo.)

Post C, la disvolviĝo de aplikataj lingvoj prenis la vojon pliigi ilian figurecon. La plej grava por kompreni altan bildojn estas la rekta posteulo de C - la lingvo C++. Li disvolvas la ideon de arbitra elekto de operacioj por kvantoj kaj enkorpigas ĝin surbaze de la sinteza esprima elekto, kiu ricevas novan nomon - objekto. Tamen, C++ ne estas tiel konciza kaj esprimplena kiel C pro la troŝarĝo de novaj kolektotipoj kaj iliaj rilataj reguloj. Cetere, ni parolu pri "troŝarĝo".

Troŝarĝado kaj polimorfismo

La vorto "troŝarĝo" estas malmoderna maŝinlernada termino por krei multoblaj operacioj.

Maŝinaj (sistemaj) programistoj plureco operacioj povus esti ĝenaj: “Kion signifas ĉi tiu signo (+): aldono de entjeroj, aldono de frakcioj aŭ eĉ movo?! En nia tempo ili ne skribis tiel!" Tial la negativa signifo de la elektita vorto ("troemo", "laca"). Por aplikaĵprogramisto, multoblaj operacioj estas la bazŝtono, la ĉefa atingo kaj heredaĵo de la C-lingvo, tiel naturaj ke ili ofte ne estas rekonitaj.

En C++-lingvo plureco etendiĝis ne nur al la originalaj operacioj, sed ankaŭ al funkcioj - kaj individuaj kaj kombinitaj en klasojn - metodoj. Kun multoblaj metodoj venis la kapablo superregi ilin en plilongigitaj klasoj, kiu estis vage nomita "polimorfismo." La kombinaĵo de polimorfismo kaj troŝarĝo produktis eksplodeman miksaĵon kiu dividiĝis en du polimorfismojn: "vera" kaj "ad-hoc". Tion eblas kompreni nur malgraŭ la asignitaj nomoj. La vojo al anonco estas pavimita per fremdaj nomoj.

Deklaro de la formo "troŝarĝo" estas pli bone esprimita en la vorto aldona anonco — aldonante deklaron de samnoma funkcio kun argumentoj de malsama bildo.

Deklaro de la formo "polimorfismo" estas pli bone nomata reanonco — koincida deklaro en nova etenda tavolo de samnoma funkcio kun argumentoj de la sama bildo.

Tiam estos facile kompreni, ke la samaj metodoj de malsamaj bildoj (argumentoj) - aldone anoncita, kaj unu bildo - reanoncita.

Rusaj vortoj decidas.

Runway

Konsidero de la konceptoj de tre figuraj lingvoj konfirmas la gravecon de klara difino de fundamentaj konceptoj. Kun C ĝuste priskribita, lerni altfigurajn lingvojn estos facila kaj agrabla.

Ĉi tio estas precipe grava por implicitaj tre figuraj lingvoj (PHP, JavaScript). Por ili, la graveco de objektoj (kunmetitaj bildoj) iĝas eĉ pli alta ol en C++, sed la koncepto mem de bildo fariĝas implica kaj evitebla. El la vidpunkto de oportuno, ili fariĝis pli simplaj, sed el la vidpunkto de kompreno, ili fariĝis pli malfacilaj.

Sekve, vi devus komenci lerni programlingvojn per la C-lingvo kaj movi plu en la ordo en kiu aperas la lingvoj de la C-familio.

La sama validas por priskribado de lingvoj. Malsamaj lingvoj havas la saman, aŭ pli malgrandan, aron de unuogenroj ol la C-lingvo. La nombro da tipoj kaj specimenoj povas malsami en ambaŭ direktoj: C++ havas pli da tipoj ol C, dum JavaScript havas malpli.

La MySQL-lingvo meritas specialan mencion. Ŝajnus, ke estas nenio komuna, sed li estas perfekte priskribita de Matrioŝka, kaj konatiĝi kun li fariĝas pli rapida kaj pli facila. Kio estas grava, pro sia graveco por la reto - la manĝvojo de moderna programado. Kaj kie estas MySQL, estas aliaj SQLoj. Nu, ĉiuj specoj de Fortran-Pascal-Pythons ankaŭ estas priskribitaj de Matrioŝko, tuj kiam ili ricevas la manojn sur ĝin.

Do, bonegaj aferoj atendas nin - aplikata priskribo de la C-lingvo kaj unuigita priskribo de la lingvoj, kiuj sekvas ĝin. “Niaj celoj estas klaraj, niaj taskoj estas difinitaj. Eklaboru, kamaradoj! (Ŝtorma, longedaŭra aplaŭdo, fariĝanta ovacio. Ĉiuj ekstaras.)"

Viaj opinioj estos aŭskultitaj kun granda atento, via helpo en kreado de la retejo de nestpupoj estos ricevita kun granda dankemo. Pli kompletaj informoj pri la libro troviĝas en la retejo, lerte kaŝita en Matryoshka C.

fonto: www.habr.com

Aldoni komenton