Матрёшка Си. Системаи қабати забони барнома

Биёед кӯшиш кунем, ки химияро бе ҷадвали даврии Менделеев (1869) тасаввур кунем. Чӣ қадар элементҳоро дар хотир нигоҳ доштан лозим буд ва бо тартиби тасодуфӣ ... (Пас - 60.)

Барои ин, як маротиба дар бораи як ё якчанд забони барномасозӣ фикр кардан кифоя аст. Ҳамон ҳиссиёт, ҳамон бесарусомонии эҷодӣ.

Ва акнун мо метавонем эҳсосоти химикҳои асри XNUMX-ро, вақте ки ба онҳо тамоми донишҳои худ пешниҳод карда шуда буданд, ва каме бештар дар як Ҷадвали даврӣ дубора эҳё кунем.

Матрёшка Си. Системаи қабати забони барнома


Китоби «Матрёшка Си. Системаи қабати забони барномавӣ» ҳама воҳидҳои забони Сиро дар як нигоҳ муаррифӣ мекунад. Ин ба шумо имкон медиҳад, ки онҳоро ташкил кунед, маълумоти кӯҳнашударо ислоҳ кунед ва ҳатто консепсияи барномаро равшан кунед.

Имрӯз, маълумот дар бораи барномасозӣ бояд ҳатто бештар аз элементҳои кимиёвии 150 сол пеш ба низом дароварда шавад.

Аввалин эҳтиёҷ таълим аст. Менделеев вакте ки бо чунин савол — аз кадом элемент ба хондани лекция шуруъ кардан лозим аст: О, Н, Н, Хе, Ау... Дар баробари ин барои вай осонтар буд — вай ба бехтаринхо — студентон аз фанни химия таълим медод. Донишгоҳи Санкт-Петербург. Ва аллакай дар мактаб барномасозӣ таълим дода мешавад ва ба зудӣ дар кӯдакистон оғоз мешавад.

Талаботи дуюм муносибати илмӣ аст. Бо ёрии системаи даврӣ элементҳои нав кашф ва маълумот дар бораи элементҳои кӯҳна ислоҳ карда шуданд. Вай дар эҷоди модели атом кӯмак кард (1911). Ва ғайра.

Зарурати сеюм равшан кардани консепсияи барнома мебошад.

Барномасозии муосир бо як по дар солҳои 50 часпидааст. Дар он вақт, барномаҳо оддӣ буданд, аммо мошинҳо ва забонҳои мошинӣ мураккаб буданд, аз ин рӯ ҳама чиз дар атрофи мошинҳо ва забонҳо мегашт.

Ҳоло баръакс дуруст аст: барномаҳо мураккаб ва ибтидоӣ, забонҳо оддӣ ва дуюмдараҷа мебошанд. Инро равиши амалӣ меноманд, ки ба ҳамагон шинос аст. Аммо донишҷӯён ва таҳиягарон боварӣ доранд, ки ҳама чиз якхела аст.

Ин моро ба лекцияи аввалини Приватдосент Менделеев бармегардонад. Ба донишҷӯёни якум чӣ гуфтан мумкин аст? Ҳақиқат куҷост? Савол хамин аст.

Китоби «Матрёшка Си. Системаи қабати забони барномавӣ. Гузашта аз ин, он на танҳо ба донишҷӯён, балки ба барномасозони соҳибихтисос низ муроҷиат мекунад, зеро маҳз онҳо, яъне мо бояд ҳақиқатро ҷустуҷӯ кунем ва ҷаҳонбиниро ба ақиб гардонем.

Он чизе ки дар поён оварда шудааст, мухтасари китоб аст.

1. Муқаддима

Дар соли 1969 забони Си сохта шуд, ки забони бунёдии барномасозӣ шуд ва 50 сол инҷониб боқӣ монд. Чаро чунин аст? Пеш аз ҳама, зеро C татбиқ карда мешавад забоне, ки барномаро додааст инсондуст ба ҷои дидан мошин. Ин дастовард аз ҷониби забонҳои оилаи C муттаҳид карда шудааст: C++, JavaScript, PHP, Java, C# ва дигарон. Сониян, ин забони кӯтоҳ ва зебост.

