Процессуалдык программалоо – бул компьютердин Нейман архитектурасынын фонун чагылдырган программалоо. Бул тилде жазылган бардык программалар белгилүү бир маселелерди чечүү үчүн белгилүү бир алгоритмди орнотуучу буйруктардын белгилүү ырааттуулугу болуп саналат. Эң маанилүү буйрук бул дайындоо операциясы, ал компьютердин эс тутумундагы мазмунду орнотуу жана оңдоо үчүн иштелип чыккан.
Бул тилдин негизги идеясы эмнеде?
Процессуалдык программалоо тилдеринин негизги өзгөчөлүгү - маалыматты сактоо үчүн компьютердин эс тутумун колдонуу. Программанын иштеши эстутумдун мазмунун өзгөртүү, анын баштапкы абалын өзгөртүү жана каалаган натыйжаларды алуу үчүн ар кандай буйруктарды туруктуу жана кезектешип аткарууга чейин кыскарган.
Баары кантип башталды
Процедуралык программалоо Fortran деп аталган жогорку деңгээлдеги тилди түзүү менен башталган. Ал АКШда элүүнчү жылдардын башында IBM тарабынан түзүлгөн. Ал жөнүндө биринчи басылмалар 1954-жылы гана пайда болгон. Процедуралык багыттагы программалоо тили Fortran илимий-техникалык милдеттерди аткаруу үчүн иштелип чыккан. Тилдин негизги объекттери болуп сандык өзгөрмөлөр, реалдуу жана бүтүн сандар саналат. Бардык туюнтмалар төрт негизги арифметикалык эсептөөлөргө негизделген: көрсөткүчкө чыгаруу, катыш операциялары, кашаалар, логикалык манипуляциялар ЖАНА, ЭМЕС, ЖЕ.
Тилдин негизги операторлору – чыгаруу, киргизүү, өтүү (шарттуу, шартсыз), чалуу подпрограммалары, циклдер, дайындоо. Фортран тилиндеги процедуралык программалоо абдан узак убакыт бою дүйнөдө эң популярдуу болуп келген. Тилдин бар мезгилинде атайын Фортранда жазылган ар кандай китепканалардын жана программалардын чоң маалымат базасы топтолгон. Эми кийинки Fortran стандартын киргизүү боюнча иштер дагы эле жүрүп жатат. 2000-жылы Fortran F2k версиясы иштелип чыккан, анын стандарттык версиясы HPF деп аталат. Ал параллелдүү суперкомпьютерлер үчүн түзүлгөн. Айтмакчы, PL-1 жана BASIC тилдеринде Fortranдын көптөгөн стандарттары колдонулат.
Кобол тили
Cobol – процедуралык программалоо тили. Бул маалыматты иштетүүнүн көптөгөн көйгөйлөрүн чечүүгө багытталган программалоо тили. Ал ар кандай башкаруу, бухгалтердик жана чарбалык маселелерди чечүүдө активдүү колдонулат. Коболдогу процедуралык программалоо 1958-1960-жылдары АКШда иштелип чыккан. Коболдо түзүлгөн программанын өзү сырткы көрүнүшү боюнча эң жөнөкөй текстке окшош, англис тилинде сүйлөмдөрдүн бир нече түрлөрүнө ээ. Кеп топтунырааттуу жазылган операторлор бүтүн сүйлөмгө, сүйлөмдөрдүн өзү абзацтарга, абзацтар бөлүмгө бириктирилет. Программист өзү коддун белгилүү бир бөлүгүнө кайрылууну жеңилдетүү үчүн абзацтарга жана белгиленген бөлүмдөргө ысымдарды же энбелгилерди дайындайт. Советтер Союзунда программанын орус тилиндеги версиясы иштелип чыкты жана практикада абдан ийгиликтуу колдонулду.
Кобол тилиндеги процедурага багытталган программалоо ар кандай тышкы дисктерде сакталган чоң маалымат агымдарын иштетүүгө жөндөмдүү күчтүү жумушчу куралдардын аркасында ишке ашат. Бул тилде жазылган көптөгөн колдонмолор азыр да жигердүү колдонулууда.
Кызыктуу факт: АКШдагы эң көп төлөнүүчү программисттер Кобол тилинде программалар жазышат.
Алгол тили
Бул процедуралык программалоо тили 1960-жылы адистердин бүтүндөй тобу тарабынан түзүлгөн. Бул эл аралык деңгээлдеги кызматташтыктын башталышынын натыйжасы болду. Algol тапшырмаларды чечүү үчүн колдонулган белгилүү бир процедуралардын ырааттуулугу түрүндө курулган алгоритмдерди тейлөө үчүн иштелип чыккан. Адегенде тил бир аз түшүнүксүз кабыл алынган, бирок эл аралык деңгээлде таанылган, программалоонун негизги концепцияларын иштеп чыгууда жана программисттердин жаңы муунун окутууда чоң роль ойногон. Алгол тилиндеги процедуралык программалоо биринчилерден болуп "программалык блоктун структурасы", "динамикалык эстутумду бөлүштүрүү" сыяктуу түшүнүктөрдү киргизген.
Тилдин дагы бир өзгөчөлүгү бар -бул программа кодунун калган бөлүгүнө колдонулбаган кээ бир жергиликтүү белгилерди блокко киргизүү мүмкүнчүлүгү. Ооба, Algol-60, эл аралык келип чыкканына карабастан, Фортрандай популярдуу болгон эмес.
Баардык эле чет өлкөлүк компьютерлерде Algol-60дан котормочулар болгон эмес, ошондуктан бул процедуралык программалоо өзгөрүүлөргө дуушар болуп, жакшыртылган Algol-68 тили пайда болду.
Алгол-68
Бул мурунтан эле ар тараптуу жана көп максаттуу өркүндөтүлгөн программалоо тили болгон. Анын негизги өзгөчөлүгү бир эле программа менен тилдин ар кандай версияларынан эч кандай чыгымсыз которууга мүмкүн болгондугунда, бул тилди тилдин домендик диалектилерине ээ болушу мүмкүн болгон программисттердин ар кандай категорияларына ылайыкташтырууга мүмкүн болгон.
Эгерде бул тилдин мүмкүнчүлүктөрүн баалай турган болсок, Algol-68 өзүнүн мүмкүнчүлүктөрү боюнча азыр да көптөгөн программалоо тилдеринен алдыда, бирок бул процедуралык программалоо тили үчүн эффективдүү компьютерлер жок болгондуктан, жогорку сапаттагы жана тез компиляторду түзүү азырынча мүмкүн эмес.
Атактуу BASIC кантип пайда болгон?
Процедуралык программалоо тилдерине дүйнөгө белгилүү BASIC да кирет. 60-жылдардын ортосунда Дартмут колледжинин кызматкерлери Томас Куртц жана Джон Кемени дүйнөдө бардыгын тескери бурган уникалдуу программалоо тилин иштеп чыгышкан. Ал эң жөнөкөй англис сөздөрүнөн турган жана жаңы тил үйрөнчүктөр үчүн универсалдуу код, же башкача айтканда BASIC катары таанылган. Туулган жылыБул тил 1964-жылы деп эсептелет. BASIC интерактивдүү диалог режиминде компьютерде кеңири таралган. Эмне үчүн BASIC мынчалык популярдуу болуп калды? Мунун баары аны өздөштүрүүгө мүмкүн болушунча оңой болгондугуна байланыштуу, андан тышкары, тил көптөгөн ар кандай илимий, экономикалык, техникалык, оюн-зоок жана күнүмдүк милдеттерди чечүүгө жардам берген. BASICтин ар кандай демейки эрежелери бар болчу, бул азыр программалоодо жаман даамдын белгиси болуп эсептелет. Андан кийин, дүйнөдө бул тилдин көп версиялары пайда болду, алар көп учурда бири-бирине дал келбейт, бирок версиялардын бирин түшүнүү менен экинчисин оңой эле өздөштүрө аласыз. Түпнуска версиясында котормочу гана болгон, бирок азыр компилятору да бар.
60-жылдардын башында, ошол кездеги бардык тилдер ар кандай маселелерди чечүүгө багытталган, бирок алар белгилүү бир компьютер архитектурасына да байланган. Бул кемчилик катары каралып, универсалдуу программалоо тилин иштеп чыгуу чечими кабыл алынды.
PL/1
Бул АКШда IBM тарабынан түзүлгөн эң биринчи көп максаттуу универсалдуу тил. Түзүлгөн жылдары 1963-1966-жж. Бул эң кеңири таралган тилдердин бири деп эсептелет, ал компьютердик технология чөйрөсүндөгү көптөгөн маселелерди чечүүгө ылайыкташкан: пландаштыруу, ар кандай эсептөө процесстерин изилдөө, логикалык маселелерди моделдөө жана чечүү, логикалык схемаларды изилдөө, математикалык программалык камсыздоо үчүн системалардын.
PL/1 түзүлгөндө практикада Algol-60, Fortran, Cobol ар кандай түшүнүктөр жана аспаптар колдонулган. PL/1 эң ийкемдүү жана эң бай тил болуп эсептелет, ага мүмкүндүк береткыстармалар түзүү, мүчүлүштүктөрдү оңдоо учурунда да даяр программанын текстин оңдоо. Бул тил кеңири таралган жана анын котормочулары компьютерлердин көптөгөн түрлөрүндө колдонулат. IBM азыр да бул тилди колдоону улантууда.
Паскаль
Паскаль - бул абдан популярдуу процедуралык тил, айрыкча жеке компьютерлер үчүн колдонулат. Бул процедуралык программалоо тили билим берүү тили катары түзүлгөн, анын түзүлгөн жылдары 1968-1971-жж. Цюрихтеги ETHде Никлаус Вирт тарабынан иштелип чыккан. Бул программалоо тили улуу француз математиги жана философу Блез Паскалдын атынан аталган. Вирттин негизги милдети эң жөнөкөй синтаксиске, кадимки компилятордун жардамы менен машиналык кодго айландырылган аз сандагы негизги структураларга негизделген тилди түзүү болгон. Ал ийгиликке жетишкенин белгилей кетүү керек.
Паскаль программалоонун процедуралык парадигмасы төмөнкү принциптерге негизделген:
- Структураланган программалоо. Бул учурда, подпрограммалар, көз карандысыз маалымат структуралары колдонулат. Программист оңой окула турган кодду, түшүнүктүү программа түзүмүн түзө алат, тестирлөө жана мүчүлүштүктөрдү оңдоону жөнөкөйлөтөт.
- Программалоо жогорудан ылдыйга чейин курулган. Тапшырма чечиле турган жөнөкөй тапшырмаларга бөлүнөт, ал эми курулган кошумча тапшырмалардын негизинде жалпы тапшырманын акыркы чечими азыртадан эле курулуп жатат.
C тили
Процедуралык программалоо C Bell Labs тарабынан UNIX операциялык системасын ишке ашыруу үчүн иштелип чыккан, башында катары каралбаганмасса. Иштеп чыгуучулар Assemblerди жөн эле алмаштырууну пландашкан, бирок жөн гана өзүнчө Си тили пайда болгон. Ал жогорку деңгээлдеги программалоо тилдеринин мүмкүнчүлүктөрүнө ээ жана ошол эле учурда функционалдык мамилелерге жетүү үчүн каражаттарга ээ болгондугу менен уникалдуу. Си тилинде процедура деген түшүнүк жок, синтаксиси абдан жөнөкөй, катаал маалыматтарды терүү жок, бир эле учурда бир нече иш-аракеттерди билдирүү мүмкүнчүлүгү камтылган. Бул тил дароо программисттердин көңүлүн буруп, аларга кызыктуу программаларды түзүү үчүн кошумча мүмкүнчүлүктөрдү берген. Бүгүнкү күнгө чейин Си тили абдан популярдуу, ал программалоо боюнча адистер тарабынан кеңири колдонулат. Азыр ал көптөгөн компьютердик платформаларда ишке ашырылууда.
Процессуалдык тилдердин өзгөчөлүгү эмнеде?
Алардын бир нечеси гана бар, андыктан ар бири жөнүндө сөз кылууга арзыйт. Бул:
- Модуль. Өзүнчө файлда сакталган программанын бир бөлүгү. Модуль белгилүү бир өзгөрмөлөр, константалар же объекттер менен байланышкан варианттардын топтомун ишке ашырат.
- Функция. Бул белгилүү бир көйгөйдү чечүүчү толук, көз карандысыз код бөлүгү.
- Дайындардын түрү. Бул концепция бир түргө аныкталган белгилүү бир маалымат массивинен кабар берет.
Процессуалдык жана объектиге багытталган программалоонун ортосундагы айырмалар
Көптөгөн программисттер процедуралык жана объектиге багытталган программалоо тилдери программалык камсыздоону же веб тиркемелерди түзүүдө практикада колдонулаарын билишет. Кандай айырма бар? Баары жөнөкөй, процедуралык жана объективдүүбагытталган программалоо иш жүзүндө бардык жерде колдонулат, бирок кээ бир айырмалоочу жагдайлар бар. Иштин жүрүшүндө программист өзүнө конкреттүү тапшырма коюп, аны майда-чүйдөсүнө бөлүп, ишке ашыруу үчүн белгилүү бир тилдик конструкцияларды (циклдер, функциялар, бутактар, структуралык операторлор) тандайт. Бул адис процедуралык программалоону жетектейт дегенди билдирет.
OOP "объект" түшүнүгүн камтыйт, антпесе алар класстык инстанциялар деп да аталат, анткени класстан көп нерсе тукум кууп өткөн. Мурас - бул OOPтун айырмалоочу принциптеринин дагы бири.
Процедуралык жана функционалдык тилдер
Процессуалдык жана функционалдык программалоо бирдейби же жокпу? Функционалдык программалоо дискреттик математикадагы маселелерди чечүүгө багытталган, ал эми процедуралык программалоо бир аз кененирээк түшүнүк жана маселелердин айрым түрлөрүн чечүү үчүн көптөгөн программалоо тилдерин камтыйт.
Өзүңүз үчүн эмнени тандоо керек?
Көптөгөн процедуралык программалоо тилдери эскирген. Ооба, алардын айрымдары дагы эле өркүндөтүлүп жатат, бирок дагы эле алардын бир бөлүгүнө гана көңүл буруу керек. Мисалы Си тили. Азыркы учурда дүйнөдө кеңири таралган, көптөгөн заманбап платформалар атайын Си тилинде курулган, андыктан программалоо тармагында өнүгүүнү кааласаңыз, анда Си тилин жакшыраак билиңиз., сиз процедуралык программалоо тилдерине байланыштуу эмес, башкасын тандай аласыз.