Atšķirība starp funkcionālo un obligāto programmēšanu

Galvenā atšķirība - funkcionālā Programmēšana vs obligātā programmēšana
 

galvenā atšķirība starp funkcionālo un obligāto programmēšanu ir tas, ka funkcionālā programmēšana uzskata aprēķinus par matemātiskām funkcijām un izvairās no stāvokļa un mainīgu datu mainīšanas, kamēr obligātā programmēšana izmanto paziņojumus, kas maina programmas stāvokli.

Programmēšanas paradigma nodrošina datorprogrammas struktūras un elementu veidošanas stilu. Programmēšanas paradigmas palīdz klasificēt programmēšanas valodas, pamatojoties uz to īpašībām. Programmēšanas valoda varētu ietekmēt vairāk paradigmu. Objektorientētā paradigmā programma tiek strukturēta, izmantojot objektus, un objekti nodod ziņojumus, izmantojot metodes. Loģiskā programmēšana var izteikt aprēķinus tikai matemātiskās loģikas izteiksmē. Vēl divas programmēšanas paradigmas ir funkcionālā programmēšana un obligātā programmēšana. Funkcionālā programmēšana ļauj izteikt aprēķinus kā matemātisko funkciju novērtējumu. Obligāta programmēšana nodrošina paziņojumus, kas tieši maina atmiņas stāvokli. Šajā rakstā apskatīta atšķirība starp funkcionālo programmēšanu un obligāto programmēšanu.

SATURS

1. Pārskats un galvenās atšķirības
2. Kas ir funkcionālā programmēšana?
3. Kas ir obligāta programmēšana
4. Funkcionālās programmēšanas un imperatīvās programmēšanas līdzības
5. Salīdzinājums blakus - funkcionālā programmēšana un obligātā programmēšana tabulas formā
6. Kopsavilkums

Kas ir funkcionālā programmēšana??

Funkcionālās programmēšanas pamatā ir matemātika. Funkcionālās programmēšanas pamatprincips ir tāds, ka visu aprēķinu uzskata par atsevišķu matemātisko funkciju kombināciju. Matemātiskā funkcija maina ieejas izejās. Pieņemsim, ka pastāv funkcija ar nosaukumu f (x) = x * x. X vērtība 1 tiek kartēta uz izvadi 1. x vērtība 2 tiek kartēta uz izvadi 4. x vērtība 3 tiek kartēta uz izvadi 9 un tā tālāk.

01. attēls. Funkcionālās programmēšanas valodas piemērs - Haskell

Funkcionālajā programmēšanā tiek ņemti vērā modeļi. Funkcionālās programmēšanas valodas Haskell izmanto šo metodi, lai atrastu skaitļu summēšanu.

Summas funkcijai ir veseli skaitļi, un rezultāts būs arī vesels skaitlis. To var uzrakstīt kā summu: [int] -> int. Summēšanu var veikt, sekojot zemāk redzamajiem modeļiem.

summa [n] = n, viena cipara summa ir pats cipars.

Ja ir ciparu saraksts, to var uzrakstīt šādi. N apzīmē pirmo numuru, un ns apzīmē pārējos numurus

summa (n, ns) = n + summa ns.

Iepriekš minētos modeļus var izmantot, lai iegūtu trīs skaitļu, kas ir 3,4,5, summēšanu.

3 + summa [4,5]

3 + (4 + summa [5])

3+ 4 + 5 = 12

Tiek uzskatīts, ka funkcijai vai izteicienam ir blakusparādības, ja tas modificē kādu stāvokli ārpus tā darbības jomas vai arī tam ir novērojama mijiedarbība ar tā izsaukšanas funkcijām papildus atgriezeniskajai vērtībai. Funkcionālā programmēšana samazina šīs blakusparādības. Stāvokļa izmaiņas nav atkarīgas no funkcijas ievadēm. Tas ir noderīgi, izprotot programmas izturēšanos. Viens funkcionālās programmēšanas trūkums ir tas, ka funkcionālās programmēšanas apgūšana ir grūtāka nekā obligātā programmēšana.

