Matryoshka C. System iaith rhaglen haenog

Gadewch i ni geisio dychmygu cemeg heb Dabl Cyfnodol Mendeleev (1869). Sawl elfen oedd yn rhaid eu cadw mewn cof, heb fod mewn trefn benodol... (Yna - 60.)

I wneud hyn, meddyliwch am un neu sawl iaith raglennu ar unwaith. Yr un teimladau, yr un anhrefn creadigol.

Ac yn awr gallwn ail-fyw teimladau fferyllwyr y XNUMXeg ganrif pan gynigiwyd iddynt eu holl wybodaeth, ac ychydig mwy, mewn un Tabl Cyfnodol.

Matryoshka C. System iaith rhaglen haenog


Mae'r llyfr "Matryoshka C. System haenog o iaith rhaglen" yn cyflwyno cipolwg ar bob uned o'r iaith C. Mae hyn yn caniatáu ichi eu trefnu, cywiro gwybodaeth sydd wedi dyddio, a hyd yn oed egluro union gysyniad y rhaglen.

Heddiw, mae angen systemateiddio gwybodaeth rhaglennu hyd yn oed yn fwy nag y gwnaeth elfennau cemegol 150 mlynedd yn ôl.

Yr angenrheidrwydd cyntaf yw dysgeidiaeth. Dechreuodd Mendeleev greu ei system pan wynebodd y cwestiwn pa elfen i ddechrau darlithio gyda hi: O, H, N, He, Au... Ar yr un pryd, roedd yn haws iddo - bu'n dysgu cemeg i'r gorau - myfyrwyr Prifysgol St Petersburg. Ac mae rhaglennu eisoes yn cael ei ddysgu yn yr ysgol a bydd yn cychwyn yn fuan mewn kindergarten.

Yr ail angen yw dull gwyddonol. Gyda chymorth y Tabl Cyfnodol, darganfuwyd elfennau newydd a chywirwyd gwybodaeth am hen rai. Helpodd i greu'r model o'r atom (1911). Ac yn y blaen.

Y trydydd angen yw egluro'r cysyniad o raglen.

Mae gan raglennu modern un droed yn sownd yn 50au'r XNUMXfed ganrif. Yn ôl wedyn, roedd rhaglenni'n syml, ond roedd peiriannau ac ieithoedd peiriant yn gymhleth, felly roedd popeth yn troi o gwmpas peiriannau ac ieithoedd.

Nawr mae popeth y ffordd arall: mae rhaglenni'n gymhleth ac yn gynradd, mae ieithoedd yn syml ac yn eilradd. Gelwir hyn yn ddull cymhwysol, y mae pawb i bob golwg yn gyfarwydd ag ef. Ond mae myfyrwyr a datblygwyr yn parhau i fod yn argyhoeddedig bod popeth yr un peth.

Sy'n dod â ni yn ôl at ddarlith gyntaf Privatdozent Mendeleev. Beth i'w ddweud wrth ddynion newydd? Ble mae'r gwir? Dyna'r cwestiwn.

Mae'r llyfr "Matryoshka C" yn cynnig ei ateb i'r cwestiwn hwn. System haenog o iaith rhaglen". At hynny, fe'i cyfeirir nid yn unig at fyfyrwyr, ond hefyd at raglenwyr hyfforddedig, gan mai nhw, hynny yw, ni, sy'n gorfod ceisio'r gwir a newid y byd-olwg.

Mae'r hyn sy'n dilyn yn grynodeb o'r llyfr.

1. Cyflwyniad

Ym 1969, crëwyd yr iaith C, a ddaeth yn iaith raglennu sylfaenol ac sydd wedi parhau felly ers 50 mlynedd. Pam fod hyn felly? Yn gyntaf oll, oherwydd bod C yn wedi'i gymhwyso yr iaith a roddodd y rhaglen trugarog gweld yn lle hynny peiriant. Sicrhawyd y cyflawniad hwn gan ieithoedd o'r teulu C: C++, JavaScript, PHP, Java, C# ac eraill. Yn ail, mae'n iaith fer a hardd.

