Матрешка С. Катмарлуу программа тил системасы

Келгиле, химияны Менделеевдин мезгилдик системасы (1869)сиз элестетүүгө аракет кылалы. Канча элементтерди эстен чыгарбоо керек эле, жана эч кандай тартипте... (Андан кийин - 60.)

Бул үчүн, бир эле учурда бир же бир нече программалоо тилдери жөнүндө ойлонуңуз. Ошол эле сезимдер, баягы эле чыгармачылык башаламандыктар.

Ал эми азыр биз XNUMX-кылымдын химиктеринин бардык билимдерин сунуш кылгандагы сезимдерин жана бир аз көбүрөөк, бир Мезгилдик таблицада кайрадан жашай алабыз.

Матрешка С. Катмарлуу программа тил системасы


«Матрёшка С. Программа тилинин катмарлуу системасы» Си тилинин бардык бирдиктерин бир карап көрсөтөт. Бул аларды уюштурууга, эскирген маалыматты оңдоого, ал тургай программанын концепциясын тактоого мүмкүндүк берет.

Бүгүнкү күндө программалоо маалыматы 150 жыл мурунку химиялык элементтерге караганда системалаштырууга муктаж.

Биринчи зарылдык - бул окутуу. Менделеев лекцияны кайсы элементтен баштоо керек деген суроого туш болгондон кийин өзүнүн системасын түзө баштаган: О, Н, Н, Хе, Ау... Ошол эле учурда ага жеңилирээк болгон – химиядан эң мыкты студенттерге – студенттерге сабак берген. Санкт-Петербург университети. Ал эми программалоо мурдатан эле мектепте окутулат жана жакында бала бакчада башталат.

Экинчи муктаждык - бул илимий мамиле. Мезгилдик системанын жардамы менен жаңы элементтер ачылып, эскилери тууралуу маалыматтар оңдолгон. Ал атомдун моделин түзүүгө жардам берген (1911). Жана башка.

Үчүнчү зарылчылык – программанын концепциясын тактоо.

Заманбап программалоонун бир буту 50-кылымдын XNUMX-жылдарында тыгылып калган. Ал кезде программалар жөнөкөй эле, бирок машиналар жана машина тилдери татаал болгондуктан, баары машиналар менен тилдердин тегерегинде болгон.

Азыр баары тескерисинче: программалар татаал жана негизги, тилдер жөнөкөй жана экинчилик. Бул бардыгына тааныш болгон прикладдык ыкма деп аталат. Бирок студенттер жана иштеп чыгуучулар баары бирдей экенине ынанышат.

Бул бизди Приватдозент Менделеевдин биринчи лекциясына алып келет. Биринчи курстарга эмне айтуу керек? Чындык кайда? Бул суроо.

Бул суроого "Матрёшка С" китеби жооп берет. Программа тилинин катмарлуу системасы». Анын үстүнө, бул студенттерге гана эмес, ошондой эле даярдалган программисттерге да багытталган, анткени алар, б.а., биз чындыкты издеп, дүйнө таанымын өзгөртүүбүз керек.

Кийинки китептин кыскача мазмуну.

1. тааныштыруу

1969-жылы Си тили түзүлгөн, ал фундаменталдуу программалоо тили болуп, 50 жыл бою сакталып калган. Эмне үчүн мындай? Биринчиден, анткени C колдонулган программаны берген тил гумандуу анын ордуна көрүү машина. Бул жетишкендик C үй-бүлөсүндөгү тилдер менен камсыздалган: C++, JavaScript, PHP, Java, C# жана башкалар. Экинчиден, бул кыска жана кооз тил.

Бирок Си тилинин өзү адатта машина ассемблери менен аралашып, анын кабылдоосун татаалдантат жана бурмалайт. Дагы бир чети тилге белгилүү бир “философияны” таңуулоо: процедуралык, объективдүү, функционалдык, компиляциялык, интерпретациялоо, терүү ж.б.у.с. Бул эмоцияны кошот, бирок тилди жакшыраак сүрөттөөгө жардам бербейт.