Бо вуҷуди ин, худи забони Си одатан бо ассемблери мошин омехта карда мешавад ва ба ин васила дарки онро душвор ва таҳриф мекунад. Дигар ифрот таҳмил кардани баъзе «фалсафа» ба забон аст: тартиби, объектӣ, функсионалӣ, тартибдодашуда, тафсирӣ, чопӣ ва ғайра. Ин эҳсосотро илова мекунад, аммо барои беҳтар тасвир кардани забон кӯмак намекунад.

Ҳақиқат дар мобайн аст ва барои забони Си он ба таври қатъӣ дар мобайни дарки фалсафӣ ва мошинӣ қарор дорад.

Забони Си мустақил нест, вай ба забони муқаррарии хаттӣ итоат мекунад ва дар айни замон худи забони ассемблерро идора мекунад. Ин мавқеъ тавсиф мекунад Модели нутки программа, ки мувофики он программа ба се навъи тобеъ таксим мешавад: гуфтор, рамз, фармон. Забони C барои намуди дуюми код масъул аст.

Бо муайян кардани ҷои забон дар барнома, шумо метавонед маълумотро дар бораи он тартиб диҳед, ки онро месозад Системаи қабати забони барнома, ифодакунандаи забони Си дар рухи системаи Менделеев — дар як сахифа.

Система бо назардошти он сохта шудааст умумияти забонҳои амалӣки аз тобеияти лафзии онхо бармеояд. Як маҷмӯи воҳидҳои C-Matryoshka ба шумо имкон медиҳад, ки забонҳои гуногунро тавассути эҷоди як қатор C-Matryoshkas тавсиф ва муқоиса кунед: C++, PHP, JavaScript, C#, MySQL, Python ва ғайра. Шоистанда ва дуруст аст, ки забонҳои гуногун бо воҳидҳои забони бунёдӣ тавсиф мешаванд.

2. БОБИ 1. Модели нутки программа. Фаҳмост C

Боби аввал пешкаш мекунад модели суханронии барнома, инъикоси равиши татбиқшаванда. Ба гуфтаи ӯ, барнома се намуди пайдарпай дорад:

  1. нутқ - сухани мустақими барномасоз ҳангоми ҳалли мушкилот,
  2. код - рамзгузории ҳалли ба шакли математикӣ дар забони C (ё ягон дигар)
  3. ва фармон - фармонҳои бевоситаи мошин.

Модели нутқ мефаҳмонад, ки чаро C забони содда ва фаҳмо аст. C дар тасвир ва шабоҳати сухани инсонӣ, ки ба мо шинос аст, сохта шудааст.

Навъи якуми барнома сухани бевоситаи барномасоз мебошад. Сухан ба тафаккури инсон мувофиқат мекунад. Бо ёрии нутқ, барномасозони навкор барномаҳо менависанд - аввал ба забони русӣ, пас қадам ба қадам амалҳоро ба забони рамзӣ тарҷума мекунанд. Ва маҳз ҳамин тавр забони Си офарида шудааст.

Хулосаҳои барномасоз, ки дар нутқ ифода ёфтаанд, ба шакли рақамии рамзӣ табдил дода мешаванд. Ин тағиротро бояд даъват кард инъикос, зеро гуфтор ва рамз як хусусият доранд (инъикос - таваллуд - насл). Агар навъхои нутк (чап) ва коди (рост)-и программаро мукоиса кунем, ин комилан равшан аст.

Матрёшка Си. Системаи қабати забони барнома

Аҷиб аст, ки инъикос хеле содда сурат мегирад - танҳо бо ду намуди ифода.

Бо вуҷуди ин, тавсифи муосири забони Си (аз соли 1978) рӯйхати кофии номҳоро дар бар намегирад, ки дар маҷмӯъ барои тавсифи забон ва махсусан барои инъикоси мушкилот. Аз ин рӯ, мо маҷбурем, ки эҷодкорӣ кунем ва ин номҳоро ҷорӣ кунем.

Интихоби калимаҳо бояд дақиқ ва равшан бошад. Ин муносибати махсусро талаб мекард, ки ба таври мухтасар хамчун истифодаи катъии забони модарй ифода ёфтааст. Барои англисҳо ин англисӣ хоҳад буд, аммо мо англисӣ нестем. Аз ин рӯ, мо аз он чизе, ки дорем, истифода мебарем ва кӯшиш мекунем, ки русӣ ҳарф занем.

