Парадигмы программирования
Парадигма программирования - это фундаментальный стиль или подход к решению задач с использованием языка программирования. Различные парадигмы программирования предоставляют разные способы организации и структурирования кода и имеют разные сильные и слабые стороны. Некоторые из наиболее распространенных парадигм программирования включают:
- Императивное программирование
- Функциональное программирование
- Объектно-ориентированное программирование
- Логическое программирование
- Декларативное программирование
Парадигмой также можно назвать метод решения некоторой проблемы или выполнения некоторой задачи. Парадигма программирования - это подход к решению проблемы с использованием некоторого языка программирования, или также мы можем сказать, что это метод решения проблемы с использованием инструментов и техник, которые доступны нам после определенного подхода. Известно множество вариантов языка программирования, но все они должны следовать определенной стратегии при их реализации, и эта методология / стратегия называется paradigms. Помимо разновидностей языков программирования существует множество парадигм для удовлетворения всех без исключения требований.
Они обсуждаются ниже:
1. Парадигма императивного программирования
Это одна из старейших парадигм программирования. Она имеет тесную связь с машинной архитектурой. Она основана на архитектуре Фон Неймана. Он работает путем изменения состояния программы с помощью операторов присваивания. Он выполняет пошаговую задачу путем изменения состояния. Основное внимание уделяется тому, как достичь цели. Парадигма состоит из нескольких инструкций, и после выполнения всех результат сохраняется.
Преимущества:
- Очень проста в реализации
- Содержит циклы, переменные и т.д.
Недостаток:
- Сложная проблема не может быть решена
- Менее эффективна и менее производительна
- Параллельное программирование невозможно
Examples of Imperative programming paradigm:
C : developed by Dennis Ritchie and Ken Thompson Fortran : developed by John Backus for IBM Basic : developed by John G Kemeny and Thomas E Kurtz
// average of five number in C
int marks[5] = { 12, 32, 45, 13, 19 } int sum = 0;
float average = 0.0;
for (int i = 0; i < 5; i++) {
sum = sum + marks[i];
}
average = sum / 5;
Императивное программирование делится на три широкие категории: процедурное, ООП и параллельная обработка.
Эти парадигмы следующие:
Процедурное программирование
В этой парадигме упор делается на процедуру с точки зрения лежащей в основе модели машины. Нет разницы между процедурным и императивным подходом. У него есть возможность повторного использования кода, и это было благом в то время, когда он использовался, из-за его возможности повторного использования.
Examples of Procedural programming paradigm:
C : developed by Dennis Ritchie and Ken Thompson C++ : developed by Bjarne Stroustrup Java : developed by James Gosling at Sun Microsystems ColdFusion : developed by J J Allaire Pascal : developed by Niklaus Wirth
#include <iostream>
using namespace std;
int main()
{
int i, fact = 1, num;
cout << "Enter any Number: ";
cin >> number;
for (i = 1; i <= num; i++) {
fact = fact * i;
}
cout << "Factorial of " << num << " is: " << fact << endl;
return 0;
}
Объектно-ориентированное программирование
Программа написана как набор классов и объектов, которые предназначены для обмена данными. Наименьшей и базовой сущностью является object, и все виды вычислений выполняются только с объектами. Больше внимания уделяется данным, а не процедурам. Он может решать практически все виды реальных жизненных проблем, которые сегодня находятся в сценарии.
Преимущества:
- Безопасность данных
- Наследование
- Возможность повторного использования кода
- Гибкость и абстракция также присутствуют
Examples of Object Oriented programming paradigm:
Simula : first OOP language Java : developed by James Gosling at Sun Microsystems C++ : developed by Bjarne Stroustrup Objective-C : designed by Brad Cox Visual Basic .NET : developed by Microsoft Python : developed by Guido van Rossum Ruby : developed by Yukihiro Matsumoto Smalltalk : developed by Alan Kay, Dan Ingalls, Adele Goldberg
// C++ program for the above approach
#include <bits/stdc++.h>
using namespace std;
// Class Signup
class Signup {
int userid;
string name;
string emailid;
char sex;
long mob;
public:
// Function to create and object using
// the parameters
void create(int userid, string name, string emailid,
char sex, long mob)
{
cout << "Welcome to GeeksforGeeks\nLets create "
"your account\n";
this->userid = 132;
this->name = "Radha";
this->emailid = "radha.89@gmail.com";
this->sex = 'F';
this->mob = 900558981;
cout << "your account has been created" << endl;
}
};
// Driver Cpde
int main()
{
cout << "GfG!" << endl;
// Creating Objects
Signup s1;
s1.create(22, "riya", "riya2@gmail.com", 'F', 89002);
return 0;
}
Результат
Подход параллельной обработки
Параллельная обработка - это обработка программных инструкций путем их разделения между несколькими процессорами. Система параллельной обработки располагает большим количеством процессоров с целью выполнения программы за меньшее время за счет их разделения. Этот подход, похоже, похож на разделяй и властвуй. Примерами являются NESL (один из старейших) и C / C ++, которые также поддерживаются из-за некоторой библиотечной функции.
Декларативная парадигма программирования
Она подразделяется на логическую, функциональную и базы данных. В информатике декларативное программирование - это стиль построения программ, который выражает логику вычислений, не говоря о потоке управления ими. В нем программы часто рассматриваются как теории некоторой логики.Это может упростить написание параллельных программ. Основное внимание уделяется тому, что должно быть сделано, а не тому, как это должно быть сделано, в основном акцент делается на том, что на самом деле делает код. В нем просто объявляется желаемый результат, а не то, как он был получен. Это единственное различие между императивной (как делать) и декларативной (что делать) парадигмами программирования. Углубляясь, мы увидим логику, функционал и базу данных.
Парадигмы логического программирования
Это можно назвать абстрактной моделью вычислений. Это позволило бы решать логические задачи, такие как головоломки, серии и т.д. В логическом программировании у нас есть база знаний, которую мы знаем раньше, и вместе с вопросом и базой знаний, которые передаются машине, она выдает результат. В обычных языках программирования такая концепция базы знаний недоступна, но при использовании концепции искусственного интеллекта, машинного обучения у нас есть некоторые модели, такие как модель восприятия, которая использует тот же механизм. В логическом программировании основной упор делается на базу знаний и проблему. Выполнение программы очень похоже на доказательство математического утверждения, например, Prolog.
predicates
sumoftwonumber(integer, integer).
clauses
sumoftwonumber(0, 0).
sumoftwonumber(N, R) :-
N > 0,
N1 is N - 1,
sumoftwonumber(N1, R1),
R is R1 + N.
Парадигмы функционального программирования
Парадигмы функционального программирования уходят корнями в математику и не зависят от языка. Ключевым принципом этих парадигм является выполнение ряда математических функций. Центральной моделью абстракции являются функции, предназначенные для некоторых конкретных вычислений, а не структура данных. Данные слабо связаны с функциями.Функции скрывают свою реализацию. Функции можно заменить их значениями без изменения смысла программы. Некоторые языки, такие как perl, javascript, в основном используют эту парадигму.
Examples of Functional programming paradigm:
JavaScript : developed by Brendan Eich Haskell : developed by Lennart Augustsson, Dave Barton Scala : developed by Martin Odersky Erlang : developed by Joe Armstrong, Robert Virding Lisp : developed by John Mccarthy ML : developed by Robin Milner Clojure : developed by Rich Hickey
База данных / подход к программированию, основанный на данных
Эта методология программирования основана на данных и их перемещении. Программные инструкции определяются данными, а не жестко запрограммированной серией шагов. Программа базы данных является сердцем бизнес-информационной системы и обеспечивает создание файлов, ввод данных, обновление, функции запроса и отчетности. Существует несколько языков программирования, которые разрабатываются в основном для применения в базах данных. Например, SQL. Он применяется к потокам структурированных данных, для фильтрации, преобразования, агрегирования (например, вычисления статистики) или вызова других программ. Таким образом, он имеет свое собственное широкое применение.