Чындык ортодо, ал эми Си тили үчүн ал философиялык жана машиналык кабыл алуунун ортосунда так турат.

Си тили өз алдынча эмес, кадимки жазма тилге баш ийет жана ошол эле учурда ассемблер тилинин өзүн башкарат. Бул позиция сүрөттөйт Программанын кеп модели, ага ылайык программа үч багынуучу түргө бөлүнөт: сөз, код, буйрук. Си тили экинчи, код түрү үчүн жооптуу.

Программада тилдин ордун аныктагандан кийин, сиз ал жөнүндө маалыматты уюштура аласыз Катмарлуу программа тил системасы, С тилин мезгилдик системанын духунда чагылдырган - бир бетте.

системасы эске алуу менен курулган прикладдык тилдердин жамааттары, алардын сүйлөө баш ийүүсүнөн келип чыккан. Матрешка C бирдиктеринин бир топтому ар кандай тилдерди сүрөттөп, салыштырууга мүмкүндүк берет, Матрешкалардын сериясын түзүүгө: C++, PHP, JavaScript, C#, MySQL, Python жана башкалар. Ар кандай тилдер фундаменталдык тилдин бирдиктери менен сыпатталганы татыктуу жана туура.

2. 1-ГЛАВА. Программанын кеп модели. Таза C

Биринчи бөлүмдө келтирилген программанын кеп модели, прикладдык мамилени чагылдырат. Анын айтымында, программанын үч айкын ырааттуу түрү бар:

  1. сүйлөө - маселени чечүүдө программисттин түз сөзү;
  2. коддолгон - чечимди C тилинде (же башка) математикалык формага коддоо
  3. жана командалык - түздөн-түз машина буйруктары.

Сүйлөө модели эмне үчүн С жөнөкөй жана түшүнүктүү тил экенин түшүндүрөт. Си бизге тааныш болгон адамдын сүйлөө образында жана окшоштугунда курулган.

Программанын биринчи түрү программисттин түз сөзү. Сүйлөө адамдын ой жүгүртүүсүнө туура келет. Башталгыч программисттер программаларды сүйлөөнүн жардамы менен жазышат - адегенде орус тилинде, андан кийин кадам-кадам аракеттерди код тилине которуу. Жана дал ушул моделдин негизинде Си тили түзүлгөн.

Программисттин сөздө айтылган корутундулары коддолгон сандык формага которулат. Бул трансформация деп аташ керек чагылдыруу, сүйлөө жана код бир мүнөзгө ээ болгондуктан (чагылышуу - төрөлүү - гендер). Эгерде программанын кеп (сол жакта) жана коддуу (оң жакта) түрлөрүн салыштырсак, бул абдан ачык көрүнүп турат.

Матрешка С. Катмарлуу программа тил системасы

Ой жүгүртүү өтө жөнөкөй - эки гана түрдөгү туюнтмалар менен ишке ашары кызык.

Бирок, Си тилинин заманбап сыпаттамасы (1978-жылдан баштап) тилди жалпысынан сүрөттөө үчүн же өзгөчө ой жүгүртүү тапшырмасы үчүн жетиштүү аталыштарды камтыбайт. Ошондуктан, чыгармачылык менен алектенип, бул ысымдарды киргизүүгө аргасыз болуп жатабыз.

Сөздөрдү тандоо так жана так болушу керек. Бул өзгөчө мамилени талап кылды, кыскача төмөнкүчө баяндалат: эне тилди катуу колдонуу. Англис үчүн бул англис болмок, бирок биз англис эмеспиз. Андыктан колубузда болгонду пайдаланып, орусча сүйлөгөнгө аракет кылабыз.

