There are four main categories of programming language paradigms. (When we say paradigms, it's simply a means for classifying reprogramming languages based on their separate features). These main paradigms are imperative, functional, object-oriented, and lastly, logical. A programming language can actually be classified by multiple paradigms, as there are more than just four. To understand these programming language paradigms further, let's define what they're for: •Imperative: This is "how a programmer can instruct the device to change its current state". Another way to put it, when you decide to use imperative programming, you're basically deciding on commands you would like for the computer to act upon. This is essentially the "how" in which a device performs a function. •Functional: This is a programming paradigm where programs can be created by applying what is known as "composing functions". Think of a tree with all of its branches. These branches are different expressions that return a certain value rather than a state of the program. This can be called, a declarative programming paradigm. Declarative programming is used to minimize error and side-effects -- mainly by declaring what the program must do. The value represents the structure, (like the tree for instance -- whatever that represents for you), to be manipulated by a program. •Object-Oriented: This is the programming paradigm that lies on the foundation of using objects. The objects contain data, which is characterized as numerical in most cases representing information. The information answers the question of, "what an entity actually is". This is declared upon by the characteristics of said object. Now the data takes the form of fields. The fields are the makeup of records, which contain several parts of information, or data if you will. Now in the world of computer programming, fields may also be called data members, or member variables. This contains data that is held within a class or an object. To come full circle, an object is something that can be identified as a variable, structure of data, or method. In the case of object-oriented programming, this is the very instance of a class, where a class is a pre-composed template of programming code used to create an object. In short: A class is the makeup of an object's code to perform a specific function. The object is represented by this data. And the data explains what the object is. The data is organized into fields, which are the makeup of records of data. •Logical: This is based on what's called, "formal logic". Formal logic explains logic through mathematics. The logic is comprised of sentences that explain to you different facts and statements of the problem area. The rules written in this language are called "clauses".