1. What are the types of Programming Languages?

2. What are the basic concepts of object-oriented programming. Discuss each?
3. What is the difference between object-based programming languages and object-oriented programming languages?

1. Types of Programming Languages: There are many types of programming languages, including procedural languages, object-oriented languages, functional languages, scripting languages, markup languages, and logic languages.

2. Basic Concepts of Object-Oriented Programming:
a. Abstraction: Abstraction is the process of hiding the implementation details from the user. It simplifies the program by hiding the complexities of the code.
b. Encapsulation: Encapsulation is the process of combining data and functions into a single unit called an object. It helps to keep the data safe from outside interference and misuse.
c. Inheritance: Inheritance is the process of creating a new class from an existing class. It helps to reuse the code and to add new features to the existing class.
d. Polymorphism: Polymorphism is the process of using the same interface for different underlying forms. It helps to reduce the complexity of the program and to make the code more flexible.

3. Difference between Object-Based Programming Languages and Object-Oriented Programming Languages: Object-based programming languages are languages that use objects, but do not support inheritance. Object-oriented programming languages are languages that use objects and support inheritance. Object-oriented programming languages also support abstraction, encapsulation, and polymorphism.