Топ питань
Часова шкала
Чат
Перспективи

Порівняння багатопарадигмальних мов програмування

стаття-список у проєкті Вікімедіа З Вікіпедії, вільної енциклопедії

Remove ads

Мови програмування можна згрупувати за кількістю та типами підтримуваних парадигм.

Підсумки парадигм

Узагальнити
Перспектива

Коротке посилання на парадигми програмування, перелічені в цій статті.

  • Одночасне програмування – наявність мовних конструкцій для паралелізму, це може включати багатопотоковість, підтримку розподілених обчислень, передачу повідомлень, спільні ресурси (включаючи спільну пам’ять) або обіцянки
    • Програмування акторів – одночасне обчислення з акторами, які ухвалюють локальні рішення у відповідь на середовище (здатні до егоїстичної або конкурентної поведінки)
  • Програмування в обмеженнях – зв’язки між змінними виражаються як обмеження (або мережі обмежень), що спрямовує допустимі рішення (використовує задоволення обмежень або симплексний алгоритм)
  • Програмування потоку даних – примусовий перерахунок формул при зміні значень даних (наприклад, електронні таблиці)
  • Декларативне програмування – описує, що має виконувати обчислення, без вказівки детальних змін стану порівняно з імперативним програмуванням (функціональне та логічне програмування є основними підгрупами декларативного програмування)
  • Розподілене програмування – підтримка кількох автономних комп’ютерів, які спілкуються через комп’ютерні мережі
  • Функціональне програмування – використовує оцінку математичних функцій і уникає стану та змінних даних
  • Узагальнене програмування – використовує алгоритми, написані в термінах типів, які будуть визначені пізніше, які потім створюються за потреби для конкретних типів, наданих як параметри
  • Імперативне програмування – явні оператори, які змінюють стан програми
  • Логічне програмування – використовує явну математичну логіку для програмування
  • Метапрограмування – написання програм, які пишуть або маніпулюють іншими програмами (або собою) як їхніми даними, або виконують частину роботи під час компіляції, яка інакше була б виконана під час виконання
    • Шаблонне метапрограмування – методи метапрограмування, у яких шаблони використовуються компілятором для створення тимчасового вихідного коду, який компілятор об’єднує з рештою вихідного коду, а потім компілює
    • Рефлексивне програмування – методи метапрограмування, за яких програма змінює або розширює саму себе
  • Об’єктно-орієнтоване програмування – використовує структури даних, що складаються з полів даних і методів разом з їх взаємодією (об’єктами) для розробки програм
    • На основі класів – об’єктно-орієнтоване програмування, у якому успадкування досягається шляхом визначення класів об’єктів, а не самих об’єктів.
    • На основі прототипу – об’єктно-орієнтоване програмування, яке уникає класів і реалізує успадкування через клонування екземплярів
  • Конвеєрне програмування – проста зміна синтаксису для додавання синтаксису до викликів вкладених функцій до мови, спочатку розробленої без жодного
  • Програмування на основі правил – мережа емпіричних правил, які містять базу знань і можуть бути використані для експертних систем, дедукції та вирішення проблем
  • Візуальне програмування – маніпулювання елементами програми графічно, а не вказуючи їх текстово (наприклад, Simulink); також називається діаграмним програмуванням[1].
Remove ads

Огляд мови

Більше інформації Мова, Кількість парадигм ...
Remove ads

Дивіться також

Список літератури

  • Джим Коплієн, Multiparadigm Design for C++, Addison-Wesley Professional, 1998.

Коментарі

  1. rendezvous and monitor-like based
  2. Class-based
  3. Template metaprogramming
  4. only lambda support (lazy functional programming)
  5. actor programming
  6. using Node.js' cluster module or child_process.fork method, web workers in the browser, etc.
  7. Prototype-based
  8. in Node.js via their events module
  9. in browsers via their native EventTarget API
  10. purely functional
  11. parameterized classes
Remove ads

Примітки

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads