Kontentke ótiw

Proceduralıq programmalastırıw

Wikipedia — erkin enciklopediya

Proceduralıq programmalastırıw — bul imperativ programmalastırıw retinde klassifikaciyalanǵan, kompyuter programmasınıń minez-qulqın bir-birin shaqıratuǵın proceduralar (funkciyalar, kishi programmalar dep te ataladı) retinde ámelge asırıwdı óz ishine alǵan programmalastırıw paradigması[1]. Nátiyjedegi programma óziniń quramına kiretuǵın proceduralarǵa shaqırıwlar ierarxiyasın payda etetuǵın adımlar izbe-izligi bolıp tabıladı.

Birinshi iri proceduralıq programmalastırıw tilleri shama menen 1957–1964-jıllarda payda boldı, olarǵa Fortran, ALGOL, COBOL, PL/I hám BASIC kiredi[2]. Pascal hám C shama menen 1970–1972-jıllarda járiyalandı.

Kompyuter processorları stek registri hám proceduralardı shaqırıw hám olardan qaytıw ushın kórsetpeler arqalı proceduralıq programmalastırıw ushın apparatlıq támiynat qollap-quwatlawın usınadı. Lisp mashinaları yamasa Java processorları sıyaqlı basqa programmalastırıw túrleri ushın apparatlıq támiynat qollap-quwatlawı múmkin, biraq hesh qanday urınıw kommerciyalıq jaqtan tabıslı bolmadı.

Islep shıǵıw ámeliyatları

Sapanı arttırıw hám islep shıǵıw hámde qollap-quwatlaw shıǵınların tómenletiw maqsetinde proceduralıq programmalastırıw menen birge belgili bir programmalıq támiynattı islep shıǵıw ámeliyatları kóbinese qollanıladı.

Modullik hám qollanıw sheńberi

Modullik — bul programmanıń proceduraların bólek modullerge shólkemlestiriw — olardıń hárbiri anıq hám túsinikli maqsetke iye.

Ózgeriwshilerdiń hám proceduralardıń qollanıw sheńberin minimallastırıw proceduralar menen modullerdiń kognitiv júklemesin azaytıw arqalı programmalıq támiynat sapasın arttıra aladı.

Modulligi joq yamasa keń qollanıw sheńberi bar programma basqa proceduralardıń da paydalanatuǵın kóp ózgeriwshilerin tutınatuǵın proceduralarǵa iye bolıwǵa beyim. Nátiyjedegi kod salıstırmalı túrde túsinip alıw hám qollap-quwatlaw ushın qıyın.

Bólisiw

Procedura anıq belgilengen interfeysti kórsete alatuǵınlıqtan hám óz betinshe tolıq bolǵanlıqtan, ol kodtı qayta paydalanıwdı qollap-quwatlaydı — ásirese programmalıq támiynat kitapxanası arqalı.

Basqa programmalastırıw paradigmaları menen salıstırıw

Imperativ programmalastırıw

Proceduralıq programmalastırıw imperativ programmalastırıw retinde klassifikaciyalanadı, sebebi ol orınlanıwdı tikkeley basqarıwdı óz ishine aladı.

Proceduralıq, proceduralıq blok hám qollanıw sheńberi túsiniklerin óz ishine alǵanlıqtan, imperativtiń kishi klası bolıp tabıladı, al imperativ bunday ózgesheliklerdi talap etpeytuǵın anaǵurlım ulıwma túsinikti táriyipleydi. Proceduralıq tiller ádette basqarıw aǵımın ámelge asırıw ushın if, while hám for sıyaqlı bloklardı anıqlaytuǵın rezervlengen sózlerdi paydalanadı, al strukturalanbaǵan imperativ tiller (yaǵnıy, assembler tili) usı maqset ushın goto hám tarmaqlanıw kestelerin paydalanadı.

Obyektke baǵdarlanǵan programmalastırıw

Imperativ retinde de klassifikaciyalanǵan, obyektke baǵdarlanǵan programmalastırıw (OBP) programma implementaciyasın jaqsı anıqlanǵan interfeys arqalı minez-qulıqtı (metodlardı) hám maǵlıwmatlardı (aǵzalardı) kórsetetuǵın obyektlerge bóliwdi óz ishine aladı. Kerisinshe, proceduralıq programmalastırıw programma implementaciyasın ózgeriwshilerge, maǵlıwmat strukturalarına hám kishi rutinalarǵa bóliwge qaratılǵan. Áhmiyetli bir ayırmashılıq — proceduralıq maǵlıwmat strukturalarında islew ushın proceduralardı óz ishine alsa, OBP ekewin birge biriktiredi. Obyekt — bul maǵlıwmat strukturası hám sol maǵlıwmat strukturası menen baylanıslı minez-qulıq[3].