Рефлексия туюнтмалардын эки түрү менен жүзөгө ашырылат:

  1. эсептөө (HF) - объекттин касиеттеринин өзгөрүшүн чагылдырат. Объекттин касиети сан менен туюндурулат, анда касиетке болгон иш-аракет санга жасалган иш-аракет - операция.
  2. баш ийүү (Пч) - аракеттердин тартибин өзгөртүүнү чагылдырат. Пчтин прототиби сүйлөө татаал сүйлөм болуп саналат, ошондуктан Пчтин көпчүлүк түрлөрү “эгер”, “антпесе”, “болсо”, “үчүн” баш ийүүчү байланыштары менен башталат. Башка типтеги компьютерлер аларды толуктап турат.

Айтмакчы, C сыпаттамада эсептөө туюнтмаларынын аталышы жок экенине ишене аласызбы - алар жөн эле "сөз айкаштары" деп аталат? Мына ушундан кийин баш ийүүнүн түрүнүн аталышы жана ассоциациясы жок экендиги, чындыгында эле аттардын, аныктамалардын жана жалпылоолордун аздыгы таң калыштуу болбой калат. Себеби, атактуу K/R («The C Language», Kernighan/Ritchie, 1978) сүрөттөмө эмес, тилди колдонуу боюнча колдонмо болуп саналат.

Бирок, мен дагы эле тилди сүрөттөп алгым келет. Ошондуктан ал сунуш кылынат Катмарлуу программа тил системасы.

3. 2-ГЛАВА. Катмар системасы. Кыскача C

Ар кандай сүрөттөмө так жана өтө кыска болушу керек. Программалык тилде фронталдык сүрөттөмө кыйын.

Бул жерде бизде программа бар. Ал модулдардан турат. Модульдер подпрограммалардан жана коллекциялардан (структурадан) турат. Подпрограммалар жеке туюнтмалардан турат: декларациялар, эсептөөлөр, баш ийүү. Субординациянын онго жакын түрү бар. Субординация поддеңгээлдерди жана подпрограммаларды байланыштырат. Ошондой эле бир нече жарнамалар бар. Бирок, декларациялар подпрограммаларда жана поддеңгээлдерде гана эмес, модулдар менен жыйнактарда да камтылган. Ал эми көпчүлүк сөз айкаштары сүрөттөп берүү өтө кыйын болгон сөздөрдөн турат, алар адатта эки тизмеде берилет - оригиналдуу жана туунду сөздөр, алар менен тилди үйрөнүү жана колдонуу учурунда тааныш болосуз. Буга тыныш белгилерин жана башка бир катар туюнтмаларды кошолу.

Мындай презентацияда кимдин кимдин үстүндө турганын түшүнүү оңой эмес.

Тилди сүрөттөөгө түз иерархиялык мамиле өтө татаал болмок. Айланма издөө тилдин сүйлөө мүнөзүнө жана буйруктук жагына жараша сүрөттөлүшүнө алып келет. Ошентип, Менделеевдин мезгилдик системасы менен жарым-жартылай дал келген катмар системасы пайда болгон, ал дагы кабат. Ал жарыялангандан 42 жыл өткөндөн кийин (1869) белгилүү болгондой, системанын мезгилдүүлүгү электрондук катмарлар (1911, атомдун Бор-Резерфорд модели). Ошондой эле, Катмарлуу жана Мезгилдүү системалар бир беттеги бардык бирдиктердин таблицадагы жайгашуусу боюнча окшош.

Тилдик бирдиктердин сыпаттамасы кыскача – сөз айкаштарынын 10 түрү жана башка бирдиктердин 8 түрү гана, ошондой эле мазмундуу жана визуалдуу. Биринчи таанышуу үчүн адаттан тыш болсо да.

Тил бирдиктери 6 деңгээлге бөлүнөт:

  1. бирдиктер - столдун катарлары
  2. бөлүмдөр - уруулардын атайын топтору (биринчи саптын бөлүктөрү)
  3. тукум - клеткалар (бөлүнүүнүн негизги деңгээли)
  4. superspecies - түр бөлүүчү (сейрек деңгээл)
  5. түрлөрү - уячанын түбүндө же өзүнчө бирдик формулалары
  6. үлгүлөр - бирдиктердин өздөрү (сөздөр үчүн гана)

