Տարբերությունը ֆունկցիոնալ ծրագրավորման և իմպերատիվ ծրագրավորման միջև

Բովանդակություն:

Տարբերությունը ֆունկցիոնալ ծրագրավորման և իմպերատիվ ծրագրավորման միջև
Տարբերությունը ֆունկցիոնալ ծրագրավորման և իմպերատիվ ծրագրավորման միջև

Video: Տարբերությունը ֆունկցիոնալ ծրագրավորման և իմպերատիվ ծրագրավորման միջև

Video: Տարբերությունը ֆունկցիոնալ ծրագրավորման և իմպերատիվ ծրագրավորման միջև
Video: Почему мужчины хотят секса а женщины любви Обзор книги за 15 минут / Пиз Аллан / Саммари книг 2024, Հուլիսի
Anonim

Հիմնական տարբերություն – Ֆունկցիոնալ ծրագրավորում ընդդեմ իմպերատիվ ծրագրավորման

Ֆունկցիոնալ ծրագրավորման և հրամայական ծրագրավորման հիմնական տարբերությունն այն է, որ ֆունկցիոնալ ծրագրավորումը հաշվարկները դիտարկում է որպես մաթեմատիկական ֆունկցիաներ և խուսափում է վիճակի և փոփոխական տվյալների փոփոխությունից, մինչդեռ հրամայական ծրագրավորումն օգտագործում է ծրագրերի վիճակը փոխող հայտարարությունները::

Ծրագրավորման պարադիգմը ապահովում է համակարգչային ծրագրի կառուցվածքի և տարրերի կառուցման ոճ: Ծրագրավորման պարադիգմները օգնում են դասակարգել ծրագրավորման լեզուները՝ ելնելով դրանց առանձնահատկություններից: Ծրագրավորման լեզուն կարող է ազդել ավելի շատ պարադիգմների վրա:Օբյեկտ-կողմնորոշված պարադիգմում ծրագիրը կառուցված է օբյեկտների միջոցով, իսկ օբյեկտները հաղորդագրություններ են փոխանցում՝ օգտագործելով մեթոդներ: Տրամաբանական ծրագրավորումը կարող է արտահայտել հաշվարկը բացառապես մաթեմատիկական տրամաբանությամբ: Ծրագրավորման ևս երկու պարադիգմներ են ֆունկցիոնալ ծրագրավորումը և հրամայական ծրագրավորումը: Ֆունկցիոնալ ծրագրավորումը թույլ է տալիս արտահայտել հաշվարկները որպես մաթեմատիկական ֆունկցիաների գնահատում: Իմպերատիվ ծրագրավորումն ապահովում է հայտարարություններ, որոնք բացահայտորեն փոխում են հիշողության վիճակը: Այս հոդվածը քննարկում է ֆունկցիոնալ ծրագրավորման և հրամայական ծրագրավորման միջև եղած տարբերությունը:

Ի՞նչ է ֆունկցիոնալ ծրագրավորումը:

Ֆունկցիոնալ ծրագրավորումը հիմնված է մաթեմատիկայի վրա: Ֆունկցիոնալ ծրագրավորման հիմնական սկզբունքն այն է, որ բոլոր հաշվարկները դիտարկվում են որպես առանձին մաթեմատիկական ֆունկցիաների համակցություն: Մաթեմատիկական ֆունկցիան մուտքագրում է մուտքերը ելքերին: Ենթադրենք, որ կա f(x)=xx անունով ֆունկցիա: X արժեքը 1-ը քարտեզագրված է ելքային 1-ին:x-ի արժեքը 3-ը քարտեզագրվում է 9-րդ արդյունքին և այլն:

Տարբերությունը ֆունկցիոնալ ծրագրավորման և իմպերատիվ ծրագրավորման միջև
Տարբերությունը ֆունկցիոնալ ծրագրավորման և իմպերատիվ ծրագրավորման միջև

Նկար 01. Ֆունկցիոնալ ծրագրավորման լեզվի օրինակ – Haskell

Ֆունկցիոնալ ծրագրավորման մեջ օրինաչափությունները հաշվի են առնվում: Ֆունկցիոնալ ծրագրավորման լեզուները Haskell-ը օգտագործում է ստորև բերված մեթոդը՝ թվերի գումարումը գտնելու համար:

Գումարի ֆունկցիան ունի ամբողջ թվեր, և արդյունքը նույնպես կլինի ամբողջ թիվ: Այն կարելի է գրել որպես գումար՝ [int] -> int. Գումարը կարելի է անել՝ հետևելով ստորև ներկայացված օրինաչափություններին:

sum[n]=n, մեկ թվի գումարը հենց թիվն է։

Եթե կա թվերի ցանկ, այն կարելի է գրել հետևյալ կերպ. n-ը ներկայացնում է առաջին թիվը, իսկ ns-ը ներկայացնում է մյուս թվերը

գումար (n, ns)=n + գումար ns.

Վերևի օրինաչափությունները կարող են կիրառվել երեք թվերի գումարումը գտնելու համար, որոնք 3, 4, 5 են:

3 + գումար [4, 5]

3 + (4 + գումար [5])

3+ 4 + 5=12