Мулоҳиза бо ду намуди ифода анҷом дода мешавад:

  1. ҳисоббарорӣ (Vh) - таѓйирёбии хосиятњои предметро инъикос мекунад. Хосияти предмет бо адад ифода карда мешавад, пас амал ба хосият амал ба адад - амал мебошад.
  2. тобеият (Пч) - таѓйирёбии тартиби амалњоро инъикос мекунад. Прототипи Пч чумлаи мураккаби шифохй мебошад, бинобар ин аксари навъхои Пч бо пайвандакхои тобеи «агар», «вагарна», «хайр», «барои» сар мешаванд. Дигар намуди компютерҳо онҳоро пурра мекунанд.

Воқеан, оё бовар кардан мумкин аст, ки дар тавсифи C барои ҳисобкунии ибораҳо номе вуҷуд надорад - онҳоро танҳо "ифода" меноманд? Пас аз ин, набудани ном ва иттиҳодияи тобеияти ҷинс ва воқеан кам будани номҳо, таърифҳо ва умумиятҳо дигар тааҷҷубовар нахоҳад буд. Сабаб дар он аст, ки машҳур C/R (The C Language, Kernighan/Ritchie, 1978) тавсиф нест, балки дастур барои истифодаи забон аст.

Бо вуҷуди ин, ман мехоҳам ба ҳар ҳол тавсифи забон дошта бошам. Аз ин рӯ, он пешниҳод карда мешавад Системаи қабати забони барнома.

3. БОБИ 2. Системаи қабатӣ. Кӯтоҳ C

Ҳар як тавсиф бояд дақиқ ва то ҳадди имкон кӯтоҳ бошад. Дар мавриди забони барнома, тавсифи сар ба душвор аст.

Дар ин ҷо мо як барнома дорем. Он аз модулҳо иборат аст. Модулҳо аз зерпрограммаҳо ва коллексияҳо (сохтор) иборатанд. Зерпрограммахо аз ифодахои алохида иборатанд: эъломияхо, хисобхо, тобеиятхо. Даҳ намуди тобеият вуҷуд дорад. Тобеиятҳо зерсатҳҳо ва зерпрограммаҳоро мепайвандад. Инчунин якчанд эълонҳо мавҷуданд. Аммо, эълонҳо на танҳо дар зерпрограммаҳо ва зерсатҳҳо, балки инчунин ба модулҳо ва коллексияҳо дохил карда мешаванд. Ва бештари ибораҳо аз вожаҳое иборатанд, ки тавсифашон чунон душвор аст, ки одатан дар ду рӯйхат – вожаҳои аслӣ ва ҳосилшуда оварда мешаванд, ки дар тӯли омӯзиш ва истифодаи забон бо онҳо ошно хоҳед шуд. Ба ин аломатхои пунктуация ва як катор иборахои дигарро илова мекунем.

Дар чунин муаррифӣ фаҳмидан осон нест, ки кӣ дар болои кӣ истода буд.

Муносибати мустақими иерархӣ барои тавсифи забон аз ҳад зиёд мураккаб хоҳад буд. Ҷустуҷӯи роҳҳои гардиш боиси тавсифи забон дар асоси табиати гуфтор ва тарафи амрии он мегардад. Ҳамин тариқ, системаи қабатӣ ба вуҷуд омад, ки қисман бо системаи даврии Менделеев мувофиқат мекунад, ки он низ қабат. Тавре маълум гардид, ки пас аз 42 соли нашри он (1869) даврии система бо электронии қабатҳои (1911, модели Бор-Резерфорд атом). Инчунин, системаҳои қабатӣ ва даврӣ ҷойгиркунии ҷадвали ҳамаи воҳидҳоро дар як саҳифа умумӣ доранд.

Тавсифи воњидњои забон кўтоњ - њамагї 10 намуди ибора ва 8 намуди воњидњои дигар, инчунин хабарї ва аёнї мебошад. Ҳарчанд барои шиносоии аввал ғайриоддӣ аст.