Үлгү сөздөр сүрөттөйт сөздүк - бирдей алты деңгээлден турган өзүнчө подсистема.

Си тилинин кеп компоненти айкын көрүнүп турат, бирок ал дагы эле сүрөттөлүүгө татыктуу. Бирок тилдин командалык бөлүгү компиляциялык башкарууга так байланыштуу, анын жүрүшүндө программанын үчүнчү түрү түзүлөт - команда. Бул жерде биз Си тилинин эң кызыктуу аспектине келдик: сулуулук.

4. КИЙИНКИ БӨЛҮМДӨР. Красавчик Си

Си тили заманбап программалоонун негизи болуп саналат. Неге? Биринчиден, кепке эң көп дал келгендиктен. Экинчиден, ал машина номерлерин иштетүүнүн чектөөлөрүн эң сонун айланып өткөндүктөн.

Си так эмнени сунуштады? Сүрөт жана катмар.

"Сүрөт" деген сөз гректин "prototype" - "тип" деген сөзүнөн келген англисче "тип" сөзүнүн котормосу. Орус тилинде “тип” деген сөз айтылып жаткан түшүнүктүн негизин бербейт, анын үстүнө “тип” деген көмөкчү маани менен чаташтырылган.

Башында, сүрөт таза машиналык эсептөө маселесин чечип, андан кийин объект тилдердин жаралышы үчүн учуу тилкеси болуп калды.

катмар дароо эле бир нече маселелерди чечти - машина жана колдонулган. Демек, кароо бир тапшырмадан турган сүрөт менен башталып, көп тапшырмалуу катмарга өтөт.

Тарыхый программалоонун жагымсыз өзгөчөлүктөрүнүн бири – көпчүлүк түшүнүктөр, анын ичинде негизги түшүнүктөр да аныктамаларсыз берилген. "Программалоо тилинде (дарыялардын аталышы) бүтүн жана калкыма сан түрлөрү бар..." жана алар андан ары тырмап коюшту. “Тип” (образ) деген эмне экенин аныктоонун кажети жок, анткени авторлор өздөрү муну толук түшүнүшпөйт жана “түшүнүктүү болуш үчүн” жаап коюшат. Алар дубалга кадалган болсо, алар бүдөмүк жана пайдасыз аныктама берет. Бул чет өлкөлүк сөздөрдүн артына жашынууга көп жардам берет: орус авторлору үчүн - англисче (тип), англистер үчүн - французча (субрутин), грекче (полиморфизм), латынча (инкапсуляция) же алардын айкалыштарынан (ad-hoc полиморфизм).

Бирок бул биздин тагдырыбыз эмес. Биздин тандообуз таза орус тилинде көтөрүлгөн визор менен аныктамалар.

сүрөт

сүрөт 1) чоңдуктун ички касиеттерин жана 2) чоңдукка амалдарды тандоону аныктоочу чоңдуктун префигуративдик аталышы.

«Тип» (тип) деген сөз аныктаманын биринчи бөлүгүнө туура келет: «чоңдуктун ички касиеттери». Ал эми сүрөттөлүштүн негизги мааниси экинчи бөлүктө: "сандарга карата операцияларды тандоо".

С тилиндеги сүрөттү киргизүүнүн башталгыч чекити кадимки эсептөө, мисалы, кошуу операциясы.

Кагаз Математика кол менен жазылганбы же басылганбы, сандардын түрлөрүн көп айырмалай албайт, адатта, алар реалдуу деп ойлошот. Ошондуктан, алардын кайра иштетүү операциялары бир түшүнүктүү болуп саналат.

машина Математика сандарды бүтүн жана бөлчөк сандарга катуу бөлөт. Сандардын ар кандай түрлөрү эстутумда ар кандай сакталат жана процессордун ар кандай көрсөтмөлөрү менен иштетилет. Мисалы, бүтүн сандарды жана бөлчөктөрдү кошуу боюнча инструкциялар эки башка процессор түйүнүнө туура келген эки башка инструкция болуп саналат. Бирок бүтүн жана бөлчөк аргументтерди кошуу үчүн эч кандай буйрук жок.