Ասում են, որ ֆունկցիան կամ արտահայտությունն ունի կողմնակի ազդեցություններ, եթե այն փոփոխում է իր շրջանակից դուրս գտնվող ինչ-որ վիճակ կամ ունի տեսանելի փոխազդեցություն իր կանչող ֆունկցիաների հետ, բացի վերադարձող արժեքից: Ֆունկցիոնալ ծրագրավորումը նվազագույնի է հասցնում այս կողմնակի ազդեցությունները: Վիճակի փոփոխությունները կախված չեն ֆունկցիայի մուտքերից: Դա օգտակար է ծրագրի վարքագիծը հասկանալու ժամանակ: Ֆունկցիոնալ ծրագրավորման թերությունն այն է, որ ֆունկցիոնալ ծրագրավորում սովորելը ավելի դժվար է, քան հրամայականը:

Ի՞նչ է իմպերատիվ ծրագրավորումը:

Իմպերատիվ ծրագրավորումը ծրագրավորման պարադիգմ է, որն օգտագործում է այն հայտարարությունները, որոնք փոխում են ծրագրի վիճակը: Այն կենտրոնանում է նկարագրելու, թե ինչպես է գործում ծրագիրը: Ծրագրավորման լեզուներ, ինչպիսիք են Java-ն, C-ն և C-ը, հրամայական ծրագրավորման լեզուներ են:Այն ապահովում է քայլ առ քայլ ընթացակարգ, թե ինչ անել: Իմպերատիվ ծրագրավորման լեզուները պարունակում են այնպիսի կառուցվածքներ, ինչպիսիք են՝ if, else, while, օղակների, դասերի, օբյեկտների և ֆունկցիաների համար:

Հիմնական տարբերությունը ֆունկցիոնալ ծրագրավորման և իմպերատիվ ծրագրավորման միջև
Հիմնական տարբերությունը ֆունկցիոնալ ծրագրավորման և իմպերատիվ ծրագրավորման միջև

Նկար 02. Իմպերատիվ ծրագրավորման լեզվի օրինակ – Java

Տասը թվերի գումարումը Java-ում կարելի է գտնել հետևյալ կերպ. Յուրաքանչյուր կրկնության ժամանակ i արժեքը ավելացվում է գումարին և վերագրվում գումարի փոփոխականին: Յուրաքանչյուր կրկնության ժամանակ գումարի արժեքը շարունակում է ավելացնել նախկինում հաշվարկված գումարին:

int sum=0;

համար (int i=0; i<=10; i++) {

գումար=գումար + i;

}

Իմպերատիվ ծրագրավորումը հեշտ է սովորել, հասկանալ և կարգաբերել: Հեշտ է գտնել ծրագրի վիճակը, քանի որ օգտագործվում են վիճակի փոփոխականներ: Որոշ թերություններ այն են, որ այն կարող է երկարացնել ծածկագիրը և կարող է նաև նվազեցնել մասշտաբայնությունը:

Ո՞րն է նմանությունը ֆունկցիոնալ ծրագրավորման և իմպերատիվ ծրագրավորման միջև:

Եվ ֆունկցիոնալ ծրագրավորումը և իմպերատիվ ծրագրավորումը ծրագրավորման պարադիգմներ են:

Ո՞րն է տարբերությունը ֆունկցիոնալ ծրագրավորման և իմպերատիվ ծրագրավորման միջև:

Ֆունկցիոնալ ընդդեմ հրամայական ծրագրավորման

Ֆունկցիոնալ ծրագրավորումը ծրագրավորման պարադիգմ է, որը հաշվարկը դիտարկում է որպես մաթեմատիկական ֆունկցիաների գնահատում և խուսափում է վիճակի փոփոխությունից և փոփոխվող տվյալներից: Իմպերատիվ ծրագրավորումը ծրագրավորման պարադիգմ է, որն օգտագործում է հայտարարություններ, որոնք փոխում են ծրագրի վիճակը:
Կառուցվածքներ
Ֆունկցիոնալ ծրագրավորումը պարունակում է ֆունկցիաների կանչեր և ավելի բարձր կարգի գործառույթներ: Իմպերատիվ ծրագրավորումը պարունակում է if, else, while օղակների, ֆունկցիաների, դասերի և օբյեկտների համար:
Ծրագրավորման լեզուներ
Scala, Haskell և Lisp ֆունկցիոնալ ծրագրավորման լեզուներ են: C, C++, Java-ն հրամայական ծրագրավորման լեզուներ են:
Կենտրոնանալ
Ֆունկցիոնալ ծրագրավորումը կենտրոնանում է վերջնական արդյունքի վրա: Իմպերատիվ ծրագրավորումը կենտրոնանում է ծրագրի գործունեության նկարագրության վրա:
Պարզություն
Ֆունկցիոնալ ծրագրավորումը դժվար է: Իմպերատիվ ծրագրավորումն ավելի հեշտ է։

Ամփոփում – Ֆունկցիոնալ ծրագրավորում ընդդեմ իմպերատիվ ծրագրավորման

Ծրագրավորման պարադիգմը ապահովում է համակարգչային ծրագրի կառուցվածքի և տարրերի կառուցման ոճ: Ֆունկցիոնալ ծրագրավորումը և իմպերատիվ ծրագրավորումը դրանցից երկուսն են: Ֆունկցիոնալ ծրագրավորման և հրամայական ծրագրավորման միջև տարբերությունն այն է, որ ֆունկցիոնալ ծրագրավորումը հաշվարկները դիտարկում է որպես մաթեմատիկական ֆունկցիաներ և խուսափում է վիճակի և փոփոխական տվյալների փոփոխությունից, մինչդեռ հրամայական ծրագրավորումն օգտագործում է ծրագրերի վիճակը փոխող հայտարարությունները::

Խորհուրդ ենք տալիս: