Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Концепція функціонального програмування.

Людина лише формулює розв'язувану задачу, а пошуком рішення займається імперативна система.

У підсумку одержуємо:

§ значно більшу швидкість розробки додатків,

§ значно менший розмір вихідного коду,

§ легкість запису знань на декларативних мовах,

§ програми, більш зрозумілі за імперативні.

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

Аsm АМ ФП ЛП ПМ I________I_________I_________I_________I

Аsm - асемблер

АМ - алгоритмічні (процедурні) мови

ФП - мови функціонального програмування

ЛП - мови логічного програмування

ПМ - Природні мови (англійська, українська й ін.)

Рис.1. Близькість до природної мови.

 

Ті, що ближчі до комп'ютера, відносять до мов низького рівня, а ті, що ближчі людям, - мовами високого рівня. У цьому сенсі декларативні мови можна назвати мовами надвисокого або найвищого рівня, оскільки вони дуже близькі до людської мови й людського мислення.

ДЕКЛАРАТИВНИМИ є функціональні (functional), або аппликативні, і логічні (logic) мови. Головне полягає в наступному:

декларативна програма заявляє (декларує), що повинне бути досягнуте в якості мети, а директивна - пропонує, як її досягти.

Пояснимо це на наступному прикладі: Нехай треба пройти в місті з пункту А в пункт Б.

Декларативна програма - це план міста, у якому зазначено обоє пункти, плюс правила вуличного руху. Керуючись цими правилами й планом міста, кур'єр сам знайде шлях від пункту А до пункту Б.

Директивна програма - це список команд, наприклад:

від пункту А по вул. Садовій на північ до пл. Слави, далі по вул. Пушкіна два квартали, потім повернути праворуч і йти до Театрального провулка, по якому ліворуч по правій стороні до будинку 20, що і є пункт Б.

 

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

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

 

ФУНКЦІОНАЛЬНЕ ПРОГРАМУВАННЯ припускає достатнім обчислення функцій від вихідних даних і результатів інших функцій, і не припускає явного зберігання стану програми. Найвідоміші мови: LISP, F#, Haskell, Erlang , APL, ML, Scala, Miranda, Nemerle, XQuery, Python.

 

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

 

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

3. "Чисте" функціональне програмування не має оператора присвоювання, у ньому обчислення функції не приводить до побічних ефектів. Розгалуження обчислень засноване на обробці аргументів умовного твердження, а циклічні обчислення реалізуються за допомогою рекурсії.

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

5. Відсутність побічних ефектів у процесі обчислення функцій приводить до того, що порядок виконання окремих фрагментів програми не суттєвий - підсумкове значення в кожному разі буде однаковим.

6. Функціональне програмування досить гарне й іноді в якості першої мови програмування, досліджуваної студентами, обирається Haskell або Lisp. Для успішного оволодіння даним стилем програмування, втім, необхідно досить глибоке розуміння багатьох розділів математики.

 

 

ЛОГІЧНЕ ПРОГРАМУВАННЯзасноване на автоматичному доказі теорем, на теорії й апараті математичної логіки з використанням математичних принципів резолюцій. Найвідомішою мовою логічного програмування є Prolog.

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


Читайте також:

  1. Абстрактна небезпека і концепція допустимого ризику.
  2. Аналітична психологія. Концепція Карла Юнга
  3. Англійська педагогіка XVII ст. Педагогічна концепція Дж.Локка
  4. Витратна концепція оцінки потенціалу підприємства
  5. Витратна концепція оцінки потенціалу підприємства
  6. Відповідно до розділу 5 Тимчасового регламенту Кабінету Мі­ністрів України концепція повинна мати шість розділів.
  7. Вітчизняна концепція витрат виробництва і прибутку.
  8. Геоцентрична концепція.
  9. Гуманітарно-демократичний напрям (концепція).
  10. Динамічне програмування.
  11. Економічна концепція вартості відображає погляд ринку на вигоди, що придбаваються тим, хто стає власником даних товарів або користується даними послугами
  12. Економічна концепція Прудона.




Переглядів: 907

<== попередня сторінка | наступна сторінка ==>
Парадигми програмування | Сучасний етап розвитку декларативних мов.

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.051 сек.