Колдонулган математика, башкача айтканда, Си тили, сандын түрлөрүн бөлүп, бирок амалдарды бириктирет: бүтүн жана/же бөлчөктөр үчүн кошуу бир аракет белгиси менен жазылат.

Концепциянын образынын так аныктамасы башка эки түшүнүк жөнүндө сөз кылууга мүмкүндүк берет: чоңдук и операция.

Магнитуда жана операция

Саны — иштетилип жаткан номер.

операция - акыркы санды (жалпы) алуу үчүн баштапкы маанилердин (аргументтердин) маанилерин иштетүү.

Мааниси жана иштеши бири-бири менен байланышкан. Ар бир операция чоңдук болуп саналат, анткени анын сандык натыйжасы бар. Ал эми ар бир маани процессордун регистрине/регистринен маанини өткөрүүнүн натыйжасы, башкача айтканда, операциянын натыйжасы. Мындай мамилеге карабастан, эң негизгиси сөздүктүн ар кайсы бөлүмдөрүндө бир сөздүн кайталанышы менен болсо да, алардын өзүнчө сүрөттөлүшү мүмкүн, бул MA3-те болот.

Машина ыкмасы программист колдонгон бардык сандарды экиге бөлгөн буйруктар и маалымат. Буга чейин экөө тең сандар болчу, мисалы, буйруктар сандык коддор менен жазылган. Бирок, прикладдык тилдерде буйруктар сандар болбой калып, санга айланган сөз менен и иш белгилери. Сан катары “маалымат” гана калат, бирок аларды ушинтип атай берүү акылга сыйбаган нерсе, анткени машинадан математикалык көз карашка өтүүдө сандар түпнускага бөлүнгөн чоңдуктар болуп саналат (маалымат) жана акыркы (талап кылынат). "Белгисиз маалыматтар" акылсыз угулат.

Командалар дагы эки түргө бөлүндү: математикалык жана кызматтык. Математикалык аракеттер – операциялар. Расмий маалыматтарга кийинчерээк кайрылабыз.

Си тилдеринде кадимки кагаз жана машинанын бир мааниси жок, же жалгыз математикалык операциялар дээрлик универсалдуу түрдө көп болуп калат.

Көптөгөн операциялар – ар түрдүү типтеги аргументтүү жана ар түрдүү, мааниси, аракеттери окшош бир аталыштагы бир нече операциялар.

Бүтүн сан аргументтери бүтүндөй операцияга, ал эми бөлчөк аргументтер бөлчөк операцияга туура келет. Бул айырма өзгөчө 1/2 туюнтмасы 0 эмес, жалпы 0,5 бергенде, бөлүү операциясында айкын көрүнүп турат. Мындай белги кагаз математикасынын эрежелерине туура келбейт, бирок Си тили аларды аткарууга умтулбайт (Фортрандан айырмаланып) - ал өзүнө ылайык ойнойт. колдонулат эрежелер.

Бүтүн жана бөлчөктөрдү аралаштырган учурда, бир гана туурасы кошулат аргументтин баалуулуктарын чыгаруу — маанини бир сүрөттөлүштөн экинчисине тандап трансформациялоо. Чынында эле, бүтүн жана бөлчөк санды кошкондо, натыйжа бөлчөк болот, ошондуктан операциянын сүрөтү алат бүтүн аргументти бөлчөк мааниге айландыруу операциясы.