Geypara OBP tilleri anıqlama tiykarında obyekt jaratıwǵa imkaniyat beretuǵın klass túsinigin qollap-quwatlaydı.

Ekewi arasında terminologiya hár qıylı, degen menen olardıń semantikası uqsas:

Proceduralıq Obyektke baǵdarlanǵan
Procedura Metod
Jazıw Obyekt
Modul Klass
Procedura shaqırıwı Xabar

Funkcional programmalastırıw

Funkcional tillerdegi modullik hám kodtı qayta paydalanıw principleri proceduralıq tillerdegiler menen tiykarınan birdey, sebebi ekewi de strukturalıq programmalastırıwdan kelip shıqqan. Mısalı:

  • Proceduralar funkciyalarǵa sáykes keledi. Ekewi de birdey kodtı programmalardıń hár túrli bólimlerinde hám onıń orınlanıwınıń hár túrli noqatlarında qayta paydalanıwǵa múmkinshilik beredi.
  • Solay etip, procedura shaqırıwları funkciya qollanıwına sáykes keledi.
  • Funkciyalar hám olardıń bir-birinen modulli ajıratılıwı birdey usılda, funkciya argumentleri, qaytarılatuǵın mánisler hám ózgeriwshi qollanıw sheńberlerin paydalanıw arqalı ámelge asırıladı.

Stiller arasındaǵı tiykarǵı ayırmashılıq — funkcional programmalastırıw tilleri proceduralıq programmalastırıwdıń imperativ elementlerin alıp taslaydı yamasa keminde olardıń áhmiyetin tómenletedi. Sonlıqtan funkcional tillerdiń ózgeshelikler toplamı programmalardı taza funkciyalar boyınsha ilajı bolǵanınsha jazıwdı qollap-quwatlaw ushın proektlestirilgen:

  • Proceduralıq tiller programmanıń orınlanıwın ortaq jaǵdaydı jasırın ózgertiwi múmkin bolǵan imperativ buyrıqlar izbe-izligi retinde modellestirse, funkcional programmalastırıw tilleri orınlanıwdı tek argumentler hám qaytarılatuǵın mánisler boyınsha bir-birine ǵárezli bolǵan quramalı ańlatpalardıń bahalanıwı retinde modellestiredi. Usı sebepke baylanıslı, funkcional programmalarda kodtıń erkin orınlanıw tártibi bolıwı múmkin hám tiller programmanıń hár túrli bólimleriniń qaysı tártipte orınlanıwına az basqarıw usınıwı múmkin; mısalı, Scheme tilindegi procedura shaqırıwına argumentler qálegen tártipte bahalanadı.
  • Funkcional programmalastırıw tilleri birinshi dárejeli funkciyalardı, anonim funkciyalardı hám jabıwlardı qollap-quwatlaydı (hám keń paydalanadı), degen menen bul koncepciyalar proceduralıq tillerge keminde Algol 68 den baslap kirgizilgen.
  • Funkcional programmalastırıw tilleri imperativ ciklli konstrukciyalar ornına quyrıqlı shaqırıwdı optimallastırıwǵa hám joqarı dárejeli funkciyalarǵa súyeniwge beyim.

Degen menen, kóp funkcional tiller haqıyqatında taza funkcional emes hám baǵdarlamashıǵa programmalardı proceduralıq stilde yamasa eki stildiń kombinaciyasında jazıwǵa imkaniyat beretuǵın imperativ/proceduralıq konstrukciyalardı usınadı. Funkcional tillerdegi kirgiziw/shıǵarıw kodınıń proceduralıq stilde jazılıwı keń tarqalǵan.

Programmalastırıwdı qıyınlastırıw (hám sonlıqtan qıyınshılıqlı) maqsetinde strukturalıq programmalastırıw principlerinen bas tartatuǵın Unlambda sıyaqlı bir neshe ekzotikalıq funkcional tiller bar. Bul tiller proceduralıq hám funkcional tiller arasındaǵı ulıwma tiykarǵa kirmeydi.

Logikalıq programmalastırıw

Logikalıq programmalastırıwda programma — bul aldınǵı shártler toplamı, al esaplaw — kandidat teoremalardı dálillewge urınıw arqalı orınlanadı. Usı kózqarastan, logikalıq programmalar deklarativ bolıp, máseleni qalay sheshiwdiń ornına, onıń ne ekenine itibar beredi.

Derekler

  1. «Programming Paradigms».
  2. "Welcome to IEEE Xplore 2.0: Use of procedural programming languages for controlling production systems". Proceedings. The Seventh IEEE Conference on Artificial Intelligence Application. IEEE. doi:10.1109/CAIA.1991.120848. S2CID 58175293.
  3. Stevenson. «Procedural programming vs object-oriented programming». neonbrand.com (avgust 2013). Qaraldı: 19-avgust 2013-jıl.