Імперативне програмування

Імперати́вне програмува́ння — парадигма програмування (стиль написання вихідного коду комп'ютерної програми), згідно з якою описується процес отримання результатів як послідовність інструкцій зміни стану програми.

Імперативна програма схожа на накази (англ. imperative — наказ). Подібно до того, як за допомогою наказового способу в мовознавстві перелічується послідовність дій, що необхідно виконати, імперативні програми є послідовністю операцій комп'ютера для виконання. Поширений синонім імперативному програмуванню є процедурне програмування.

Для імперативного програмування характерні наступні риси ред.

  • у вихідному коді програми записуються інструкції (команди);
  • інструкції повинні виконуватися по черзі;
  • дані, отримані при виконанні попередніх інструкцій, можуть читатися з пам'яті наступними інструкціями;
  • дані, отримані при виконанні інструкцій можуть записуватися в пам'ять.

Імперативні мови програмування протиставляються функційним і логічним мовам програмування. Функційні мови, наприклад, Haskell, не є послідовністю інструкцій і не мають глобального стану. Логічні мови програмування, такі як Prolog, зазвичай визначають що треба обчислити, а не як це треба робити.

При імперативному підході до складання програми(на відміну від функціонального підходу, що належить до декларативної парадигми) широко використовується присвоєння. Наявність операторів присвоєння збільшує складність обрахункової моделі й робить імперативні програми схильні до специфічних помилок, які не зустрічаються при функціональному підході.

Обґрунтування та основи імперативного програмування ред.

Апаратне забезпечення є обов'язковим для всіх комп'ютерів і призначене для виконання машинного коду. Машинний код є інтегрований для апаратної частини(далі hardware) комп'ютера і написаний в особливому імперативному стилі. З точки зору низькорівневих команд стан програми визначається заповненістю пам'яті, а вирази — це інструкції, що написані інтегрованою низькорівневою мовою для hardware. Імперативні мови вищого рівня використовують змінні та складніші вирази, але все ж слідують тій же парадигмі. Засоби та списки процесів хоч і не є комп'ютерними програмами та вони також схожі за стилем з імперативним програмуванням. Кожен крок — команда.

Основні особливості імперативних мов програмування ред.

  • використання іменованих змінних;
    int main(){    int number = 1;}
  • використання оператора присвоєння;
    int main(){    int number = 1;    int b += a; //присвоєння}
  • використання складних виразів;
    //Приклад обрахунку складного виразу sin(4*x);#include<iostream>#include<cmath>using namespace std;int main(){double x;double res = 0.0;cin >> x;res = sin(1 * x);cout << res << endl;system("pause");return 0;}
  • використання підпрограм;
//Викорисатння підпрограм на прикладі знаходження найбільшого числа#include<iostream>using namespace std;int main(){int a, b, c;cout << "Ведіть a = ";cin >> a;cout << "Ведіть b = ";cin >> b;c = max(a, b); // виклик підпрограмиif (c == (a + b))cout << "Числа рівні" << endl;else cout << "Максимальне число = " << c << endl;system("pause");return 0;}int max(int x, int y) //код підпрограми{if (x > y)return x;else return y;if (x == y){int s = x + y;return s;}}
  • та інші.

Історія ред.

Першими імперативними мовами були машинні інструкції (коди) — команди, готові до виконання комп'ютером одразу (без будь-яких перетворень). Пізніше були створені асемблери (assembler), програми стали записувати на мовах асемблерів. Асемблер — комп'ютерна програма призначена для перетворення машинних інструкцій, записаних у вигляді тексту на мові зрозумілій людині (мові асемблера) в машинні інструкції, зрозумілі комп'ютеру (машинний код). Одній інструкції мовою асемблера відповідала одна команда в машинному коді. Різні комп'ютери підтримували різні набори інструкцій. Програми, записані для одного комп'ютера, доводилося заново переписувати для перенесення на інший комп'ютер. Були створенні нові мови програмування високого рівня і відповідні компілятори для них — програми, що перетворювали текст з мови програмування на машинний код. Одна інструкція мови високого рівня відповідала одній або кільком інструкціям машинної мови й для різних машин ці інструкції були різними. Першою розповсюдженою високорівневою мовою програмування, що отримала застосування на практиці, стала мова Fortran, розроблена Джоном Бекусом в 1954 році. Fortran є компільованою мовою програмування і дозволяє використовувати іменовані змінні, складові вирази, підпрограми і багато інших елементів, що поширені в імперативних мовах. Для написання операційних систем для деяких моделей комп'ютерів. Мови COBOL (1960 рік) і Basic (1964 рік) стали першими мовами розробники яких намагалися зробити ці мови схожими на англійську. В 1970-тих роках Ніклаус Вірт розробив мову Pascal. Деніс Рітчі створив мову C. В 1978 році команда розробників з компанії Honeywell розпочала розробку мови Ada, а вже через чотири роки опублікували вимоги для її роботи. Специфікація мови вийшла в 1983 році, була оновлена в 1995 і 2005—2006 роках.

В 1980-тих роках зріс попит на об'єктноорієнтоване програмування (ООП). В 1980 році працівники дослідницького центра Xerox PARC на основі мови Smalltalk, розробленого Аланом Кеєм в 1969 році, творили мову Smalltalk-80. Б'ярн Страуструп на основі мови С і по зразку мови Simula (можливо, першої с світі ООП мови програмування, розробленої ще в 1960-тих роках) розробив мову С++. Перша реалізація С++ була створена в 1985 році. В 1987 році Ларі Уолл випустив мову Perl і інтерпретатор для неї. В 1990 році Гвідо ван Россум випустив мову Python. В 1994 році в компанії Sun MIcrosystems була розроблена мова Java. В 1995 році Расмус Леодорф створив мову PHP. Мова Ruby була випущена 1995 році. Мова С# була випущена у 2002 разом з програмною платформою (фреймворком) .NET Framework, що підтримував кілька мов програмування.

Див. також ред.

🔥 Top keywords: Головна сторінкаСу-57Спеціальна:ПошукВікіпедія:Культурна спадщина та видатні постаті (2024)YouTubeМіжнародний день друзівУкраїнаЧемпіонат Європи з футболу 2024Єрмак Андрій БорисовичЗаворотнюк Анастасія ЮріївнаНаціональна суспільна телерадіокомпанія УкраїниДрібниці (фільм)Вибори до Європейського парламенту 2024БріджертониDassault Mirage 2000Карлос АлькарасТериторіальний центр комплектування та соціальної підтримкиРоманчук Тарас ВікторовичСексАлександр ЗверєвДень батькаПоклонська Наталія ВолодимирівнаРатушний Роман ТарасовичСписок 250 найрейтинговіших фільмів IMDbСписок українських жіночих іменМастерШеф (Україна)FacebookЧемпіонат Європи з легкої атлетики 2024Російське вторгнення в Україну (з 2022)Військові звання УкраїниПоліцейська академія (фільм)КиївКузьма СкрябінСписок українських чоловічих іменМикола Хвильовий9 червня3-тя окрема штурмова бригада (Україна)Kraken (спецпідрозділ)Магучіх Ярослава Олексіївна