Бир катар операциялар калды көптүкжана бойдок. Мындай операциялар аргументтердин бир түрү үчүн гана аныкталат: бөлүү калдыгы – бүтүн аргументтер, стектөө (биттик операциялар) – натурал бүтүн сандар. Ma3 операция аныкталган сүрөттөрдү көрсөтүүчү белгилер (#^) менен операциялардын көптүгүн көрсөтөт. Бул ар бир операциянын маанилүү, бирок мурда көз жаздымда калган касиети.

Бардык функциялар ыктыярдуу бирдик операциялары. операторлор өзгөчө болуп саналат - кашаа эмес функциялар, тилге курулган (оригиналдуу амалдар).

Жардам

Жардам - операция менен коштолгон аракет.

Эгерде операцияны негизги аракет катары карасак, анда операцияны камсыз кылган жана андан айырмаланган эки коштоп жүрүүчүнү ажырата алабыз. Булар 1) өзгөрмөлүү башкаруу жана 2) баш ийүү. Бул иш-аракет деп аталат жардам.

Бул жерден четтеп, программалоо окуу китептеринин орусча котормолору жөнүндө өзүнчө айтуу керек. К/Р текстине аракеттерди жазуу үчүн жаңы сөз киргизилген билдирүү (экспрессия), ал машиналык команданын түшүнүктөрүн түрдүү аракеттерге бөлүүгө аракет кылган: 1) операция, 2) жарыялоо жана 3) баш ийүү («башкаруу конструкциялары» деп аталат). Бул аракет орус котормочулары тарабынан көмүлүп, "сөздү" "оператор" деген сөзгө алмаштырган:

  1. машина сөзүнүн синонимине айланган "буйрук",
  2. деген сөз айкашынын синоними болуп чыкты, иш-аракет белгиси,
  3. ошондой эле чексиз сандагы кошумча баалуулуктарды алды. Башкача айтканда, ал Англис макаласына окшош "uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"

коштоочу иш-аракеттерди карап көрөлү, же жардам.

Өзгөрмөлөрдү башкаруу

Өзгөрмөлөрдү башкаруу (UP) - өзгөрүлмө уячаларды түзүү/жок кылуу.
UE өзгөрмө жарыялоодо кыйыр түрдө пайда болот, ал буга чейин башка себеп менен жазылган - маанинин сүрөтүн көрсөтүү үчүн. Бир гана көрүнүш ачык башкарылат кошумча өзгөрмөлөр malloc() жана free() функцияларын колдонуу.

Белгилей кетчү нерсе, жашыруун иш-аракеттер жазуу үчүн ыңгайлуураак, анткени алар эч нерсе жазууну талап кылбайт, бирок аларды түшүнүү кыйыныраак - аларды эске алуу жана чечмелөө кыйыныраак.

Субординация

Субординация — катмар бөлүмдөрүн туташтыруу/өчүрүү.

Си тили ассемблер – баш ийүүчүлүктөн айырмаланган иш-аракеттердин тартибин башкаруунун прикладдык ыкмасын сунуш кылган. Ал баш мүчө (багынычтуу сүйлөм) жана багыңкы бөлүккө (багыңдын/багыңдын бөлүмдөрү) так бөлүнүшү менен кеп татаал сүйлөмдү чагылдырат жана өнүктүрөт.

Декларация да, тапшыруу да толугу менен концепцияга негизделген катмар.

Катмар

Катмар туюнтмалардын чектелген бир деңгээлдеги тандалма жыйындысы.

катмар ачык жана кыйыр түрдө бир эле учурда бир нече милдеттерди алды:

  1. программасын уюштуруу
  2. аты-жөнүн көрүү мүмкүнчүлүгүн чектөө (кыйырсыз түрдө),
  3. өзгөрмөлөрдү башкаруу (эс тутум клеткалары) (жашыруун),
  4. багынычтуу сүйлөмдөрдү аныктоо,
  5. функциялардын жана тандоолордун аныктамалары жана башкалар.

Машина тилдеринде катмар деген түшүнүк болгон эмес, ошондуктан ал К/Рде пайда болгон эмес, эгер бир нерсе жок болсо, аны кийинки китептерге киргизүү адаштык жана эркин ой жүгүртүү болмок. Ошондуктан, катмар деген түшүнүк таптакыр пайда болгон эмес, бирок ал өтө пайдалуу жана ачык-айкын.

