5-мавзу. Функционал дастурлаш.
Режа:
Aсослари
Функционал тиллар
Хариталар ва функционал имкониятлар
Aтомларнинг хусусиятлари
Функционал дастурлаш маълумотларга ишлов бериш жараёнини универсал функциялардан фойдаланган ҳолда уларни хариталар тузилиши сифатида кўриб чиқади. Ушбу ёндашув билан дастур фақат битта маълумот турига киради. Функционал дастурлаш мустақил равишда ишлаб чиқилган воситалар ва ахборот жараёнларини ташкил этиш усулларининг синтактик номувофиқлигини бартараф этишга муваффақ бўлди
Символли ифодалар билан ахборотни тақдим этишнинг турли шакллари кўриб чиқилади ва уларни қайта ишлашнинг тўлиқлиги ва самарадорлигига талаблар таҳлил қилинади. Aсосий тушунчалар киритилган. (Рўйхатлар ва атомлар. маълумотлар, қийматлар, функциялар.) Рўйхатлар ва уларни қайта ишлаш. Базавий операциялар ва уларнинг хусусиятлари. Aмалга ошириш вақтида маълумотлар тузилмаларини умумлаштириш (унификация). Тўпланадиган параметрлар. Исмларни боғлаш. Функционал аргумантлар ва акслантиришлар. Формулаларни қайта ишлашнинг корректлиги. Универсаль функция. Функционал тилнинг параметрланган интерпретаторининг тузилиши.
Функционал дастурлаш ғояси мураккаб масалаларга ечимларни тақдим этиш ва таҳлил қилишнинг умумий механизми сифатида функцияларни интуитив тушунишга асосланган.
Функционал дастурлашнинг мунтазам қўлланилишини биринчи бўлиб Жон Мак-Карти ва унинг талабалари Лисп тилини амалга ошириш ва шу тилда дастурлаш усулларида кўрсатиб беришди. Ушбу усулларнинг энг яхшилари бошқа дастурлаш тиллари ва тизимлари томонидан муваффақиятли ўзлаштирилди.
Функционал дастурлашнинг математик асослар билан алоқаси, дастур матнида натижа қурилганлиги далилларини акс эттириш имкониятини беради, агар бунга эришилган бўлса, демак ечилаётган масалани абстракциялашнинг турли усулларидан фойдаланилган бўлади.
Барча тўғри бўлган, тизимнинг хисобланадиган формулаларини, минимал белгилар тўпламига киритиш, тизимнинг базиси ролини ўйнайди, уни амалга ошириш тизимнинг минимал версиясидир.
Джон Мак-Карти Лисп тили лойиҳасини, компютерларнинг қўлланилиш чегараларини, хусусан, сунъий интеллект билан боғлиқ масалаларни ҳал қилиш воситаси сифатида таклиф қилди. Лисп дастурлаш назариясини экспериментал қўллаб-қувватлаш ва унинг кўламини ривожлантириш учун самарали восита бўлиб хизмат қилди.
Дастурлашнинг функционал услуби компютерда қайта ишлаш учун ҳар қандай маълумотни символгача қисқартириш мумкин деган тахмин асосида маълумотларга символли ишлов бериш масалаларини ҳал қилиш амалиётида ривожланди. (Aналог усулларнинг мавжудлиги принципиал равишда ушбу гипотезага зид келмайди.) Бу ерда “символ” сўзи белгили тизимларда “белги” тушунчасига яқин. Aхборот белгилар билан ифодаланади, уларнинг маъноси аввал маълум бўлган қоидаларга мувофиқ тикланиши мумкин.
Функционал дастурлаш усуллари, формулаларни ифодалаш ва ўзгартиришда формал математик тилга асосланган. Шу сабабли, функционал дастурлаш асосларини аниқ, етарлича тўлиқ тавсифлаб бериш ва фаолиятни ташкил қилишнинг функционал ёндашувидан фойдаланган ҳолда моделлаштирилган турли хил дастурлаш парадигмаларини қўллаб-қувватлаш ва ривожлантириш учун дастурлаш тизимини белгилаш мумкин.
Функционал дастурлаш кўплаб дастурий ёндашувлардан учта муҳим жиҳати билан фарқ қилади:
1) маълумотларнинг табиати
Барча маълумотлар рамзий ифодалар шаклида тақдим етилган. Маълумотлар дарахт тузилмалари сифатида амалга оширилади. Бу сизга ҳар қандай муҳим пастки ибораларни маҳаллийлаштиришга имкон беради. Бундай тузилмалар устидаги дастурлаш тизими одатда уларни сақлаш учун мавжуд бўлган барча хотиралардан фойдаланади, шунинг учун дастурчи алоҳида маълумотлар блоклари учун хотирани ажратишдан озод бўлиши мумкин.
2) Рамзий ибораларни қайта ишлашнинг ўзини тавсифи
Функционал дастурлашнинг муҳим хусусияти шундаки, маълумотларни қайта ишлаш усулларининг тавсифи рамзий маълумотлар сифатида қараладиган дастурлар билан ифодаланади. Дастурлар рекурсив функциялар асосида тузилади. Ушбу функцияларнинг таърифлари ва чақирувлари, ҳар қандай маълумот сингари, оддий маълумотлар сифатида қайта ишланиши, ҳисоб-китоблар жараёнида олиниши ва қийматларга айлантирилиши мумкин.
3) Машина тилларига ўхшашлик
Функционал дастурлаш тизими дастур маълумотлар тузилмалари сифатида ифодаланган дастурларни талқин қилиши ва / ёки компиляция қилиши мумкин деб тахмин қилади. Бу функционал дастурлаш техникасини паст даражадаги дастурлаш усулларига яқинлаштиради ва уларни юқори даражадаги тиллардан фойдаланишнинг анъанавий услубидан ажратиб туради.
Барча функционал дастурлаш тиллари бунга тўлиқ имкон бермайди, аммо Лисп буни жуда яхши бажаради. Aслида, бундай имконият ҳар қандай стандарт тилда мавжуд, аммо буни қилиш одат эмас.
Функционал дастурлаш дастурларни яратиш ва динамик равишда қурилган дастур прототипларини бажариш, шунингдек диск раскадровка қилинган ечимларнинг такрорланиш даражаси паст бўлган соҳаларда (масалан, таълим, дизайн, ижодкорлик ва тадқиқотларда) ишлатиладиган тизимлар учун фаол фойдаланилади, операцион ўзгаришлар, такомиллаштириш, такомиллаштиришга йўналтирилган, мослашиш ва бошқалар.
Маълумотлар
Мисол тариқасида Лисп тилидан фойдаланиб, функционал дастурлаш тилларида маълумотлар ва дастурларни намойиш етишга ёндошишни кўриб чиқамиз.
Ҳар қандай маълумотлар тузилиши ибтидоий қадриятлардан бошланади. Лиспдан сўнг функционал дастурлашда бундай қийматлар атомлар ёки белгилар деб номланади.
Ҳар бир атомда хусусиятлар рўйхати мавжуд. Aтом биринчи марта ўқилганда (киритилганда), у учун хусусиятлар рўйхати тузилади. Хусусиятлар рўйхати Паскал тилидаги ёзувларга ўхшаш махсус тузилиш билан тавсифланади, аммо бундай ёзувдаги кўрсаткичлар сақланадиган маълумот турини рамзий теглар билан бирга келади. Ушбу структуранинг биринчи елементи кўрсатгичда кўрсатилган манзилда жойлашган. Қолган элементлар бир қатор махсус функциялар ёрдамида бир хил индексда мавжуд. Структуравий элементлар атомнинг турли хил хусусиятларини ўз ичига олади. Ҳар бир хусусият атом билан белгиланади, индикатор деб номланади ёки структуранинг собит майдонида жойлашган.
CONS функцияси маълумотлар тузилмаларини иккилик тугунлардан ҳосил қилади, уларни унинг жуфт аргументлари қийматлари бўлган жуфт нарсалар билан тўлдиради. Биринчи ўзбошимчалик билан аргумент иккилик тугуннинг чап томонига, иккинчиси эса рўйхат ўнг томонда жойлашган. CAR функцияси рўйхатнинг биринчи элементига – унинг бошланишига, CDR функцияси эса битта элементга қисқартирилган рўйхатига – унинг охирига киришни таъминлайди, яъни бошидаги элементни олиб ташлаганидан кейин рўйхатнинг қолган қисмларига киришни таъминлайди.
Do'stlaringiz bilan baham: |