Воҳидҳои забонӣ ба 6 сатҳ тақсим мешаванд:

  1. дастаҳо - қаторҳои ҷадвал
  2. шӯъбаҳо - гурӯҳҳои махсуси наслҳо (қисмҳои сатри аввал)
  3. ҷинс - ҳуҷайраҳо (сатҳи асосии тақсимот)
  4. superspecies - ҷудокунандагони намудҳо (сатҳи нодир)
  5. намудҳо - формулаҳои воҳидҳо дар поёни ячейка ё алоҳида
  6. намунаҳо - худи воҳидҳо (танҳо барои калимаҳо)

Намунаҳои калимаҳо тавсиф мекунанд луғат - зерсистемаи алоҳида, ки аз ҳамон шаш сатҳ иборат аст.

Ҷузъи нутқи забони Си хеле равшан аст, гарчанде ки он ҳанӯз ҳам сазовори тавсиф аст. Аммо қисми фармонии забон танҳо бо идоракунии компиляция алоќаманд аст, ки дар рафти он навъи сеюми барнома - як фармон сохта мешавад. Дар ин ҷо мо ба паҳлӯи ҷолибтарин забони C - зебоӣ меоем.

4. БОБҲОИ МИНБАЪД. Си зебо

Забони Си дар маркази барномасозии муосир аст. Чаро? Аввалан, ба туфайли бузургтарин мукотибаи сухан. Сониян, зеро он махдудиятхои коркарди мошинии ракамхоро ба хубй убур кард.

Си маҳз чӣ пешниҳод кард? тасвир ва қабат.

Калимаи «имидж» тарҷумаи калимаи инглисии «type» аст, ки аз юнонии «prototype» - «prototype» омадааст. Дар забони русӣ вожаи «тип» санги асосии мафҳуми ифодашавандаро ифода намекунад, гайр аз ин, бо маънои расмии «хавф» омехта шудааст.

Дар аввал, тасвир як масъалаи соф мошини ҳисобкуниро ҳал кард ва сипас ба як хати парвоз барои таваллуди забонҳои объектӣ табдил ёфт.

Кабат як катор проблемахоро — хам бо дастгох сохта ва хам ба кор андохташударо хал кард. Аз ин рӯ, баррасӣ аз як тасвири як вазифа оғоз мешавад ва ба қабати бисёрвазифа мегузарад.

Яке аз вижагиҳои ногувори барномасозии таърихӣ дар он аст, ки аксари мафҳумҳо, аз ҷумла мафҳумҳои асосӣ, бидуни таъриф дода мешаванд. "Забони барномасозӣ (номи дарёҳо) дорои адади бутун ва як намуди шинокунандаи рақамҳо мебошад ..." - ва минбаъд харошида шудааст. Муайян кардан лозим нест, ки «тип» (образ) чист, зеро худи муаллифон инро пурра нафахмида, «барои фахмо» сукут мекунанд. Агар онхо ба девор часпида шаванд, таърифи норавшан ва бефоида медиханд. Ин барои пинҳон кардани калимаҳои хориҷӣ бисёр кӯмак мекунад: барои муаллифони русӣ - дар паси калимаҳои англисӣ (намуд), барои муаллифони англисӣ - паси фаронсавӣ (зертрасмум), юнонӣ (полиморфизм), лотинӣ (инкапсуляция) ё комбинатсияи онҳо (полиморфизми ad-hoc).

Аммо ин такдири мо нест. Интихоби мо таърифҳо бо визорҳои баланд ба забони русӣ мебошанд.

Image

Image номи пешакии арзишест, ки 1) хосиятҳои худи арзиш ва 2) интихоби амалҳоро барои арзиш муайян мекунад.

Калимаи «навъ» (навъ) ба ќисми якуми таъриф мувофиќ аст: «хусусиятњои дохилии миќдор». Аммо маънои асосии тасвир дар қисми дуюм аст: «интихоби амалиётҳо барои миқдор».

Нуқтаи ибтидоӣ барои ҷорӣ кардани тасвир дар забони Си ин ҳисобкунии оддӣ, ба монанди амалиёти иловакунӣ мебошад.

Коғаз математика, ки бо дастӣ ё чопӣ навишта шудааст, байни навъҳои рақамҳо фарқияти зиёд намедиҳад, одатан онҳоро воқеӣ мешуморад. Аз ин рӯ, амалиёти коркарди онҳо якранг аст.