Kas ir obligāta programmēšana?

Obligāta programmēšana ir programmēšanas paradigma, kurā tiek izmantoti paziņojumi, kas maina programmas stāvokli. Tas koncentrējas uz programmas darbības aprakstīšanu. Programmēšanas valodas, piemēram, Java, C un C #, ir obligātas programmēšanas valodas. Tas nodrošina soli pa solim procedūru, kā rīkoties. Obligātās programmēšanas valodās ir tādas struktūras kā, piemēram, cilpas, klases, objekti un funkcijas.

02. Attēls. Obligātās programmēšanas valodas piemērs - Java

Desmit numuru summēšanu Java var atrast šādi. Katrā iterācijā summai i pievieno vērtību i un piešķir lieluma mainīgajam. Katrā atkārtojumā summas vērtība tiek pievienota iepriekš aprēķinātai summai.

int summa = 0;

par (int i = 0; i< =10; i++)

summa = summa + i;

Obligātu programmēšanu ir viegli iemācīties, saprast un atkļūdot. Programmas stāvokli ir viegli atrast, jo tiek izmantoti stāvokļa mainīgie. Daži trūkumi ir tādi, ka tas var padarīt kodu garu, un tas var arī samazināt mērogojamību.

Kāda ir funkcionālās programmēšanas un obligātās programmēšanas līdzība?

  • Gan funkcionālā programmēšana, gan obligātā programmēšana ir programmēšanas paradigmas.

Kāda ir atšķirība starp funkcionālo un obligāto programmēšanu?

Funkcionālā un obligātā programmēšana

Funkcionālā programmēšana ir programmēšanas paradigma, kas skaitļošanu uzskata par matemātisko funkciju novērtējumu un ļauj izvairīties no stāvokļa un mainīgu datu mainīšanas. Obligātā programmēšana ir programmēšanas paradigma, kurā izmantoti paziņojumi, kas maina programmas stāvokli.
 Konstrukcijas
Funkcionālā programmēšana satur funkciju izsaukumus un augstākas kārtas funkcijas. Obligātajā programmēšanā ir cilpas, funkcijas, klases un objekti.
Programmēšanas valodas
Scala, Haskell un Lisp ir funkcionālās programmēšanas valodas. C, C ++, Java ir obligātas programmēšanas valodas.
 Fokuss
Funkcionālā programmēšana koncentrējas uz gala rezultātu. Obligātā programmēšana ir vērsta uz programmas darbības aprakstīšanu.
Vienkāršība
Funkcionālā programmēšana ir grūta. Obligāta programmēšana ir vienkāršāka.

Kopsavilkums - funkcionāls Programmēšana vs obligātā programmēšana

Programmēšanas paradigma nodrošina datorprogrammas struktūras un elementu veidošanas stilu. Funkcionālā programmēšana un obligātā programmēšana ir divi no tiem. Atšķirība starp funkcionālo programmēšanu un imperatīvo programmēšanu ir tāda, ka funkcionālā programmēšana aprēķinus uzskata par matemātiskām funkcijām un izvairās no stāvokļa un mainīgu datu mainīšanas, kamēr obligātā programmēšana izmanto paziņojumus, kas maina programmas stāvokli.

Atsauce:

1. “Obligāta programmēšana.” Wikipedia, Wikimedia Foundation, 2018. gada 28. marts. Pieejams šeit  
2. “Funkcionālā programmēšana.” Wikipedia, Wikimedia Foundation, 2018. gada 28. marts. Pieejams šeit  
3.Datorfile. YouTube, YouTube, 2013. gada 30. augusts. Pieejams šeit 

Attēla pieklājība:

1.'Haskell Logo'By Haskell1965 - Savs darbs, (CC BY-SA 3.0), izmantojot Commons Wikimedia 
2.'14485179234'by Linux Screenshots (CC BY 2.0), izmantojot Flickr