Імператыўнае праграмаванне

Зьвесткі зь Вікіпэдыі — вольнай энцыкляпэдыі.

Імператыўнае праграмаванне (па-англійску: imperative programming, даслоўна — загаднае праграмаванне) у інфарматыцы разглядаецца як супрацьлегласць дэкларатыўнаму праграмаванню, гэта парадыгма праграмавання, у якой вылічэнне апісваецца ў тэрмінах стану праграмы і каманд змены гэтага стану. Загадны лад у натуральных мовах выражае каманды зрабіць дзеянне, а імператыўныя праграмы — гэта набор праграм для выканання кампутарам.

Імператыўнае праграмаванне не падобнае да іншых тыпаў праграмавання, такіх як функцыянальнае і лагічнае. Функцыянальныя мовы праграмавання, такія як Haskell, не з'яўляюцца мовамі, ў якіх праграмы выглядаюць паслядоўнасцю аператараў і не маюць глабальнага стану. Мовы лагічнага праграмавання, напрыклад Prolog, указваюць, «што» трэба зрабіць, а не «як» гэта трэба зрабіць.

Зьмест

[рэдагаваць] Агляд

Праграмнае забеспячэнне амаль усіх кампутараў імператыўнае; амаль усе кампутары выконваюць машынны код, родны кампутару, напісаны ў імператыўным стылі. З гэтай нізкаўзроўневага пункту гледжання, стан праграмы вызначаецца зместам памяці, а каманды — гэта інструкцыі ў машыннай мову кампутару. Высокаўзроўневыя імператыўныя мовы выкарыстоўваюць зменныя і больш складаныя каманды, але ўсё ж выкарыстоўваюць тую самую парадыгму.

Рэцэпты не з'яўляюцца кампутарнымі праграмамі, аднак іх канцэпцыя блізкая да канцэпцыі імператыўнага праграмавання; кожны крок — гэта інструкцыя, а стан захоўваецца фізічным светам. Так як асноўныя ідэі імператыўнага праграмавання адначасна блізкія канцэптуальна і на прамую падтрымліваюцца апаратным забеспячэннем, большасць кампутарных моў выкарыстоўваюць імператыўны стыль.

Аперацыі прысвойвання, у агульным, выконваюць аперацыю над інфармацыяй ў памяці і зберагаюць рэзультат у памяці для далейшага выкарыстання. Высокаўзроўневыя імператыўныя мовы, акрамя таго, дазваляюць вылічэнне складаных выразаў, якія уключаюць арыфметычныя аперацыі вылічэння функцый і запіс рэзультату ў памяць. З дапамогай цыклаў можна выканаць нейкія дзеі патрэбную колькасць раз ці выконваць іх, пакуль не будзе выканана умова. За дапамагаю аператараў умоўных пераходаў можна выканаць часткі кода толькі тады, калі нейкая ўмова выконваецца. Безумоўныя пераходы дазваляюць перайсці да выканання коду ў другой частцы праграмы. Гэты уключае jump, які называецца ва многіх мовах праграмавання «goto» , і вызаў падпраграмы, ці працэдуры.

[рэдагаваць] Гісторыя

Першымі імператыўнымі мовамі праграмавання машынныя мовы арыгінальных кампутараў. У гэтых мовах інструкцыі былі вельмі простымі, што дазваляла лягчэй ствараць праграмнае забеспячэнне, аднак перашкаджала стварэнню складаных праграм. FORTRAN, створаны John Backus у IBM у 1957 годзе, быў першай мовай праграмавання, якая забрала перапоны машыннага коду пры стварэнні складаных праграм. FORTRAN быў кампілюемай мовай і меў званыя зменныя, складаныя выражэнні, падпраграмы і шмат іншых магчымасцей, якія зараз сустракаюцца ў імператыўных мовах праграмавання. У наступныя два дзесяцігоддзі разраблялася шмат іншых імператыўных моў праграмавання. У канцы 1950-х – 1960-х гадоў быў створаны ALGOL для лягчэйшага выражэння матэматычных алгарытмаў, і ён нават выкарыстоўваўся як асноўная мова аперацыйных сістэм нейкіх кампутараў. Мовы праграмавання COBOL (1960) і BASIC (1964) былі спробамі стварыць мову, болей падобную на англійскую. У 1970-х гадах Ніклаус Вірт стварыў Pascal, Dennis Ritchie, пад час сваёй работы ў Bell Laboratories, стварыў C. Пасля гэтага Вірт стварыў мовы Modula-2, Modula-3 і Oberon. Для патрэбаў Дэпартаменту Абароны ЗША, Jean Ichbiah і каманда Honeywell пачала ствараць мову праграмавання Ada ў 1974 годзе, якая сфакусавана на аспектах бяспекі і была скончана ў 1983 годзе.

У 1980-х гадах назіралася вялікае павялічэнне цікавасці да аб'ектна-арыентаванага праграмавання. Мовы з яго падтрымкай былі імператыўнымі, аднак з дадатковымі магчымасці падтрымкі аб'ектаў. Апошнія два дзесяцігоддзі 20 стагоддзя разрабляліся такія мовы. Smalltalk-80, прыдуманы Аланам Кеем у 1969 годзе, быў рэалізаваны ў 1980 годзе ў Xerox Palo Alto Research Center. Выкарыстоўваючы ідэі другой аб'ектна-арыентаванай мовы — Simula (якая лічыцца першай у свеце аб'ектна-арыентаванай мовай праграмавання, створанай у 1960-я гады) — Б'ярнэ Строўструп стварыў C++ – аб'ектна-арыентаваную мову на аснове C. C++ была ўпершыню рэалізавана ў 1985 годзе. У канцы 1980-х і ў 1990-х гадах, заметнай імператыўнай і аб'ектна-арыентаванай мовай праграмавання сталі Perl, створаны ў 1987 годзе Лары Уолам; Python, створаны ў 1990 годзе Гвіда ван Россумам; PHP, створаны ў 1994 годзе Rasmus Lerdorf; і Java, упершыню створаная ў Sun Microsystems у 1994 годзе.

[рэдагаваць] Прыклады моў

Кананічныя прыклады імператыўных моў праграмавання — FORTRAN і Algol. Сярод іншых — Pascal, C і Ada.

[рэдагаваць] Далейшае чытанне

  • Pratt, Terrence W. and Marvin V. Zelkowitz. Programming Languages: Design and Implementation. 3rd ed. Englewood Cliffs, N.J.: Prentice Hall, 1996.
  • Sebesta, Robert W. Concepts of Programming Languages. 3rd ed. Reading, Mass.: Addison-Wesley Publishing Company, 1996.

[рэдагаваць] Спасылкі

Гэты артыкул аснаваны на арыгінальным артыкуле Imperative programming', які стварыў Stan Seibert, з Nupedia, ліцэнзія — GNU Free Documentation License.

На іншых мовах