Transcript for:
Understanding Programming Language Types

Hello, in this video we are going to explain to you what are the different types of programming languages. A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine. It could be a rocket, computer or even a smart TV. A A program is nothing but a list of instructions written in a programming language that is used to control the behavior of a machine. There are many different programming languages and as per latest data, Java is one of the most popular language that is being used for coding. There are different types of languages. The programming languages are divided into two types, low level and high level. Low level is a language which machine understands and is of two types, assembly and machine language. High level languages are more user friendly and closer to human language. They are of two types, procedural and object oriented. Let's learn more about each of them. Machine language is the language which can directly run on CPU. They are numeric. that means in series of bits which are zeros and ones representing instructions that a computer can understand. This makes it tedious and error prone to write machine code manually. They are not portable means a machine language is specific to a particular type of machine only. Ultimately, all languages need to be translated to machine language. On top of it, we have assembly language. Assembly language helped eliminate much of the error prone and time consuming machine language programming. It replaces remembering 1 and 0s with instructions which are mnemonic codes for corresponding machine language. Example, it has commands like move, jump, cmp, add, etc. Each assembly language is specific to particular computer architecture and sometimes to an operating system. Examples include MIPS, NASN, x86, etc. Now let's take a look at high-level languages which are portable and statements are in English-like language making it convenient to use. These include C-sharp, Java, Python, etc. The amount of abstraction provided defines how high level a programming language is. The high level languages are also of two types procedural language and object oriented language. In procedural language, the program is written in terms of sequence of steps to solve the problem. For example, steps given in a recipe or sequence of steps you follow when you wake up. In object oriented languages, Program is written as interaction of functions between participating objects. For example, in the steps for morning schedule, you have three objects, eye, fridge and microwave. Each of them maintain their own internal data and expose some functions which others can use. These functions are performed by each of them to perform the sequence of steps. Procedural languages follow a top-down approach with more focus on functions. Object-oriented languages follow a bottom-up approach where there is more focus on data. The disadvantage of procedural language is that data is not secure. Code is interdependent which makes reuse difficult. Object-oriented languages model real world so is easier to relate to. It helps in wrapping data and functions in a class which helps build secure programs. Code is modular and can be extended for reuse. A code in high-level language needs a compiler or interpreter to convert their code into machine language. Let's understand the difference between the two. The compiler translates the high-level instructions into a machine language and generates an executable file like.exe. Interpreter translates the high level instruction and executes each and every line individually. In our next video, we will learn more about object oriented concepts in Java.