Мошин математика ададхоро катъиян ба ададхои бутун ва каср таксим мекунад. Навъҳои гуногуни рақамҳо дар хотира бо роҳҳои гуногун нигоҳ дошта мешаванд ва бо дастурҳои гуногуни протсессори коркард карда мешаванд. Масалан, дастур оид ба илова кардани ададҳои бутун ва ададҳои касрӣ ду дастури гуногун мебошанд, ки ба ду гиреҳи гуногуни протсессор мувофиқанд. Аммо фармони илова кардани аргументҳои бутун ва касрӣ мавҷуд нест.

Татбик карда шудааст Математика, яъне забони Си навъҳои ададҳоро ҷудо мекунад, аммо амалҳоро муттаҳид мекунад: илова барои ададҳои бутун ва/ё ададҳои касрӣ бо як аломати амал навишта мешавад.

Таърифи дақиқи мафҳуми тасвир ба мо имкон медиҳад, ки бешубҳа дар бораи ду мафҳуми дигар сӯҳбат кунем: арзиши и амалиёт.

Арзиш ва амалиёт

Миқдор рақами коркардшуда мебошад.

Амалиёт - коркарди арзишҳои арзишҳои ибтидоӣ (далелҳо) барои ба даст овардани рақами ниҳоӣ (умум).

Арзиш ва амалиёт бо ҳам алоқаманданд. Ҳар як амалиёт арзиш аст, зеро он миқдори ададӣ дорад. Ва ҳар як арзиш натиҷаи интиқоли арзиш ба / аз реестри протсессор, яъне натиҷаи амалиёт мебошад. Сарфи назар аз ин муносибат, чизи асосй имкони тавсифи алохидаи онхост, гарчанде ки бо такрори як калима дар фаслхои гуногуни лугат, ки дар ма3 руй медихад.

Муносибати мошинӣ ҳамаи рақамҳоеро, ки барномасоз истифода кардааст, тақсим кард дастаҳо и маълумот. Пештар, ҳам онҳо ва ҳам дигарон танҳо рақамҳо буданд, масалан, фармонҳо бо рамзҳои ададӣ навишта мешуданд. Аммо дар забонҳои амалӣ фармонҳо адад буданро қатъ карда, табдил ёфтаанд бо суханони и аломатҳои амал. Танҳо "маълумот" ҳамчун рақам боқӣ монд, аммо барои идома додани онҳо ин қадар хандаовар номида мешавад, зеро ҳангоми гузаштан аз мошин ба нуқтаи назари математикӣ ададҳо миқдорҳое мебошанд, ки ба асл тақсим мешаванд (маълумот) ва ниҳоӣ (хост). «Дати номаълум» бемаънӣ садо медиҳад.

Дастаҳо инчунин ба ду намуди амал тақсим шуданд: риёзӣ ва хидматӣ. Амалҳои математикӣ - амалҳо. Мо дертар ба назди кормандон меоем.

Дар забонҳои Си, коғаз ва мошини муқаррарии амалҳои якранг ё ягонаи риёзӣ қариб бидуни истисно чандкарата мешаванд.

Амалҳои сершумор ин якчанд амалиёти як ном бо намудҳои гуногуни аргументҳо ва гуногун, аз ҷиҳати маъно, амалҳо монанд мебошанд.

Далелҳои бутун ба амалиёти бутун, аргументҳои касрӣ ба як касрӣ мувофиқанд. Ин тафовут махсусан дар амалиёти тақсимкунӣ, вақте ки ифодаи 1/2 0 не, балки ҷамъи 0,5-ро медиҳад. Чунин қайд ба қоидаҳои математикаи коғазӣ мувофиқат намекунад, аммо забони Си барои риояи онҳо кӯшиш намекунад (баръакси Фортран) - он роҳи худро иҷро мекунад. татбиқ карда шуд қоидаҳо.

Дар сурати омезиши ададҳои бутун ва касрӣ ягонаи дуруст дохил карда мешавад маҷбур кардани арзишҳои баҳс - табдили интихобии арзиш аз як тасвир ба дигараш. Дарвоқеъ, ҳангоми илова кардани адади бутун ва адади касрӣ натиҷа касрӣ мешавад, аз ин рӯ тасвири амалиёт мебардорад амалиёти табдил додани аргументи бутун ба арзиши касрӣ.