Fodd bynnag, mae'r iaith C ei hun fel arfer yn cael ei chymysgu â chydosodwr peiriannau, gan gymhlethu ac ystumio ei chanfyddiad. Yr eithaf arall yw gosod “athroniaeth” benodol ar yr iaith: gweithdrefnol, gwrthrychol, swyddogaethol, llunio, dehongli, teipio, ac ati. Mae hyn yn ychwanegu emosiwn, ond nid yw'n helpu i ddisgrifio'r iaith yn well.

Mae'r gwir yn y canol, ac ar gyfer yr iaith C mae'n hollol yn y canol rhwng canfyddiad athronyddol a pheiriannol.

Nid yw'r iaith C yn annibynnol, mae'n ufuddhau i iaith ysgrifenedig arferol, ac ar yr un pryd mae'n rheoli iaith y cynulliad ei hun. Mae'r safbwynt hwn yn disgrifio Model lleferydd y rhaglen, yn ôl y mae'r rhaglen wedi'i rhannu'n dri math isradd: lleferydd, cod, gorchymyn. Yr iaith C sy'n gyfrifol am yr ail fath o god.

Ar ôl pennu lle'r iaith yn y rhaglen, gallwch chi drefnu gwybodaeth amdani, sy'n gwneud System iaith rhaglen haenog, yn cynrychioli'r iaith C yn ysbryd y system gyfnodol - ar un dudalen.

Mae'r system yn cael ei hadeiladu gan gymryd i ystyriaeth cymunedau o ieithoedd cymhwysol, yn codi o'u hisraddiad lleferydd. Mae un set o unedau Matryoshka C yn caniatáu ichi ddisgrifio a chymharu gwahanol ieithoedd, gan greu cyfres o Matryoshkas: C ++, PHP, JavaScript, C#, MySQL, Python ac ati. Mae'n deilwng ac yn gywir bod gwahanol ieithoedd yn cael eu disgrifio gan unedau o'r iaith sylfaenol.

2. PENNOD 1. Model lleferydd y rhaglen. Clir C

Mae'r bennod gyntaf yn cyflwyno model lleferydd y rhaglen, gan adlewyrchu ymagwedd gymhwysol. Yn ôl iddo, mae gan y rhaglen dri math dilyniannol amlwg:

  1. lleferydd - lleferydd uniongyrchol y rhaglennydd yn datrys y broblem,
  2. codio - amgodio datrysiad i ffurf fathemategol mewn iaith C (neu unrhyw un arall)
  3. a gorchymyn - gorchmynion peiriant uniongyrchol.

Mae’r model lleferydd yn esbonio pam mae C yn iaith syml a dealladwy. Mae Xi wedi'i hadeiladu ar ddelwedd a llun lleferydd dynol sy'n gyfarwydd i ni.

Y math cyntaf o raglen yw araith uniongyrchol y rhaglennydd. Mae lleferydd yn cyfateb i feddwl dynol. Mae rhaglenwyr cychwynnol yn ysgrifennu rhaglenni gan ddefnyddio lleferydd - yn gyntaf yn Rwsieg, yna cam wrth gam yn cyfieithu'r gweithredoedd i iaith god. Ac ar y model hwn yn union y crëwyd yr iaith C.

Mae casgliadau'r rhaglennydd, a fynegir ar lafar, yn cael eu trosi'n ffurf rifiadol wedi'i chodio. Dylid galw'r trawsnewid hwn myfyrio, gan fod lleferydd a chod yr un natur (myfyrio - geni - rhyw). Mae hyn yn eithaf amlwg os ydym yn cymharu'r mathau lleferydd (ar y chwith) a chod (ar y dde) o'r rhaglen.

Matryoshka C. System iaith rhaglen haenog

Mae'n rhyfedd bod adlewyrchiad yn digwydd yn syml iawn - gyda dim ond dau fath o ymadroddion.

Fodd bynnag, nid yw'r disgrifiad modern o'r iaith C (o 1978) yn cynnwys rhestr ddigonol o enwau naill ai i ddisgrifio'r iaith yn gyffredinol, nac ar gyfer y dasg fyfyrio yn benodol. Felly, cawn ein gorfodi i fod yn greadigol a chyflwyno’r enwau hyn.

Rhaid i'r dewis o eiriau fod yn fanwl gywir ac yn glir. Roedd hyn yn gofyn am ddull arbennig, wedi'i fynegi'n gryno fel a ganlyn: defnydd llym o'r iaith frodorol. I'r Saeson byddai yn Saeson, ond nid Saeson ydym ni. Felly byddwn yn defnyddio'r hyn sydd gennym ac yn ceisio siarad Rwsieg.