Катмарсыз программанын көптөгөн аракеттерин жана эрежелерин кыскача жана так түшүндүрүп берүү мүмкүн эмес. Мисалы, эмне үчүн үч копейк сыяктуу жөнөкөй гото жаман, ал эми татаал болсо жакшы. Дейкстра айткандай, айласыз ант бере аласыз («программисттердин чеберчилиги – бул алардын программаларында goto билдирүүлөрүнүн пайда болуу жыштыгына тескери түрдө көз каранды болгон функция». Кыскасы, goto-ну текелер гана колдонушат. Актануу деңгээли – Кудай.) Туура, бул анча деле коркунучтуу эмес, эгерде сиздин китептериңиз Бизге эч нерсени түшүндүрүүнүн кереги жок, бирок, жогоруда айткандай, бул биздин тагдырыбыз эмес.

Айтмакчы, Дэн Ричи гото дегенди кандайдыр бир аты жок концепцияны издөө үчүн ачкыч катары калтырган деп болжолдоого болот, анткени goto туюнтмасында эч кандай муктаждык же сулуулук жок болчу. Бирок Ричи өзү бергиси келбеген жана так концепцияга негизделген тилдин жаңы принциптерин жөнөкөй жана түшүнүктүү түшүндүрүүгө муктаждык бар эле. катмар.

Четтөө

Четтөө — жаңы аталыштын кадимки касиеттерин өзгөртүү.

Эң маанилүү четтөө программанын катмарынын касиеттери менен так байланыштуу жана катмардын ар бир түрүндө ар кандай мааниге ээ болгон "статикалык" деген бир сөз менен сүрөттөлөт.

5. АКЫРКЫ ГЛАВА. Колдонмо тилдердин жалпылыгы

Колдонмо тилдер болуп саналат каймана тилдер (сүрөтү бар, "терилген"). Алар сүрөттү ачык же кыйыр түрдө колдонууга негизделген. Анын үстүнө, бул жерде дагы бир карама-каршылык пайда болот: ачык сүрөттөлүш түшүнүктүү, бирок анча ыңгайлуу эмес жана тескерисинче.

Матрешка С. Катмарлуу программа тил системасы

(Столдун макети али жеткириле элек, ошондуктан таблица сүрөт менен көрсөтүлгөн.)

С кийин, прикладдык тилдердин өнүгүшү алардын образдуулугун жогорулатуу жолуна түшкөн. Жогорку сүрөттөлүштү түшүнүү үчүн эң маанилүүсү С тилинин түздөн-түз тукуму - С++ тили. Ал чоңдуктар үчүн операцияларды ыктыярдуу тандоо идеясын иштеп чыгат жана аны жаңы аталышка - объектке ээ болгон синтетикалык туюнтма тандоонун негизинде ишке ашырат. Бирок, C++ жаңы коллекция түрлөрүнүн ашыкча жүктөлүшүнө жана аларга байланыштуу эрежелерге байланыштуу C сыяктуу кыска жана экспрессивдүү эмес. Баса, «ашып кетүү» жөнүндө сөз кылалы.

Ашыкча жүктөө жана полиморфизм

"Ашыкча жүктөө" деген сөз түзүү үчүн эскирген машина үйрөнүү термини көп операциялар.

Машина (система) программисттери көптүк операциялар кыжырды келтириши мүмкүн: “Бул белги (+) эмнени билдирет: бүтүн сандарды кошуу, бөлчөктөрдү кошуу, жада калса жылдыруу?! Биздин убакта алар минтип жазышчу эмес!” Демек, тандалган сөздүн терс маанидеги мааниси («ашып кетүү», «чарчаган»). Колдонмо программисти үчүн бир нече операциялар Си тилинин негизи, негизги жетишкендиги жана мурасы болуп саналат, ошондуктан алар көп учурда таанылбайт.