Якчанд амалиёт боқӣ мондааст ҷамъва муҷаррад. Чунин амалҳо танҳо барои як намуди аргументҳо муайян карда мешаванд: қисми боқимондаи тақсим аргументҳои бутун мебошанд, stacking (амалҳои битӣ) ададҳои табиӣ мебошанд. Ma3 сершумори амалҳоро бо аломатҳои (#^) нишон медиҳад, ки намунаҳоеро, ки барои онҳо амалиёт муайян карда мешавад, нишон медиҳад. Ин як хусусияти муҳим, вале қаблан нодида гирифташудаи ҳар як амалиёт аст.

Ҳама функсияҳо амалиёти воҳиди ихтиёрӣ мебошанд. Истисно операторҳо мебошанд - функсияҳои қавсба забони сохташуда (амалиёти аслӣ).

Ёрӣ

Ёрӣ — амале, ки ба амалиёт хамрох мешавад.

Агар амалиётро амали асосї њисоб кунем, он гоњ ду амали њамроњкунандаеро, ки амалиётро таъмин мекунанд ва аз он фарќ мекунанд, фарќ кардан мумкин аст. Инҳо 1) назорати тағйирёбанда ва 2) тобеият мебошанд. Ин амал номида мешавад кумак.

Дар ин ҷо мо бояд дар бораи тарҷумаҳои русии китобҳои дарсии барномасозӣ канорагирӣ кунем ва алоҳида бигӯем. Дар матни C/R барои сабти амалҳо калимаи нав ворид карда шуд изҳороти (ифода), ки мафхумхои дастури мошиниро ба амалхои гуногун чудо карданй шуд: 1) амалиёт, 2) эъломия ва 3) тобеият («конструкцияхои идоракуни» ном дорад). Ин кӯшишро тарҷумонҳои русӣ дафн карда, “ифода”-ро бо калимаи “оператор” иваз карданд, ки:

  1. синоними калимаи мошини "фармоиш" шуд,
  2. синоними ибораи «аломати амал» баромад,
  3. инчунин микдори номахдуди арзишхои иловагй гирифт. Яъне он ба як навъ мақолаи инглисии «уҳ...» табдил ёфт.

Баррасии фаъолияти алоқаманд, ё пешбарй кардан.

Назорати тағирёбанда

Назорати тағирёбанда (UE) — эҷод/нест кардани ячейкаҳои тағирёбанда.
UE ҳангоми эълони тағирёбанда, ки аллакай бо як сабаби дигар навишта шудааст - барои нишон додани тасвири арзиш ба таври ғайримустақим рух медиҳад. Танҳо як намуд ба таври возеҳ идора карда мешавад тағирёбандаҳои иловагӣ бо истифода аз функсияҳои malloc () ва озод ().

Бояд қайд кард, ки амалҳои номуайян барои навиштан қулайтаранд, зеро онҳо умуман навиштани чизеро талаб намекунанд, аммо фаҳмидан душвортар аст - ба назар гирифтан ва шарҳ додан душвортар аст.

Тобеъият

Тобеъият — пайваст кардан/канор кардани секцияхои кабат.

Забони Си нисбат ба забони ассемблер - тобеият роҳи дигар ва амалии назорати тартиби амалҳоро пешниҳод кард. Он ҷумлаи мураккаби шифоҳиро бо тақсими дақиқ ба қисми асосӣ (тобеъияти ҷумла) ва қисми тобеъ (қисмҳои зерсатҳи / зербарнома) инъикос ва инкишоф медиҳад.

Ҳам эъломия ва ҳам пешниҳод комилан бар консепсия сохта шудаанд қабати.

Қабат

Қабат маҷмӯи маҳдуди яксатҳи интихобшудаи ифодаҳо мебошад.

Қабат якбора ва ба таври возеҳ якчанд вазифаҳоро ба ӯҳда гирифт:

  1. ба тартиб андохтани программа
  2. маҳдуд кардани дидани номҳо (бевосита),
  3. идоракунии тағирёбандаҳо (ҳуҷайраҳои хотира) (восита),
  4. муайян кардани бахшҳои зертобеъ барои пешниҳод,
  5. таърифи вазифахо ва интихобхо ва гайра.

Дар забонҳои мошинӣ мафҳуми қабат вуҷуд надошт, аз ин рӯ он дар K/R низ пайдо нашудааст ва агар чизе дар он ҷо намебуд, дар китобҳои минбаъда ҷорӣ кардани он бидъат ва озодфикрӣ хоҳад буд. Аз ин рӯ, мафҳуми қабат умуман пайдо нашудааст, гарчанде ки он бениҳоят муфид ва хеле равшан аст.

Бидуни қабат бисёр амалҳо ва қоидаҳои барномаро мухтасар ва равшан шарҳ додан ғайриимкон аст. Масалан, чаро як goto оддӣ то се kopecks бад аст ва дар ҳоле ки назарфиреб хуб аст. Кас танҳо беихтиёр қасам хӯрдан мумкин аст, чуноне ки Дийкстра кард (“Маҳорати барномасозон вазифаи баръакси он аст, ки дар барномаҳои онҳо гуфтаҳои goto зуд-зуд пайдо мешаванд.” Хулоса, танҳо бузҳо goto-ро истифода мебаранд. Дараҷаи сафедкунӣ Худост.) Дуруст, ин тавр нест. бад агар китобҳои шумо умуман, онҳо вазифадор нест, чизеро шарҳ, вале, чунон ки гуфтем, ин тақдири мо нест.

Дар омади гап, метавон тахмин кард, ки Дэн Ричи goto-ро маҳз ҳамчун калиди дарёфти мафҳуми беном гузоштааст, зеро дар ифодаи goto ҳеҷ зарурат ё зебоӣ вуҷуд надошт. Аммо зарурати шарди оддию фахмо дар бораи принципхои нави забон, ки худи Ричи додан намехост ва танхо ба консепсия асос ёфтааст. қабати.

Инҳироф

Инҳироф — тағир додани хосиятҳои муқаррарии номи нав.

Муҳимтарин инҳироф танҳо ба хосиятҳои қабати барнома алоқаманд аст ва бо як калимаи "статикӣ" тавсиф мешавад, ки дар ҳар як намуди қабат маънои гуногун дорад.

5. БОБИ ОХИР. Умумияти забонҳои амалӣ

Забонҳои барнома мебошанд образнок забонҳо (дорои тасвир, "навиштан"). Онҳо ба истифодаи ошкор ё ғайримустақими тасвир асос ёфтаанд. Ва дар ин ҷо боз зиддият пайдо мешавад: тасвири равшантар фаҳмотар аст, аммо камтар қулай аст ва баръакс.

Матрёшка Си. Системаи қабати забони барнома

(Тарҳбандии ҷадвал то ҳол расонида нашудааст, бинобар ин ҷадвал ҳамчун расм дода шудааст.)

Пас аз C, рушди забонҳои амалӣ роҳи баланд бардоштани тасвири онҳоро пеш гирифт. Муҳимтар аз ҳама барои фаҳмидани тасвири баланд насли мустақими C - забони C ++ мебошад. Вай идеяи интихоби худсаронаи амалиётҳоро ба миқдорҳо таҳия мекунад ва онро дар асоси интихоби ифодаи C, ки номи нав - объект мегирад, таҷассум мекунад. Бо вуҷуди ин, C++ аз сабаби сарбории аз ҳад зиёди коллексияҳои нав ва қоидаҳои марбут ба он ба мисли C мухтасар ва ифодакунанда нест. Дар омади гап, биёед дар бораи «бори зиёдатӣ» сӯҳбат кунем.

Аз ҳад зиёд боркунӣ ва полиморфизм

Калимаи "аз изофабор" истилоҳи мошини кӯҳна барои эҷод аст амалиёти сершумор.

Барномасозони мошин (система). сершумор Амалиёт метавонад дилгиркунанда бошад: "Ин аломати (+) чӣ маъно дорад: илова кардани ададҳои бутун, илова кардани рақамҳои касрӣ ё ҳатто ҷуброн ?! Ин рӯзҳо онҳо чунин наменависанд!" Аз ин ҷост, ки мафҳуми манфии калимаи интихобшуда («нимпайкара», «хаста»). Барои барномасози барнома, амалиётҳои сершумор санги асосӣ, дастоварди асосӣ ва мероси забони Си мебошанд, ки он қадар табиӣ аст, ки аксар вақт беҳуш аст.