Perfformir myfyrio gan ddau fath o ymadrodd:

  1. cyfrifiad (HF) - yn adlewyrchu newid ym mhriodweddau gwrthrych. Mynegir eiddo gwrthrych gan rif, yna gweithred ar rif yw gweithred ar eiddo - gweithrediad.
  2. subordination (Pch) - yn adlewyrchu newid yn y drefn o weithredu. Mae prototeip Pch yn frawddeg gymhleth lleferydd, felly mae’r rhan fwyaf o fathau o Pch yn dechrau gydag is-drefnu cysyllteiriau “os”, “fel arall”, “tra”, “ar gyfer”. Mae mathau eraill o gyfrifiaduron personol yn eu hategu.

Gyda llaw, a allwch chi gredu nad oes enw ar ymadroddion cyfrifo yn y disgrifiad C - fe'u gelwir yn syml yn “fynegiadau”? Ar ôl hyn, ni fydd yn syndod bellach nad oes unrhyw enw a chysylltiad i'r math o ddarostyngiad, ac yn wir y prinder enwau, diffiniadau a chyffredinoliadau yn gyffredinol. Mae hyn oherwydd nad yw’r enwog K/R (“The C Language”, Kernighan/Ritchie, 1978) yn ddisgrifiad, ond yn ganllaw i ddefnyddio’r iaith.

Fodd bynnag, hoffwn gael disgrifiad o'r iaith o hyd. Felly y mae yn cael ei gynnyg System iaith rhaglen haenog.

3. PENNOD 2. System haen. Briff C

Rhaid i unrhyw ddisgrifiad fod yn gywir ac yn gryno iawn. Yn achos iaith rhaglen, mae disgrifiad blaen yn anodd.

Yma mae gennym raglen. Mae'n cynnwys modiwlau. Mae modiwlau yn cynnwys is-reolweithiau a chasgliadau (strwythur). Mae is-reolweithiau yn cynnwys mynegiadau unigol: datganiadau, cyfrifiadau, is-drefniant. Mae cymaint â deg math o is-drefniant. Mae subordination yn cysylltu is-lefelau ac is-reolweithiau. Mae yna hefyd nifer o hysbysebion. Fodd bynnag, cynhwysir datganiadau nid yn unig mewn is-reolweithiau ac is-lefelau, ond hefyd mewn modiwlau a chasgliadau. Ac mae'r rhan fwyaf o ymadroddion yn cynnwys geiriau sydd mor anodd eu disgrifio fel eu bod fel arfer yn cael eu rhoi mewn dwy restr yn unig - geiriau gwreiddiol a geiriau deilliadol, y byddwch chi'n dod yn gyfarwydd â nhw trwy gydol y broses o ddysgu a defnyddio'r iaith. Gadewch i ni ychwanegu atalnodau a nifer o ymadroddion eraill at hyn.

Mewn cyflwyniad o'r fath, nid yw'n hawdd deall pwy oedd yn sefyll ar bwy.

