Галоўная > Агляд парадыгм праграмавання

Агляд парадыгм праграмавання

праграмаванне парадыгмы

У гэтым артыкулы мы зробім агульны агляд наступных трох парадыгм: структурнае праграмаванне, аб’ектна-арыентаванае праграмаванне і функцыянальнае праграмаванне.

Структурнае праграмаванне

Першай парадыгмай, якая атрымала агульнае прызнанне (але не першая з прыдуманых) была парадыгма структурнага праграмавання, прапанаваная Эдсгерам Вібэ Дэйкстрай у 1968 годзе. Дэйкстра паказаў, што бескантрольнае выкарыстанне пераходаў (інструкцый goto) шкодна для структуры праграмы. Ён прапанаваў замяніць пераходы больш зразумелымі канструкцыямі if\else і do\while\until.

То-бок:

Структурнае праграмаванне накладвае абмежаванне на прамую перадачу кіравання.

Аб’ектна-арыентаванае праграмаванне

Другой парадыгмай, якая атрымала шырокае распаўсюджанне, стала парадыгма, якая з'явілася на два гады раней, у 1966 годзе і прапанаваная Оле-Ёханам Дале і Крыстэнам Нюгарам. Гэтыя два праграмісты заўважылі, што ў мове ALGOL ёсць магчымасць перамясціць кадр стэка выкліку функцый у дынамічную памяць (кучу), дзякуючы чаму лакальныя пераменныя, аб’яўленыя ўнутры функцыі, могуць захоўвацца пасля выхаду з яе. У выніку функцыя пераўтваралася ў канструктар класа, лакальныя пераменныя - у пераменныя экзэмпляра, а ўложаныя функцыі - у метады. Гэта прывяло да адкрыцця полімарфізму праз строгае выкарыстанне паказальнікаў на функцыі.

То-бок:

Аб’ектна-арыентаванае праграмаванне накладае абмежаванне на ўскосную перадачу кіравання.

Функцыянальнае праграмаванне

Трэцяй парадыгмай, якая атрымала шырокае распаўсюджанне адносна нядаўна, з'яўляецца самая першая з прыдуманых. Фактычна вынаходству гэтай парадыгмы папярэднічала з'яўленне самой ідэі праграмавання. Парадыгма функцыянальнага праграмавання з'яўляецца прамым вынікам работы Алонза Чорча, які ў 1936 годзе прыдумаў лямбда-вылічэння, калі даследаваў тую ж матэматычную задачу, якую прыкладна ў той жа час вырашаў Алан Цьюрынг. Яго лямбда-вылічэнне лягло ў аснову мовы LISP, распрацаванай у 1958 годзе Джонам Макарці. Асноўным паняццем лямбда-вылічэнняў з'яўляецца нязменнасць - то-бок немагчымасць змянення значэнняў сімвалаў. Фактычна гэта значыць, што функцыянальная мова не мае інструкцыі прысвойвання. У рэальнасці большасць функцыянальных моў маюць некаторыя сродкі, якія дазваляюць змяняць значэнні пераменных, але ў вельмі абмежаваных выпадках.

То-бок:

Функцыянальнае праграмаванне накладае абмежаванне на прысвойванне.

Заключэнне

Звярніце ўвагу, што кожная парадыгма забірае ў праграміста нейкія магчымасці. Ні адна не дадае новыя магчымасці. Кожная накладае дадатковыя абмежаванні. Парадыгмы кажуць не што рабіць, а што нельга рабіць. Тры парадыгмы забіраюць у нас інструкцыю goto, паказальнік на функцыю і аператар прысвойвання. Цi ёсць яшчэ нешта, што можна забраць? Хутчэй за ўсё, не. Таму, хутчэй за ўсё, гэтыя тры парадыгмы застануцца адзінымі, што мы пабачым - прынамсі адзінымі, што забіраюць у нас. Доказам адсутнасці новых парадыгм з'яўляецца той факт, што ўсе тры парадыгмы былі адкрыты цягам дзесяцігоддзя паміж 1958 і 1968 гадамі. Пасля гэтага не з'явілася ніводнай новай парадыгмы.

Дзмітрый Зубялевіч, 2023-03-29
Каментары

    (Каб даслаць каментар залагуйцеся ў свой уліковы запіс)

    ;