Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Предмет науки програмування



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

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

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

Наука програмування (computer science) займається дослідженням властивостей алгоритмів і розробкою методів побудування програм. За змістом і методикою вона є областю прикладної математики.

Перед тим, як перейти безпосередньо до прикладів програм, обговоримо питання про те, якими якостями повинна володіти хороша програма.

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

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

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

Властивості розуміння і модифікації програм пов’язані дуже тісно: важко змінити програму, яку не розумієш. В реальному житі програміста задачі модифікації вже написаних кимось раніше програм зустрічаються практично нарівні з задачами розробки програм з нуля.

Етап реалізації алгоритма: програмування. Як тільки ал­горитм написаний, наприклад, у вигляді послідовності кроків і ми переконалися у його правильності, настає час реалізації алгоритма, тобто етап написання програми для комп’ютера. Цей етап можна поділити на два підетапи: переклад кроків алгоритму на мову про­грамування і метод проектування програми.

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

• Які змінні основні?

• Які типи цих змінних?

• Скільки потрібно масивів і якої розмірності?

• Чи є потреба використання зв’язних списків?

• Які потрібні підпрограми (можливо вже існуючі)?

• Якою мовою програмування скористатися?

Конкретна реалізація може суттєво впливати па вимоги до пам’яті і швидкодію алгоритму.

Другий важливий підетап побудови програмної реалізації - це проектування зверху-вниз. Пояснення цього методу проектування буде дано в наступних розділах, а зараз лише зауважимо, що про­грамування зверху-вниз - це підхід до проектування і реалізації алгоритма, який полягає в покроковому перетворенні алгоритму в таку послідовність все більш і більш конкретизованих алгоритмів, яка в кінці кінців і буде програмою для комп’ютера.

Належить зробити важливе зауваження. Одна справа - дове­сти правильність конкретного алгоритму, який описаний словесно, а друга - довести, що дана машинна реалізація (програма) цього ал­горитму, теж правильна. Отже, необхідно ретельно слідкувати за тим, щоб процес перетворення правильного алгоритму в програму для комп’ютера був адекватним.

Важливим кроком при реалізації алгоритма є вибір мови про­грамування. За останні 50 років, які пройшли з часу виникнення програмування як науки, появилося декілька парадигм програму­вання, па підставі яких будуються мови програмування. Ці пара­дигми поділяються па основні парадигми і парадигми вищих порядків. До основних парадигм програмування належать

• процедурна або імперативна;

• функціональна;

• алгебраїчна;

• логічна.

До парадигм програмування вищих порядків належать

• - об’єктно-орієнтована (об’єктно-орієнтоване програмування);

• - розподільна або паралельна (паралельне програмування);

• - агентна (агентне програмування),

а також можливі інтеграції цих парадигм.

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





Дата публикования: 2015-09-18; Прочитано: 876 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...