Byddai dull hierarchaidd uniongyrchol o ddisgrifio iaith yn or-gymhleth. Mae chwiliad cylchfan yn arwain at ddisgrifiad o iaith yn seiliedig ar ei natur lleferydd ac ochr gorchymyn. Felly, ganwyd y System Haenau, yn rhannol gyd-fynd â System Gyfnodol Mendeleev, sydd hefyd yn ply. Fel y digwyddodd 42 mlynedd ar ôl ei gyhoeddi (1869), mae cyfnodoldeb y system yn gysylltiedig ag electronig haenau (1911, model Bohr-Rutherford o'r atom). Hefyd, mae'r systemau Haenog a Chyfnodol yn debyg yn nhrefniant tabl pob uned ar un dudalen.

Mae'r disgrifiad o unedau iaith yn gryno - dim ond 10 math o ymadroddion ac 8 math o uned arall, yn ogystal ag ystyrlon a gweledol. Er yn anarferol i'r adnabyddiaeth gyntaf.

Rhennir unedau iaith yn 6 lefel:

  1. unedau - rhesi bwrdd
  2. adrannau - grwpiau arbennig o genera (rhannau o'r llinell gyntaf)
  3. genws - celloedd (prif lefel y rhaniad)
  4. archrywogaeth - gwahanwyr rhywogaethau (lefel prin)
  5. mathau - fformiwlâu uned ar waelod y gell neu ar wahân
  6. patrymau - yr unedau eu hunain (ar gyfer geiriau yn unig)

Geiriau enghreifftiol yn disgrifio geirfa - is-system ar wahân sy'n cynnwys yr un chwe lefel.

Mae cydran lleferydd yr iaith C yn eithaf amlwg, er ei fod yn dal i haeddu disgrifiad. Ond mae rhan gorchymyn yr iaith yn ymwneud yn union â rheoli llunio, pan fydd y trydydd math o raglen yn cael ei greu - gorchymyn. Yma down at yr agwedd fwyaf cyffrous ar yr iaith C: harddwch.

4. PENNODAU CANLYNOL. Si golygus

Yr iaith C yw sail rhaglennu modern. Pam? Yn gyntaf, oherwydd yr ohebiaeth fwyaf i'r lleferydd. Yn ail, oherwydd ei fod yn osgoi cyfyngiadau prosesu rhif peiriant yn hyfryd.

Beth yn union a gynigiodd Xi? Delwedd a haen.

Mae'r gair "delwedd" yn gyfieithiad o'r gair Saesneg "type", sy'n dod o'r Groeg "prototeip" - "math". Yn yr iaith Rwsieg, nid yw'r gair "math" yn cyfleu conglfaen y cysyniad sy'n cael ei fynegi; ar ben hynny, mae'n cael ei ddryslyd â'r ystyr ategol "math".

I ddechrau, roedd y ddelwedd yn datrys problem cyfrifo peiriant yn unig, ac yna daeth yn rhedfa ar gyfer geni ieithoedd gwrthrych.

Datrysodd yr haen sawl problem ar unwaith - peiriant a chymhwyso. Felly, bydd yr ystyriaeth yn dechrau gyda delwedd un dasg ac yn symud ymlaen i haen aml-dasg.

Un o nodweddion annymunol rhaglennu hanesyddol yw bod y rhan fwyaf o gysyniadau, gan gynnwys rhai sylfaenol, yn cael eu rhoi heb ddiffiniadau. “Mae gan yr iaith raglennu (enw afonydd) fathau cyfanrif a chyfanrif symudol...” ac fe wnaethant grafu ymhellach. Nid oes angen diffinio beth yw “math” (delwedd), oherwydd nid yw’r awduron eu hunain yn deall hyn yn llawn a byddant yn ei dawelu “er mwyn eglurder.” Os cânt eu pinio i'r wal, byddant yn rhoi diffiniad annelwig a diwerth. Mae'n helpu llawer i guddio y tu ôl i eiriau tramor: ar gyfer awduron Rwsiaidd - y tu ôl i'r Saesneg (math), i Saeson - y tu ôl i Ffrangeg (suboutine), Groeg (polymorphism), Lladin (amgapsiwleiddio) neu eu cyfuniadau (amryffurfedd ad-hoc).

Ond nid dyma ein tynged. Ein dewis ni yw diffiniadau gyda fisor uchel mewn Rwsieg pur.

Delwedd

Delwedd yn enw rhagffig ar swm, gan ddiffinio 1) priodweddau cynhenid ​​y maint a 2) y dewis o weithrediadau ar gyfer y swm.

Mae’r gair “math” (math) yn cyfateb i ran gyntaf y diffiniad: “priodweddau cynhenid ​​maint.” Ond mae prif ystyr y ddelwedd yn yr ail ran: “dewis gweithrediadau i feintiau.”

Y man cychwyn ar gyfer cyflwyno delwedd yn C yw cyfrifiad arferol, megis y gweithrediad adio.

Papur Nid yw mathemateg, boed wedi'i hysgrifennu â llaw neu wedi'i hargraffu, yn gwahaniaethu llawer rhwng mathau o rifau, gan dybio eu bod yn real fel arfer. Felly, mae eu gweithrediadau prosesu yn ddiamwys.