C++ тилинде көптүк баштапкы операцияларга гана эмес, функцияларга да - жекече жана класстарга бириктирилген - методдорго да жайылтылат. Көптөгөн методдор менен кеңейтилген класстарда аларды жокко чыгаруу мүмкүнчүлүгү пайда болду, ал бүдөмүк "полиморфизм" деп аталды. Полиморфизм менен ашыкча жүктүн айкалышы жарылуучу аралашманы пайда кылды, ал эки полиморфизмге бөлүнөт: "чыныгы" жана "ад-хок". Муну ыйгарылган ысымдарга карабастан гана түшүнүүгө болот. Жарнамага жол чет элдик аттар менен төшөлгөн.

"Ашыкча жүктөө" түрүндөгү декларация сөз менен жакшыраак чагылдырылган кошумча билдирүү — башка сүрөттүн аргументтери менен бир аталыштагы функциянын декларациясын кошуу.

"Полиморфизм" формасынын декларациясы жакшыраак деп аталат кайра жарыялоо — бир эле сүрөттөлүштүн аргументтери менен бир эле аталыштагы функциянын жаңы кеңейтүү катмарында кайталанган декларация.

Ошондо ар кандай сүрөттөрдүн (аргументтердин) бирдей ыкмаларын түшүнүү оңой болот - кошумча жарыяланды, жана бир сүрөт - кайра жарыялашты.

Орусча сөздөр чечет.

Конуу тилкеси

Жогорку каймана маанидеги тилдердин түшүнүктөрүн карап чыгуу фундаменталдык түшүнүктөрдү так аныктоонун маанилүүлүгүн тастыктайт. C туура сүрөттөлгөн менен, жогорку каймана тилдерди үйрөнүү жеңил жана жагымдуу болот.

Бул үчүн өзгөчө маанилүү имплициттүү өтө образдуу тилдер (PHP, JavaScript). Алар үчүн объектилердин (композиттик сүрөттөр) маанилүүлүгү C++ тилине караганда дагы жогору болот, бирок сүрөттөлүш деген түшүнүктүн өзү кыйыр жана түшүнүксүз болуп калат. Ыңгайлуулук жагынан алар жөнөкөйлөштүрүлсө, түшүнүү жагынан кыйыныраак болуп калышты.

Ошондуктан, сиз C тили менен программалоо тилдерин үйрөнүп баштоо керек жана C үй-бүлө тилдери пайда болгон тартипте андан ары жылышыбыз керек.

Ошол эле тилдерди сүрөттөөгө да тиешелүү. Ар кандай тилдерде С тилине караганда бирдей же кичине бирдик гендердик топтому бар. Типтердин жана үлгүлөрдүн саны эки багытта да айырмаланышы мүмкүн: C++те Ске караганда көп түрлөрү бар, ал эми JavaScript азыраак.

MySQL тили өзгөчө сөзгө татыктуу. Жалпы эч нерсе жоктой сезилет, бирок ал Матрешка тарабынан эң сонун сүрөттөлгөн жана аны менен таанышуу тезирээк жана оңой болуп калат. Бул маанилүү, веб үчүн анын маанисин эске алуу менен - ​​заманбап программалоонун ашкана жолу. Жана MySQL бар жерде башка SQL бар. Ооба, Фортран-Паскаль-Питондордун ар кандай түрлөрүн да Матрешка колуна кармаары менен сүрөттөйт.

Ошентип, бизди чоң нерселер күтүп турат - Си тилинин колдонмо сыпаттамасы жана андан кийинки тилдердин бирдиктүү сыпаттамасы. «Биздин максаттарыбыз так, милдеттерибиз аныкталган. Ишке киришкиле, жолдоштор! (Дургон, узакка созулган кол чабуулар, овацияга айланып. Бардыгы ордунан турушат).

Сиздин пикирлериңиз чоң көңүл буруу менен угулуп, уя куурчактардын веб-сайтын түзүүгө жардамыңыз чоң ыраазычылык менен кабыл алынат. Китеп жөнүндө толук маалымат веб-сайтта, акылдуулук менен Матрешка Сда жашырылган.

Source: www.habr.com

Комментарий кошуу