Програмування
Цикл розробки програмного забезпечення |
---|
![]() Програміст за роботою |
Діяльність і кроки |
Допоміжні дисципліни |
Практики |
Інструменти |
Стандарти та галузі знань |
Програмування — процес проектування, написання, тестування, зневадження і підтримки комп'ютерних програм. Програмування поєднує в собі елементи інженерії (існує навіть відповідна спеціальна галузь інженерії — програмна інженерія, англ. software engineering), фундаментальних наук (перш за все математики) і мистецтва[1].
У вужчому значенні програмування розглядається як кодування — реалізація у вигляді програми одного чи кількох взаємопов'язаних алгоритмів (у сучасних умовах це здійснюється з застосуванням мов програмування). У ширшому сенсі процес програмування охоплює і створення, тобто розробку, алгоритмів, і аналіз потреб майбутніх користувачів програмного забезпечення.
У широкому значенні програмування використовується у значенні створення програми дій або алгоритмів та навчання людей або пристроїв діяти за алгоритмами.
Історія[ред. | ред. код]
Сучасне програмування[ред. | ред. код]
Критерії якості[ред. | ред. код]
Яким би не був підхід до створення програмного забезпечення, кінцева програма має задовольняти деяким вимогам. Найчастіше зустрічаються[джерело не вказане 3099 днів]:
- Ефективність/Продуктивність: кількість ресурсів системи, що споживає програма (час процесора, розмір пам'яті, зовнішня пам'ять, ширина каналу мережі, і навіть взаємодії з користувачем). Чим менше ресурсів споживається, тим краще;
- Надійність: ймовірність того, що результат роботи програми правильний. Це залежить від коректності алгоритмів та правильності кодування;
- Стійкість: як програма розв'язує проблеми в нестандартних ситуаціях, як наприклад неправильні дані, недоступність необхідних ресурсів як наприклад пам'ять, локальна мережа, та неправильні дії користувача;
- Зручність: ергономічність програми. Легкість, з якою особа може використовувати програму для своїх цілей;
- Переносимість: діапазон апаратного забезпечення та операційних систем на яких можна компілювати чи інтерпретувати код програми, виконуючи її. Це залежить від відмінностей в програмних ресурсах наданих різними платформами, включаючи ресурси, наявність компіляторів та бібліотек для мови програмування;
- Масштабованість: Простота подальшого супроводження програми, тобто внесення в неї додаткових вдосконалень, що збільшують функціональність чи виправляють помилки. Цей критерій не має прямого відношення до користувача, але впливає на час, протягом якого програма буде використовуватись.
Рівні програмування[ред. | ред. код]
Успішне програмування передбачає виконання необхідних дій на таких рівнях[джерело?]:
- Економічний (бізнес-логіка): Формування вимог до програмного продукту з урахуванням привабливості для користувачів, прибутковості для розробника і наявних можливостей розробника;
- Структурний (архітектура): Створення переліку і взаємозв'язків потрібних модулів, графічних і звукових елементів, алгоритмів, баз даних, файлів, вибір мови програмування;
- Детальний/Фізичний (кодування): Реалізація окремих функцій з використанням конструкцій і операторів мови програмування, друкування тексту програми на клавіатурі.
Суперкомпіляція [2][3][ред. | ред. код]
Суперкомпіляція - метод аналізу й перетворення програм на основі наступних дій:
- Робиться спроба "виконати" програму не для конкретних вхідних даних, а "символічно" у "загальному" вгляді, тобто для довільних вхідних даних. Для цього будується "дерево процесів".
- Якщо початкова програма містить цикли та/або рекурсію, то дерево процесів є нескінченним. У цьому випадку робиться спроба згорнути нескінченне дерево у скінченний "граф конфігурацій". Для цього конфігурації порівнюються між собою.
- Побудований скінченний граф конфіругацій перетворюється в "залишкову" програму.
Спеціалізація програм. Нехай - програма, - обмеження на умови експлутації . Тоді на вхід спеціалізатора подається , а задача спеціалізатора - породити залишкову програму яка повинна задовільняти наступним умовам
- за умов ;
- отримується з шляхом вилучення непотрібних фрагментів в результаті накладання умов .
Мова програмування[ред. | ред. код]
Це система позначень яку використовує програміст для опису програми.
Теорія програмування[ред. | ред. код]
Пов'язана з вивченням програмування в загальному контексті інформатики як наукової дисципліни.
Див. також[ред. | ред. код]
![]() |
Вікіцитати містять висловлювання на тему: Програмування |
![]() |
Вікісховище має мультимедійні дані за темою: Програмування |
- Нейролінгвістичне програмування
- Мова програмування
- Логіка в інформатиці
- Композиційне програмування
- Мова моделювання
- Людино-машинна взаємодія
- Інтерфейс користувача
Спортивне (олімпіадне) програмування[ред. | ред. код]
Примітки[ред. | ред. код]
- ↑ Graham, Paul. Knuth: Computer Programming as an Art. Процитовано 2017-05-11.
- ↑ Анд. В. Климов, С.А.Романенко - Суперкомпиляция: основные принципы и базовые понятия.
- ↑ И. Г. Ключников - Суперкомпиляция функций высших порядков.
Посилання[ред. | ред. код]
Література[ред. | ред. код]
- Зубенко В. В. Програмування: навчальний посібник (гриф МОН України) / В. В. Зубенко, Л. Л. Омельчук. — К. : ВПЦ «Київський університет», 2011. — 623 c.
- Нікітченко М. С. Теоретичні основи програмування: навчальний посібник / М.С Нікітченко — Ніжин: Видавництво НДУ імені Миколи Гоголя, 2010. — 121с.
- Лавров С. С. Програмирование. Математические основи, средства, теория / С. С. Лавров. — СПб. : БХВ-Петербург,2001. — 251с.
- Непейвода Н. Н. Основания програмирования: учеб. пособие / Н. Н. Непейвода, И. Н. Скопин. — Ижевск, 2003.
![]() |
Це незавершена стаття про інформаційні технології. Ви можете допомогти проєкту, виправивши або дописавши її. |
|