Peiriant Mae mathemateg yn rhannu rhifau yn gyfanrifau a ffracsiynau yn llym. Mae gwahanol fathau o rifau yn cael eu storio'n wahanol yn y cof a'u prosesu gan wahanol gyfarwyddiadau prosesydd. Er enghraifft, mae'r cyfarwyddiadau ar gyfer adio cyfanrifau a ffracsiynau yn ddau gyfarwyddiad gwahanol sy'n cyfateb i ddau nod prosesydd gwahanol. Ond nid oes gorchymyn ar gyfer ychwanegu cyfanrif a dadleuon ffracsiynol.

Cymhwysol mae mathemateg, hynny yw, yr iaith C, yn gwahanu'r mathau o rifau, ond yn cyfuno gweithrediadau: mae adio cyfanrifau a/neu ffracsiynau yn cael ei ysgrifennu gydag un arwydd gweithredu.

Mae diffiniad clir o ddelwedd y cysyniad yn ein galluogi i siarad yn bendant am ddau gysyniad arall: maint и gweithrediad.

Maint a gweithrediad

Y maint - y nifer sy'n cael ei brosesu.

Gweithredu — prosesu gwerthoedd y gwerthoedd cychwynnol (dadleuon) i gael y rhif terfynol (cyfanswm).

Mae maint a gweithrediad yn rhyngberthynol. Mae pob gweithrediad yn swm oherwydd bod ganddo ganlyniad rhifiadol. Ac mae pob gwerth yn ganlyniad i drosglwyddo gwerth i/o'r gofrestr proseswyr, hynny yw, canlyniad y llawdriniaeth. Er gwaethaf y berthynas hon, y prif beth yw'r posibilrwydd o'u disgrifiad ar wahân, er bod un gair yn cael ei ailadrodd mewn gwahanol adrannau o'r geiriadur, sef yr hyn sy'n digwydd yn MA3.

Rhannodd y dull peiriant yr holl rifau a ddefnyddir gan y rhaglennydd yn gorchmynion и y data. Yn flaenorol, roedd y ddau ohonyn nhw'n rhifau, er enghraifft, roedd gorchmynion wedi'u hysgrifennu mewn codau rhifol. Fodd bynnag, mewn ieithoedd cymhwysol, peidiodd gorchmynion â bod yn rhifau a daethant yn mewn geiriau и arwyddion gweithredu. Dim ond “data” sy'n aros fel rhifau, ond mae'n hurt parhau i'w galw felly, oherwydd yn y trawsnewidiad o beiriant i safbwynt mathemategol, mae rhifau yn feintiau sy'n cael eu rhannu â'r gwreiddiol (y data) a therfynol (ofynnol). Bydd “datwm anhysbys” yn swnio'n dwp.

Rhannwyd y timau hefyd yn ddau fath o gamau gweithredu: mathemategol a gwasanaeth. Gweithrediadau mathemategol - gweithrediadau. Cawn gyrraedd y stwff swyddogol yn nes ymlaen.

Yn yr ieithoedd C, mae'r gweithrediadau papur a pheiriant arferol, diamwys, neu sengl, bron yn gyffredinol yn dod yn lluosog.

Gweithrediadau lluosog yw sawl gweithrediad o'r un enw gyda gwahanol fathau o ddadleuon a gweithredoedd gwahanol, tebyg o ran ystyr.

Mae dadleuon cyfanrif yn cyfateb i weithrediad cyfan, ac mae dadleuon ffracsiynol yn cyfateb i weithrediad ffracsiynol. Mae'r gwahaniaeth hwn yn arbennig o amlwg yn ystod y gweithrediad rhannu, pan fydd y mynegiant 1/2 yn rhoi cyfanswm o 0, nid 0,5. Nid yw nodiant o'r fath yn cyfateb i reolau mathemateg papur, ond nid yw'r iaith C yn ymdrechu i gydymffurfio â nhw (yn wahanol i Fortran) - mae'n chwarae yn ôl ei rhai ei hun. cymhwyso rheolau.

Yn achos cymysgu cyfanrifau a ffracsiynau, yr unig un cywir a gynhwysir castio gwerthoedd dadl — trawsnewid gwerth yn ddetholus o un ddelwedd i'r llall. Yn wir, wrth adio cyfanrif a rhif ffracsiynol, mae'r canlyniad yn ffracsiynol, felly delwedd y llawdriniaeth yn codi gweithrediad trosi dadl gyfanrif i werth ffracsiynol.

