Kontentke ótiw

Funkciya dárejesindegi programmalastırıw

Wikipedia — erkin enciklopediya

Kompyuter iliminde, funkciya dárejesindegi programmalastırıw Djon Bekustıń programmalardı matematikalıq obyektler retinde izertlegen jumısında anıqlaǵan eki qarama-qarsı programmalastırıw paradigmasınıń birin bildiredi, ekinshisi bolsa mánis dárejesindegi programmalastırıw bolıp tabıladı.

Óziniń 1977-jılǵı Tyuring sıylıǵı lekciyasında, Bekus programmalastırıw tillerin proektlestiriwde basqa filosofiyaǵa ótiw zárúrligin tómendegishe túsindirdi:[1]

Programmalastırıw tilleri qıyın bolıp kórinedi. Hárbir keyingi til, biraz tazalaw menen, ózinen aldıńǵılardıń barlıq ózgesheliklerin hám jáne bir neshe qosımshalardı óz ishine aladı. [...] Hárbir jańa til jańa hám kórkem ózgesheliklerge iye ekenin aytadı... biraq anıq fakt — az sanlı tiller ǵana olardı islep shıǵarıw hám paydalanıwdı úyreniw shıǵınların aqlaw ushın programmalastırıwdı jetkilikli dárejede arzanlaw yamasa isenimlirek etedi.

Ol FP-di funkciya dárejesindegi programmalastırıw stilin arnawlı qollap-quwatlaytuǵın birinshi programmalastırıw tili etip proektlestirdi.

Funkciya dárejesindegi programma ózgeriwshilersiz boladı (qarań: noqatsız programmalastırıw), sebebi mánis dárejesindegi anıqlamalarda zárúrli bolǵan programma ózgeriwshileri funkciya dárejesindegi programmalarda kerek emes.

Kirisiw

Funkciya dárejesindegi programmalastırıw stilinde programma dáslep berilgen programmalardan tikkeley qurıladı, olardı programma dúziwshi operaciyalar yamasa funkcionallar menen biriktiriw arqalı. Solay etip, qálegen nátiyje mánisine alıp keletuǵın mánisler izbe-izligin dúziw ushın berilgen programmalardı mánislerge qollanatuǵın mánis dárejesindegi usıldan ayırmashılıǵı, funkciya dárejesindegi usıl qálegen nátiyje programmasına alıp keletuǵın programmalar izbe-izligin dúziw ushın programma dúziwshi operaciyalardı berilgen programmalarǵa qollanadı.

Nátiyjede, programmalastırıwǵa funkciya dárejesindegi usıl programma dúziwshi operaciyalar astındaǵı programmalar keńisligin úyreniwge shaqıradı, bul programma dúziwshi operaciyalardıń paydalı algebralıq qásiyetlerin shıǵarıp alıwǵa umtıladı. Funkciya dárejesindegi usıl programmalar keńisliginde programma dúziwshi operaciyalardıń algebralıq qásiyetlerine ayrıqsha itibar beriw arqalı programmalar toplamın matematikalıq keńislikke aylandırıw múmkinshiligin usınadı.

Funkciya dárejesindegi kózqarastıń jáne bir potencial artıqmashılıǵı — tek qatań funkciyalardı paydalanıw hám sol arqalı eń ápiwayı túri bolǵan tómennen-joqarıǵa semantikaǵa iye bolıw. Jáne biri — qálegen bar bolǵan mánis dárejesindegi funkciyanıń kóterilgen (yaǵnıy, tómen mánis dárejesinen joqarı funkciya dárejesine kóterilgen) kórinisi bolmaǵan funkciya dárejesindegi anıqlamalardıń bar bolıwı: bul (kóbinese qısqa) funkciya dárejesindegi anıqlamalar mánis dárejesinde bolmaǵan anaǵurlım kúshlirek programmalastırıw stilin bildiredi.

Funkcional programmalastırıw menen salıstırıw

Bekus funkciya dárejesindegi programmalastırıw stilin úyrengeninde hám járiyalaganında, onıń xabarı kóbinese óziniń FP hám onıń miyrasxorı FL tilleriniń ornına dástúrli funkcional programmalastırıw stili tillerin qollap-quwatlaydı dep qáte túsinilgen[2].

Bekus funkcional programmalastırıwdı ámeliy programmalastırıw dep ataydı; onıń funkciya dárejesindegi programmalastırıwı — belgili bir, sheklengen túr.

Funkcional tillerden tiykarǵı ayırmashılıq — Bekustıń tilinde tómendegi tipler ierarxiyası bar:

  • atomlar
  • atomlardı atomlarǵa alıp baratuǵın funkciyalar
  • Bir yamasa eki funkciyanı funkciyalarǵa alıp baratuǵın joqarı dárejeli funkciyalar (olardı ol «funkcional formalar» dep ataydı)

...hám jańa funkciyalardı payda etiwdiń jalǵız usılı — turaqlı bolǵan funkcional formalardıń birin paydalanıw: siz óz funkcional formańızdı qura almaysız (keminde FP ishinde emes; FFP (Formal FP) ishinde qura alasız).

Bul sheklew FP-degi funkciyalardıń funkcional formalar algebrası ústinde bir modul (ornatılǵan funkciyalar menen payda bolǵan) ekenin hám solay etip algebralıq jaqtan qayta isleniwge bolatuǵının ańlatadı. Mısalı, eki funkciyanıń teńligi haqqındaǵı ulıwma soraw toqtaw máselesine ekvivalent hám sheshilmeydi, biraq FP-degi eki funkciyanıń teńligi tek algebradaǵı teńlik hám solay etip (Bekustıń oylawınsha) ańsatlaw.

Hátte búgingi kúnde de, lyambda stili tilleriniń kóp paydalanıwshıları Bekustıń funkciya dárejesindegi usılın de-fakto mánis dárejesindegi stil bolǵan lyambda stiliniń sheklengen variantı retinde kóbinese qáte interpretaciyalaydı. Haqıyqatında, Bekus «sheklewshi» ayıbına qarsı bolmas edi: ol bul sheklewler sebepli ǵana dúzilgen matematikalıq keńislik payda bolıwı múmkin dep dálilledi, bul strukturalıq programmalastırıwdıń programmalastırıwdı ápiwayı, sheklenbegen strukturalanbaǵan programmalarda bar bolǵan barlıq basqarıw-aǵımı múmkinshilikleriniń sheklengen versiyasına shekleytuǵın usılına uqsas edi.

Derekler

  1. Backus, John (1978). "Can programming be liberated from the von Neumann style?: A functional style and its algebra of programs". Communications of the ACM 21 (8): 613–641. doi:10.1145/359576.359579. https://www.cs.ucf.edu/~dcm/Teaching/COT4810-Fall%202012/Literature/Backus.pdf.
  2. Hudak, Paul (1989). "Conception, evolution, and application of functional programming languages". ACM Computing Surveys. 21 (3): 359–411. doi:10.1145/72551.72554. S2CID 207637854.