Дар C++ сершумор на танҳо ба амалҳои аслӣ, балки инчунин ба функсияҳо - ҳам ҷудо ва ҳам дар синфҳо - усулҳо васеъ карда мешаванд. Дар баробари усулҳои сершумор имкони аз нав муайян кардани онҳо дар синфҳои васеъ пайдо шуд, ки онро норавшан "полиморфизм" меноманд. Омезиши полиморфизм ва изофабор омехтаи таркандаеро дод, ки ба ду полиморфизм тақсим шуд: "ҳақиқӣ" ва "ad-hoc". Шумо инро танҳо сарфи назар аз номҳои таъиншуда фаҳмида метавонед. Рох ба суи реклама бо номхои хоричй мумфарш шудааст.

Эъломияи шакли "борборӣ" дар калима беҳтар ифода карда мешавад эълони иловагӣ - илова кардани эъломияи функсияи як ном бо аргументҳои тасвири дигар.

Эъломияи шакли "полиморфизм" беҳтар калима номида мешавад эълони дубора — эъломияи барҷаста дар қабати нави васеъшавии функсияи ҳамон ном бо аргументҳои ҳамон тасвир.

Он гоҳ фаҳмидани он осон хоҳад буд, ки усулҳои як номи тасвирҳои гуногун (далелҳо) - ба таври илова эълон карда мешаванд, ва як тасвир - дубора эълон кунанд.

Калимаҳои русӣ қарор медиҳанд.

Роҳи парвоз

Баррасии мафҳумҳои забонҳои хеле маҷозӣ аҳамияти таърифи дақиқи мафҳумҳои бунёдиро тасдиқ мекунад. Бо C-и дуруст тавсифшуда, омӯзиши забонҳои хеле рамзӣ осон ва лаззатбахш хоҳад буд.

Ин махсусан барои забонҳои хеле образнок (PHP, JavaScript). Барои онҳо аҳамияти объектҳо (тасвирҳои таркибӣ) нисбат ба C++ боз ҳам баландтар мешавад, аммо худи мафҳуми тасвир номуайян ва дастнорас мегардад. Аз нуктаи назари рохат соддатар шуда бошанд хам, аз чихати фахмиш душвортар шудаанд.

Аз ин рӯ, шумо бояд ба омӯзиши забонҳои барномасозӣ аз забони Си оғоз кунед ва бо тартибе, ки забонҳои оилаи C пайдо мешаванд, ҳаракат кунед.

Барои тавсифи забонҳо низ ҳамин чиз меравад. Забонҳои гуногун нисбат ба C як маҷмӯи ҷинсҳои воҳидҳои шабеҳ ё хурдтар доранд. Шумораи намудҳо ва намунаҳо метавонанд дар ҳар ду самт фарқ кунанд: C++ нисбат ба C намудҳо бештар дорад, JavaScript камтар дорад.

Забони MySQL сазовори зикри махсус аст. Чунин ба назар мерасад, ки ҳеҷ чизи умумӣ вуҷуд надорад, аммо онро Матрешка комилан тасвир кардааст ва шиносоӣ бо ӯ тезтар ва осонтар мешавад. Ин муҳим аст, бо назардошти аҳамияти он ба веб, роҳи ошхонаи барномасозии муосир. Ва дар куҷо MySQL, он ҷо ва дигар SQL. Хуб, ҳама навъҳои Фортран-Паскал-Питонҳоро Матрёшка ҳамон тавре ки дастҳо ба даст меоранд, тавсиф мекунанд.

Ҳамин тавр, моро чизҳои бузург интизоранд - тавсифи амалии забони C ва тавсифи ягонаи забонҳое, ки аз он пайравӣ мекунанд. «Мақсадҳои мо равшан, вазифаҳо муайян шудаанд. Ба кор дароед, рафикон! (Чапакзании пурмавчи дуру дароз, ба чапакзании пурмавч табдил меёбад. Хама аз чо бармехезанд).

Андешаҳои шумо бо таваҷҷӯҳи зиёд гӯш карда мешаванд, кӯмаки шумо дар ташкили сайти лӯхтакҳо бо миннатдории бузург қабул карда мешавад. Маълумоти мукаммал дар бораи китоб дар сайт мавҷуд аст, ки дар Матрёшка Си оқилона пинҳон карда шудааст.

Манбаъ: will.com

Илова Эзоҳ