Erys nifer o lawdriniaethau lluosogAc sengl. Diffinnir gweithrediadau o'r fath ar gyfer un math o ddadleuon yn unig: gweddill rhannu - dadleuon cyfanrif, pentyrru (gweithrediadau bitwise) - cyfanrifau naturiol. Mae Ma3 yn dynodi lluosogrwydd gweithrediadau gydag arwyddion (#^) yn nodi'r delweddau y mae'r gweithrediad wedi'i ddiffinio ar eu cyfer. Mae hwn yn eiddo pwysig i bob gweithrediad, ond yr anwybyddwyd ef yn flaenorol.

Gweithrediadau uned mympwyol yw'r holl swyddogaethau. Yr eithriad yw'r gweithredwyr - swyddogaethau di-braced, wedi'i ymgorffori yn yr iaith (gweithrediadau gwreiddiol).

Cymorth

Cymorth - gweithredu sy'n cyd-fynd â'r llawdriniaeth.

Os ydym yn ystyried y llawdriniaeth fel y prif weithred, yna gallwn wahaniaethu rhwng dau gyd-fynd sy'n darparu'r llawdriniaeth ac yn wahanol iddo. Y rhain yw 1) rheolaeth newidiol a 2) is-drefniant. Gelwir y weithred hon cymorth.

Yma mae angen i ni grwydro a dweud ar wahân am gyfieithiadau Rwsiaidd o werslyfrau rhaglennu. Cyflwynwyd gair newydd yn nhestun y K/R i gofnodi gweithredoedd datganiad (mynegiant), a oedd yn ceisio rhannu cysyniadau gorchymyn peiriant yn gamau gweithredu gwahanol: 1) gweithrediad, 2) datganiad, a 3) subordination (a elwir yn "constructs rheoli"). Claddwyd yr ymgais hon gan gyfieithwyr Rwsiaidd, gan ddisodli “mynegiant” gyda’r gair “gweithredwr”, sef:

  1. wedi dod yn gyfystyr â'r gair peiriant "gorchymyn",
  2. troi allan i fod yn gyfystyr â'r ymadrodd "arwydd o weithredu",
  3. a derbyniodd hefyd nifer anghyfyngedig o werthoedd ychwanegol. Hynny yw, mae wedi troi’n rhywbeth tebyg i’r erthygl Saesneg “uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh”

Ystyriwch y gweithredoedd cysylltiedig, neu cymorth.

Rheolaeth amrywiol

Rheolaeth amrywiol (UP) - creu/dileu celloedd newidiol.
Mae UE yn digwydd yn ymhlyg wrth ddatgan newidyn, sydd eisoes wedi'i ysgrifennu am reswm arall - i nodi delwedd y gwerth. Dim ond un olwg sy'n cael ei reoli'n benodol newidynnau ychwanegol defnyddio'r swyddogaethau malloc() a free().

Dylid nodi bod gweithredoedd ymhlyg yn fwy cyfleus ar gyfer ysgrifennu, gan nad oes angen ysgrifennu unrhyw beth o gwbl, ond maent yn anoddach eu deall - maent yn anoddach eu cymryd i ystyriaeth a'u dehongli.

Isordeiniad

Isordeiniad — cysylltu/analluogi adrannau haenau.

Roedd yr iaith C yn cynnig dull cymhwysol o reoli trefn y gweithredoedd, yn wahanol i gydosodwr - is-symudiad. Mae'n adlewyrchu ac yn datblygu brawddeg araith gymhleth gyda rhaniad clir i'r brif ran (cymal is-symud) a'r rhan israddol (adrannau is-lefel/is-reolwaith).

Mae datganiad a chyflwyniad wedi'u seilio'n llwyr ar y cysyniad haen.

Haen

Haen yn set gyfyngedig o ymadroddion dethol un lefel.

Ymgymerodd yr haen yn benodol ac yn ymhlyg â sawl tasg ar unwaith:

  1. trefnu'r rhaglen
  2. cyfyngu ar welededd enwau (yn ymhlyg),
  3. rheoli newidynnau (celloedd cof) (ymhlyg),
  4. diffiniad o is-gymalau ar gyfer is-drefnu,
  5. diffiniadau o swyddogaethau a detholiadau ac eraill.

