Програмування: відмінності між версіями

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[перевірена версія][неперевірена версія]
м (→‎Література: правопис)
(доповнення фрази)
Рядок 4: Рядок 4:
У вужчому значенні програмування розглядається як кодування — реалізація у вигляді програми одного чи кількох взаємопов'язаних [[алгоритм]]ів (у сучасних умовах це здійснюється з застосуванням [[Мова програмування|мов програмування]]). У ширшому сенсі процес програмування охоплює і створення, тобто розробку, [[алгоритм]]ів, і аналіз потреб майбутніх користувачів [[програмне забезпечення|програмного забезпечення]].
У вужчому значенні програмування розглядається як кодування — реалізація у вигляді програми одного чи кількох взаємопов'язаних [[алгоритм]]ів (у сучасних умовах це здійснюється з застосуванням [[Мова програмування|мов програмування]]). У ширшому сенсі процес програмування охоплює і створення, тобто розробку, [[алгоритм]]ів, і аналіз потреб майбутніх користувачів [[програмне забезпечення|програмного забезпечення]].


У широкому значенні програмування використовується у значенні створення програми дій або [[алгоритм]]ів та навчання людей або пристроїв діяти за [[алгоритм]]ами.
У широкому значенні програмування використовується у значенні створення програми дій або [[алгоритм]]ів та навчання людей або пристроїв діяти за [[алгоритм]]ами; створення послідовності дій, яка призводить до бажаного результату.


== Історія ==
== Історія ==

Версія за 19:24, 29 грудня 2021

Програмування — процес проектування, написання, тестування, зневадження і підтримки комп'ютерних програм. Програмування поєднує в собі елементи інженерії (існує навіть відповідна спеціальна галузь інженерії — програмна інженерія, англ. software engineering), фундаментальних наук (перш за все математики) і мистецтва[1].

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

У широкому значенні програмування використовується у значенні створення програми дій або алгоритмів та навчання людей або пристроїв діяти за алгоритмами; створення послідовності дій, яка призводить до бажаного результату.

Історія

Сучасне програмування

Критерії якості

Яким би не був підхід до створення програмного забезпечення, кінцева програма має задовольняти деяким вимогам. Найчастіше зустрічаються[джерело не вказане 3726 днів]:

  • Ефективність/Продуктивність: кількість ресурсів системи, що споживає програма (час процесора, розмір пам'яті, зовнішня пам'ять, ширина каналу мережі, і навіть взаємодії з користувачем). Чим менше ресурсів споживається, тим краще;
  • Надійність: ймовірність того, що результат роботи програми правильний. Це залежить від коректності алгоритмів та правильності кодування;
  • Стійкість: як програма розв'язує проблеми в нестандартних ситуаціях, як наприклад неправильні дані, недоступність необхідних ресурсів як наприклад пам'ять, локальна мережа, та неправильні дії користувача;
  • Зручність: ергономічність програми. Легкість, з якою особа може використовувати програму для своїх цілей;
  • Переносимість: діапазон апаратного забезпечення та операційних систем на яких можна компілювати чи інтерпретувати код програми, виконуючи її. Це залежить від відмінностей в програмних ресурсах наданих різними платформами, включаючи ресурси, наявність компіляторів та бібліотек для мови програмування;
  • Масштабованість: Простота подальшого супроводження програми, тобто внесення в неї додаткових вдосконалень, що збільшують функціональність чи виправляють помилки. Цей критерій не має прямого відношення до користувача, але впливає на час, протягом якого програма буде використовуватись.
  • Естетичність: Вигляд програми на екрані з точки зору підбору кольорів, форм, розмірів графічних елементів і контролів, гармонійності їх взаємного розташування, якість малюнків, вибір шрифтів тексту, а також доречність звукових сигналів і мелодій, рухів вібродвигуна.
  • Етичність: Ступінь спрямованості на задоволення справжніх потреб людей, реалізацію кращих і законних бажань користувачів і розробників.

Рівні програмування

Успішне програмування передбачає виконання необхідних дій на таких рівнях[джерело?]:

  • Економічний (бізнес-логіка): Формування вимог до програмного продукту з урахуванням привабливості для користувачів, прибутковості для розробника і наявних можливостей розробника. Побудова загального уявлення про функціональність, спрямованість і призначення програмного продукту;
  • Структурний (архітектура): Створення переліку і взаємозв'язків потрібних модулів, графічних і звукових елементів, алгоритмів, баз даних, файлів, вибір мови програмування. Результатом цього кроку є повне, детальне і однозначне уявлення про функціонування майбутнього програмного продукту, включно з усіма графічними елементами, подіями і їх обробниками, станами і режимами програми, а також послідовність дій програміста, яка призводить до реалізації задуманого продукту;
  • Детальний/Фізичний (кодування): Реалізація окремих функцій з використанням конструкцій, операторів і бібліотек мови програмування, формування образів екранів в графічних дизайнерах, друкування тексту програми на клавіатурі.

Суперкомпіляція

Суперкомпіляція — метод аналізу й перетворення програм на основі наступних дій:[2][3]

  • Робиться спроба «виконати» програму не для конкретних вхідних даних, а «символічно» у «загальному» вгляді, тобто для довільних вхідних даних. Для цього будується «дерево процесів».
  • Якщо початкова програма містить цикли та/або рекурсію, то дерево процесів є нескінченним. У цьому випадку робиться спроба згорнути нескінченне дерево у скінченний «граф конфігурацій». Для цього конфігурації порівнюються між собою.
  • Побудований скінченний граф конфіругацій перетворюється в «залишкову» програму.

Спеціалізація програм. Нехай  — програма,  — обмеження на умови експлутації . Тоді на вхід спеціалізатора подається , а задача спеціалізатора — породити залишкову програму яка повинна задовільняти наступним умовам

  • за умов ;
  • отримується з шляхом вилучення непотрібних фрагментів в результаті накладання умов .

Мова програмування

Це система позначень яку використовує програміст для опису програми.

Теорія програмування

Пов'язана з вивченням програмування в загальному контексті інформатики як наукової дисципліни.

Див. також

Спортивне (олімпіадне) програмування

Примітки

  1. Graham, Paul. Knuth: Computer Programming as an Art. Процитовано 11 травня 2017. 
  2. Анд. В. Климов, С.А.Романенко - Суперкомпиляция: основные принципы и базовые понятия. 
  3. И. Г. Ключников - Суперкомпиляция функций высших порядков. 

Посилання

Література

  • Зубенко В. В. Програмування: навчальний посібник (гриф МОН України) / В. В. Зубенко, Л. Л. Омельчук. — К. : ВПЦ «Київський університет», 2011. — 623 c.
  • Логічне і функціональне програмування : навч. посіб. / В. М. Заяць, М. М. Заяць ; Нац. ун-т "Львів. політехніка". - Львів ; Кам'янець-Подільський : Гордукова І. Є., 2016. - 398 с. : рис.
  • Нікітченко М. С. Теоретичні основи програмування: навчальний посібник / М.С Нікітченко — Ніжин: Видавництво НДУ імені Миколи Гоголя, 2010. — 121 с.
  • Основи програмування : навч. посіб. / Л. І. Козак, І. В. Костюк, С. Л. Стасевич. – Львів  : Новий Світ – 2000, 2019. - 326 с.
  • Програмування веб-застосувань (фронт-енд та бек-енд) : навч. посіб. / Р. А. Мельник ; Нац. ун-т "Львів. політехніка". - Львів : Вид-во Львів. політехніки, 2018. - 247 с. : рис., табл.