
- •Домашнє завдання з дисципліни " Обчислювальна техніка та програмування" на тему: "Мова програмування clojure"
- •Можливості мови
- •Основні типи даних
- •Коллекції Clojure
- •Функції:
- •Макроси:
- •Шаблони
- •Робота зі змінними даними
- •Складання блок-схем
- •Основні поняття мови: числа, рядки, ідентифікатори, описи, оператори.
- •Методологія процедурно-орієнтованого програмування
Методологія процедурно-орієнтованого програмування
Поява перших електронних обчислювальних машин, або комп'ютерів, ознаменувало новий етап у розвитку техніки обчислень. Здавалося, достатньо розробити послідовність елементарних дій, кожну з яких можна перетворити на зрозумілі комп'ютеру інструкції, і будь-яка обчислювальна задача буде вирішена. Ця ідея виявилася настільки життєздатною, що довгий час домінувала над усім процесом розробки програм. З'явилися спеціалізовані мови програмування, створені для розробки програм, призначених для вирішення обчислювальних завдань. Прикладами таких мов можуть служити FOCAL(FOrmula CALculator) і FORTRAN (FORmula TRANslator).
Основою такої методології розробки програм була процедурна, або алгоритмічна, організація структури програмного коду. Це було настільки природньо для вирішення обчислювальних завдань, що доцільність такого підходу ні в кого не викликала сумнівів. Вихідним у даній методології було поняття алгоритму. Алгоритм - це спосіб вирішення обчислювальних та інших завдань, точно описує певну послідовність дій, які необхідно виконати для досягнення заданої мети. Прикладами алгоритмів є добре відомі правила знаходження коренів квадратного рівняння або системи лінійних рівнянь.
При збільшенні обсягів програм для спрощення їх розробки з'явилася необхідність розбивати великі завдання на підзадачі. У мовах програмування виникло і закріпилося нове поняття процедури. Використання процедур дозволило розбивати великі завдання на підзадачі і таким чином спростило написання великих програм. Крім того, процедурний підхід дозволив зменшити обсяг програмного коду за рахунок написання часто використовуваних шматків коду у вигляді процедур та їх застосування в різних частинах програми.
Як і алгоритм, процедура являє собою закінчену послідовність дій або операцій, спрямованих на вирішення окремого завдання. У мовах програмування з'явилася спеціальна синтаксична конструкція, яка також отримала назву процедури. Наприклад, на мові Pascal опис процедури виглядає наступним чином:
Procedure printGreeting (name: String)
Begin
Write ("Hello,");
WriteLn (name);
End;
Призначення цієї процедури - вивести на екран вітання Hello, Name, де Name передається в процедуру в якості вхідного параметра.
З часом обчислювальні завдання ставали все складнішими, а значить, і вирішальні їх програми збільшувалися в розмірах. Їх розробка перетворилася на серйозну проблему. Коли програма стає все більшою, її доводиться розділяти на все більш дрібні фрагменти. Основою для такого розбиття якраз і стала процедурна декомпозиція, при якій окремі частини програми, або модулі, представляли собою сукупність процедур для вирішення однієї або кількох завдань. Одна з основних особливостей процедурного програмування полягає в тому, що воно дозволило створювати бібліотеки підпрограм (процедур), які можна було б використовувати повторно в різних проектах або в рамках одного проекту. При процедурному підході для візуального представлення алгоритму виконання програми застосовується так звана блок-схема. Відповідна система графічних позначень була зафіксована в ГОСТ 19.701-90. Приклад блок-схеми зображений на малюнку (мал. 2.1)
рис.2 1. Приклад блок-схеми
Поява і інтенсивне використання умовних операторів і оператора безумовного переходу стало предметом гострих дискусій серед фахівців з програмування. Справа в тому, що безконтрольне застосування в програмі оператора безумовного переходу goto може помітно ускладнити розуміння коду. Такі заплутані програми порівнювали з порцією спагетті (bowl of spaghetti), маючи на увазі численні переходи від одного фрагмента програми до іншого, або, що ще гірше, повернення від кінцевих операторів програми до початкових. Ситуація здавалася настільки драматичною, що багато пропонували виключити оператор goto з мов програмування. Саме з цього часу відсутність безумовних переходів стали вважати хорошим стилем програмування.
Подальше збільшення програмних систем сприяло формуванню нової точки зору на процес розробки програм і написання програмних кодів, яка отримала назву методології структурного програмування. Її основою є процедурна декомпозиція предметної області розв'язуваної задачі і організація окремих модулів у вигляді сукупності процедур. У рамках цієї методології отримало розвиток низхідне проектування програм, або проектування "зверху вниз". Пік популярності ідей структурного програмування припадає на кінець 70-х - початок 80-х років.У цей період основним показником складності розробки програми вважався її розмір. Цілком серйозно обговорювалися такі оцінки складності програм, як кількість рядків програмного коду. Правда, при цьому робилися деякі припущення щодо синтаксису самих рядків, які повинні були відповідати певним вимогам. Наприклад, кожен рядок коду повиннен був містити не більше одного оператора. Загальна трудомісткість розробки програм оцінювалася спеціальної одиницею виміру - "людино-місяць", або "людино-рік". А професіоналізм програміста безпосередньо пов'язувався з кількістю рядків програмного коду, який він міг написати й налагодити протягом, скажімо, місяця.[10]
Висновки:
Мова програмування Clojure є перспективною в умовах сьогодення, оскільки вона знаходить своє застосування у вирішенні задач з багатьма числами та діями над ними. Це не єдина програма, яка може виконувати обрахунки з великою кількістю чисел, але саме Clojure є найзручнішою мовою для цього, оскільки не займає стільки рядків у написанні і має інший алгоритм розв’язку.
Процедурна парадигма – також важлива частина серед інших парадигм. Завдяки своїй простоті, вона дає змогу початківцям в програмуванні навчатися в Pascal і Turbo Pascal, а також має широкий ряд інших, схожих мов програмування.
Cписок використаної літератури:
1)Інтернет ресурс: http://uk.wikipedia.org/wiki/%CF%E0%F0%E0%E4%E8%E3%EC%E0_%EF%F0%EE%E3%F0%E0%EC%F3%E2%E0%ED%ED%FF
2) Інтернет ресурс: : http://uk.wikipedia.org/wiki/Clojure
3) Інтернет ресурс : http://fprog.ru/2010/issue4/alex-ott-clojure/
4) Інтернет ресурс: http://www.ibm.com/developerworks/ru/library/os-eclipse-clojure/
5) Інтернет ресурс: http://ru.wikibooks.org/wiki/Программирование_на_Clojure
6) Інтернет ресурс: http://fprog.ru/2010/issue4/alex-ott-clojure/
7) Інтернет ресурс: http://nazachot.ru/referat/program_and_comput/1147-vikoristannya-procedur-v-programuvanni-yix-tipi-i-sposobi-zapisu.html
8) Інтернет ресурс: http://5fan.ru/wievjob.php?id=17327
9) Інтернет ресурс: http://www.seobuilding.ru/wiki/Процедурное_программирование
10) Інтернет ресурс: http://www.znannya.org/?view=jc-programm