Nid oedd unrhyw gysyniad o haen mewn ieithoedd peirianyddol, felly nid oedd yn ymddangos yn K/R, ac os nad oedd rhywbeth yno, yna byddai ei gyflwyno mewn llyfrau dilynol yn heresi ac yn meddwl yn rhydd. Felly, nid oedd y cysyniad o haen yn ymddangos o gwbl, er ei fod yn hynod ddefnyddiol ac yn eithaf amlwg.

Heb haen, mae'n amhosibl esbonio llawer o gamau gweithredu a rheolau'r rhaglen yn gryno ac yn glir. Er enghraifft, pam mae goto mor syml â thri kopecks yn ddrwg, ac mae'r tra anodd yn dda. Ni allwch ond tyngu llw yn ddiymadferth, fel y gwnaeth Dijkstra (mae sgil rhaglenwyr yn swyddogaeth sy'n dibynnu'n wrthdro ar amlder datganiadau goto yn eu rhaglenni." Yn fyr, dim ond geifr sy'n defnyddio goto. Duw yw lefel y cyfiawnhad.) Yn wir, nid yw hyn mor frawychus os yw eich llyfrau Nid oes rhaid i ni esbonio unrhyw beth o gwbl, ond, fel y dywedasom eisoes, nid dyma ein tynged.

Gyda llaw, gellir tybio bod Dan Ritchie wedi gadael goto yn union fel allwedd ar gyfer chwilio am ryw gysyniad dienw, oherwydd nid oedd angen na harddwch yn y mynegiant goto. Ond roedd angen esboniad syml a dealladwy o'r egwyddorion iaith newydd, nad oedd Richie ei hun am eu rhoi, ac sydd wedi'u seilio'n fanwl ar y cysyniad. haen.

Gwyriad

Gwyriad — newid priodweddau arferol yr enw newydd.

Mae'r gwyriad pwysicaf yn ymwneud yn union â phriodweddau haen y rhaglen, ac fe'i disgrifir gan un gair "statig", sydd ag ystyr gwahanol ym mhob math o haen.

5. Y BENNOD OLAF. Cyffredinrwydd ieithoedd cymhwysol

Mae ieithoedd cymhwysol yn ffigurol ieithoedd (cael delwedd, “teipio”). Maent yn seiliedig ar ddefnydd amlwg neu ymhlyg o'r ddelwedd. Ar ben hynny, yma eto mae gwrth-ddweud yn ymddangos: mae delwedd amlwg yn fwy dealladwy, ond yn llai cyfleus, ac i'r gwrthwyneb.

Matryoshka C. System iaith rhaglen haenog

