Programming Model: Definition and Types

A paradigm is a school of thought or a paradigm that has distinctive features, frameworks, patterns, and methods that help us solve a particular problem. Models are used in all fields such as psychology, sociology, etymology, computer science, etc.

In the field of computer science, new programming languages ​​emerge from existing languages ​​and add, remove, and combine features in new ways. These languages ​​may follow a particular paradigm or they may be a combination of several paradigms.

The programming paradigm is a concept espoused by the programming language methodology. Models are important because they define programming languages ​​and how they work.

Read also: What is a programming language: definition, types and examples

Understanding the programming paradigm

A programming paradigm is a technique, technique, or method for writing a program. We can also say that programming paradigms are different approaches to solving a problem. And it is possible to solve the same problem using different models, just as there are several ways to get from one village to another. However, certain types of problems naturally fit into certain models.

Read also: What is the difference between coding and programming?

Why should you study programming paradigms?

As we know programming paradigms are different styles of writing a program, so knowing these methods and techniques will help us choose the right paradigm based on the problem.

Each programmer should know a different paradigm, because learning a language is like learning the grammar or syntax of a particular language, but learning a paradigm, on the other hand, is like learning the principles on which that language is built.. For example, when we study complex sorting, we are no longer taught just one sorting technique. Instead, we study the divide and conquer model and the places where we can use this model.

Types of programming models

Let’s take a closer look at 4 different types of programming paradigms – Procedural, object-oriented, functional and logical. This article will give you a better understanding of the different programming paradigms.

1. Procedural programming

Procedural programming can also be referred to as compulsive programming. It is a programming paradigm based on the concept of procedure calls, where statements are organized into procedures (also known as subroutines or functions). They are lists of instructions to tell the computer what to do step by step, Procedural programming languages ​​are known as top-down languages. Most early programming languages ​​were all procedural.

Procedural programming features

  • Procedural programming is very good for general purpose programming
  • Code simplicity combined with easy implementation for compilers and interpreters
  • A variety of books and online course materials on tested algorithms are available, making them easy to learn.
  • Portable source code
  • The code can be reused in different parts of the program, without having to copy it
  • The flow of the program can be easily traced as it has a top-down approach.

2. Logical programming

Logical programming is a model of computer programming based on mathematical logic in which program statements express facts and rules about problems in the system. Grammar is written as logical sentences with head and body. It also takes an advertising rather than a prescriptive approach. However, what does that mean?

To understand how a problem can be solved in logical programming, you need to know the basic building blocks of facts and rules.

  • Reality Key phrase about the problem area (eg “Bill Gates is a man”)
  • Base are inferences about facts in the field (for example, “everyone is human.”)
  • A question is a question about the field (eg “Are humans human?”)

Boolean programming features

  • Logical programming can be used to express knowledge in an execution-independent manner, making programs more flexible, compact, and understandable.
  • This allows for the separation of knowledge from use, i.e. the machine architecture can be changed without changing the underlying program or code.
  • It can be modified and expanded in a natural way to support specialized forms of knowledge, such as meta-levels of higher knowledge.
  • It can be used in non-computing disciplines that rely on finer thinking and expression patterns.

3. Functional programming

Functional programming is a programming paradigm in which you have a method for building the structure and elements of a computer program. Here you treat computations as an evaluation of mathematical functions and avoid state changes and mutable data.

Functional programming consists only of Pure functions. So, what do you guys understand by Pure Jobs?

Pure functions are those that take a list of arguments as input and whose output is the return value. Now you may feel that all functions are pure because any function takes a value and returns a value.

For example, if a function depends on global variables or data of class members, it is not pure. And in such a case, the return value of this function is not completely dependent on the list of arguments that are accepted as input and can also have side effects.

So, what do you understand by the term side effects? Side effects are changes to the application state that can be observed outside of the function being called in addition to the value returned. For example: modifying external variables or object properties such as global variables or variables in the original function scope string.

Functional programming features

  • pure jobs – As seen above, if the input is an array, the output will be a new array and the input array will not be changed. So in the case of pure functions, the return only depends on the input.
  • recursion A recursive function is a function that calls itself during its execution. This allows the function to iterate over a number of times, the result of which will be output at the end of each iteration.
  • reference transparency An expression is said to be reference transparent if it can be replaced with an appropriate value without changing the behavior of the program. As a result, evaluating a referentially transparent function returns the same value for the constant arguments. In functional programming, only reference transparent functions are considered. They are much easier to read and understand.
  • Its function is first class and can be of higher order A programming language is said to have first-class functions when functions in that language are treated like any other variable. For example, in such a language, a function can be passed as an argument to another function, can be returned by another function, and can be assigned as a value to a variable. Higher order functions are functions that take at least one function class as a parameter.
  • Variables cannot be changed In functional programming, you cannot change a variable after it has been initialized. You can create new variables and this helps maintain state throughout the program’s running time.

4. Object-Oriented Programming (OOP)

In this framework, all real-world entities are represented by Class. Goal It is an instance of a class so that each object is encapsulated condition And the behavior. condition Refers to fields and attributes of objects and behavior is what you guys do with the state of the object which are methods. Objects interact with each other by passing messages.

Object-Oriented Programming Features

  • Encapsulation This is a key feature of object-oriented programming. Here it hides unnecessary details in the class and provides a simple and clear interface to work with. Explains the idea of ​​integrating data and the methods that operate on that data into a single unit. This concept is also often used to hide the internal representation or the state of an object from the outside
  • legacy Inheritance is one of the basic concepts of object-oriented programming languages. This is a mechanism where you can get classes from other classes for a class hierarchy that shares a set of attributes and methods. Describes how class hierarchies improve code readability and support function reuse.
  • data abstraction Data abstraction is the reduction of a given set of data to a simplified comprehensive representation. Data abstraction is usually the first step in database design.
  • polymorphism Polymorphism is a concept of object-oriented programming that refers to the ability of a variable, function, or object to take different forms.

Programming languages ​​that have implemented the Object-Oriented model are: Ruby, Java, C++, Python, PHP, and Simula (the first OOP language)

conclusion

This is the interpretation of the programming paradigm. The programming paradigm reduces the complexity of the program. Every programmer should take a typical approach when executing their code. Each has its advantages and disadvantages.


Lots of articles Programming paradigm: definition and types. Look forward to other interesting articles and don’t forget to share this article with your friends. Thank you…

Leave a Comment

/* */