(Nid yw cynllun y bwrdd wedi'i gyflwyno eto, felly dangosir y tabl gyda llun.)

Ar ôl C, cymerodd datblygiad ieithoedd cymhwysol y llwybr o gynyddu eu ffiguroldeb. Y pwysicaf ar gyfer deall delweddaeth uchel yw disgynnydd uniongyrchol C - yr iaith C++. Mae'n datblygu'r syniad o ddetholiad mympwyol o weithrediadau ar gyfer meintiau ac yn ei ymgorffori ar sail y detholiad mynegiant synthetig, sy'n derbyn enw newydd - gwrthrych. Fodd bynnag, nid yw C++ mor gryno a mynegiannol â C oherwydd y gorlwytho o fathau newydd o gasgliadau a'u rheolau cysylltiedig. Gyda llaw, gadewch i ni siarad am "orlwytho".

Gorlwytho a polymorphism

Mae'r gair "gorlwytho" yn derm dysgu peiriant hen ffasiwn ar gyfer creu gweithrediadau lluosog.

Rhaglenwyr peiriant (system). lluosogrwydd gallai gweithrediadau fod yn annifyr: “Beth mae'r arwydd hwn (+) yn ei olygu: ychwanegu cyfanrifau, adio ffracsiynau, neu hyd yn oed symud?! Yn ein hamser ni wnaethon nhw ysgrifennu felly!” Felly arwyddocâd negyddol y gair a ddewiswyd (“overkill”, “blinedig”). Ar gyfer rhaglennydd cais, gweithrediadau lluosog yw'r conglfaen, prif gyflawniad ac etifeddiaeth yr iaith C, mor naturiol nad ydynt yn aml yn cael eu cydnabod.

Yn iaith C++ lluosogrwydd wedi'i ymestyn nid yn unig i'r gweithrediadau gwreiddiol, ond hefyd i swyddogaethau - yn unigol ac wedi'u cyfuno'n ddosbarthiadau - dulliau. Gyda dulliau lluosog daeth y gallu i'w diystyru mewn dosbarthiadau estynedig, a elwid yn amwys yn "polymorphism." Cynhyrchodd y cyfuniad o amryffurfedd a gorlwytho gymysgedd ffrwydrol a holltodd yn ddau amryffurfiaeth: “gwir” ac “ad-hoc.” Dim ond er gwaethaf yr enwau penodedig y gellir deall hyn. Mae'r ffordd i hysbyseb wedi'i phalmantu ag enwau tramor.

Mae datganiad o'r ffurf “gorlwytho” wedi'i fynegi'n well yn y gair cyhoeddiad ychwanegol — ychwanegu datganiad o swyddogaeth o'r un enw gyda dadleuon o ddelwedd wahanol.

Mae'n well galw datganiad o'r ffurf “polymorphism”. ail-gyhoeddiad — datganiad sy'n gorgyffwrdd mewn haen estyniad newydd o swyddogaeth o'r un enw gyda dadleuon o'r un ddelwedd.

Yna bydd yn hawdd deall bod yr un dulliau o wahanol ddelweddau (dadleuon) - cyhoeddi hefyd, ac un ddelwedd - ail-gyhoeddi.

Geiriau Rwsieg yn penderfynu.

rhedfa

Mae ystyried cysyniadau ieithoedd hynod ffigurol yn cadarnhau pwysigrwydd diffiniad clir o gysyniadau sylfaenol. Gyda C wedi'i ddisgrifio'n gywir, bydd dysgu ieithoedd ffigurol uchel yn hawdd ac yn bleserus.

Mae hyn yn arbennig o bwysig ar gyfer ieithoedd hynod ffigurol ymhlyg (PHP, JavaScript). Iddynt hwy, mae pwysigrwydd gwrthrychau (delweddau cyfansawdd) yn dod hyd yn oed yn uwch nag yn C++, ond mae'r union gysyniad o ddelwedd yn dod yn ymhlyg ac yn anodd dod o hyd iddi. O safbwynt cyfleustra, maent wedi dod yn symlach, ond o safbwynt dealltwriaeth, maent wedi dod yn fwy anodd.

Felly, dylech ddechrau dysgu ieithoedd rhaglennu gyda'r iaith C a symud ymhellach yn y drefn y mae ieithoedd y teulu C yn ymddangos.

Mae'r un peth yn wir am ddisgrifio ieithoedd. Mae gan ieithoedd gwahanol yr un set o unedau rhyw, neu lai, na'r iaith C. Gall nifer y mathau a samplau fod yn wahanol i'r ddau gyfeiriad: mae gan C ++ fwy o fathau na C, tra bod gan JavaScript lai.

Mae'r iaith MySQL yn haeddu sylw arbennig. Mae'n ymddangos nad oes unrhyw beth yn gyffredin, ond fe'i disgrifir yn berffaith gan Matryoshka, ac mae dod i'w adnabod yn dod yn gyflymach ac yn haws. Sydd yn bwysig, o ystyried ei bwysigrwydd ar gyfer y we - y ffordd fwyta o raglenni modern. A lle mae MySQL, mae SQLs eraill. Wel, mae pob math o Fortran-Pascal-Pythons hefyd yn cael eu disgrifio gan Matryoshka, cyn gynted ag y byddant yn cael eu dwylo arno.

Felly, mae pethau gwych yn ein disgwyl - disgrifiad cymhwysol o'r iaith C a disgrifiad unedig o'r ieithoedd sy'n ei dilyn. “Mae ein nodau’n glir, mae ein tasgau wedi’u diffinio. Ewch i'r gwaith, gymrodyr! (Storm, hir gymeradwyaeth, yn troi yn ofid. Pawb yn sefyll i fyny.)"

Bydd sylw mawr yn cael ei roi i'ch barn, a bydd eich cymorth i greu'r wefan doliau nythu yn cael ei dderbyn gyda diolch mawr. Mae gwybodaeth fwy cyflawn am y llyfr ar y wefan, wedi'i chuddio'n glyfar yn Matryoshka C.

Ffynhonnell: hab.com

Ychwanegu sylw