so i'm going to start a course on programming in c language and this is the first video so i'm going to discuss some basic things in this video like what is need of programming why do you write programs what is need of writing these programs what is need of programming languages and then we will come to c language right so now let us discuss what is need of programming why do you write programs see computer is what it's you can say machine or you can say general purpose machine the use of computer is what which can be which can perform any task any computational task not any task any computational task it can perform right but how do you communicate with computer like suppose if you want to add two numbers then it's not like that you will say hey computer i want to add two numbers four and five so tell me what is the addition of four and five no computer will not understand your language so now what you will do we will write some instructions you can say sequence of instructions and we will give those sequence or set of instructions to computer and then according to that computer will perform your task right so those set of instruction or what program sequence of instructions are what programs right that is why if you want that your computer will perform some task for you you have to write programs right that is why we need to write programs fine but now see the language of computer is what binary language i hope everybody knows 0 and 1 computer can understand only 0 and 1 binary so if you write like if you write instructions in english language in the language or in any language computer will not understand then what we will do that also will discuss how that language how that program will be converted into zero and when and then computer will perform your task fine so basically you can say what computer run by programs computer is nothing without programs it cannot do anything without programs when you purchase a new laptop or computer that has already you know many programs are already there in uh that program so you can sorry in your computer like some system programs application programs or you must have heard about system software's application software software is what definitely it is a set of programs right so system programs means what they are going to manage that system resources they are going to manage the hardware and application programs or application softwares are what they are basically used to perform your task your favorite task like um web browser is application software and text editor in which you you can edit you can write text you can edit text ms office that is also a application software right but suppose if you want computer to perform your task any specific task according to that you have to write your own program and you have to submit that program you have to give that program to computer and then computer will understand your program or you can say those sequence of instructions and according to that will give you some output right so now how do you write programs like it's not like in simple english language you will write programs and submit to computer no it is not going to understand so for that thing we need programming languages right see when we communicate with each other like if i want to communicate with you then the languages may be english hindi right so and for communication what first of all you need to understand the the alphabets first we we uh study what abcd and then words then we frame sentences by using grammars and all right and then we communicate then we frame sentences and then we communicate with each other same thing in language also you need to learn something before before writing the programs like the characters character set of that language keywords and some syntaxes and some rules right and then we can write programs and then we can interact with computers right but the point here is what computer can understand only 0 and 1 and you are writing programs in what if suppose c language we take example of c language then definitely we are not going to write like 0 1 0 0 1 suppose i write this one this is a bunch of 0's and 1 but we are not able to understand what is meaning of this thing right but maybe computer can understand obviously commuter will understand because it is language of computer right so we write what hash include studio dot touch hash include corneo dot then word main then integer a b a b then printf scanf and everything so that program first of all have to be converted into this language machine language zero and one form and then computer will execute your program or more specifically i would say cpu because it is what processor central processing unit this is processor this is you can say heart of computer the calculation the computation the task which you are going you need to perform on computer that is going to be performed by cpu more specifically if i will say then cpu will give you output right so if you write program in this format this is what machine level language i hope you have heard about machine level languages assembly level languages then high level languages or low level languages middle level languages right but we will uh generally prefer to call high level languages right high level languages means the c c plus plus java these are understandable by human because if we write this if we see at this code then we are not going we will not understand what is this so this is machine level language right but before invention of these high level languages they used to write programs in this format see you can imagine how tough it was at that time to write program in this language machine language because see and this is what this is according to you know those uh cpu architecture some set of specifications are there which some architecture is there which cpu follows uh i think you will you or maybe you have studied the subject co a computer organization and architecture in that you must have studied those architectures right so according to those specification those arc architecture of the cpu this code will differ it means it is machine dependent in one computer the same program like addition of two numbers let us suppose uh in at one cpu right suppose according to the cpu architecture of the specifications the instruction can be given in 20 bits like 20 bits right and first 4 bit are for operator i hope everybody know like i suppose i am writing 1 plus 2 1 and 2 these are operands and plus is operator here we write as op code suppose these first 4 bits are for this class to indicate this plus and suppose here plus i'll write like 0 0 1 0 0 0 1 0 so computer will understand that this is for plus that he has to perform plus operation right and then next 8 bits are for 1 this operand and next eight bit are for second operand we will write these two operands into binary form right like zero zero zero seven zeros and one and two how you will write this is two in binary form so that we will write here and when we submit this instruction then the cpu will perform addition on one on one and two and it will give you the result right and suppose the according to the specification of cpu to second processor may be there plus is 0 0 0 1 right or maybe the length of the instruction is something else not 20 bits so it's not easy to write programs in machine language because it is dependent on that machine to machine so it is not the programs are not portable in one machine if you are writing program for edition then again you have to write rewrite that program for second machine it's not like that the same program will run on second machine that is very difficult then assembly level languages come these levels will discuss in a separate video with more details and after that high level languages come to overcome these limitations to add portability concept so that one program on one machine we write and that program can easily be ported to second machine means we can we can run that program same program on second machine also without any modification or maybe you can say with few modifications right so now let us discuss what is c language see it was developed by dennis ritchie in 1972 where bell laboratories the headquarter of these bell labs are where in new jersey u.s right and it is before c the language was developed b language so you can say c is what successor of b language it was developed by uh ken thompson right why c language was developed at that time basically the main purpose was to uh you know uh write operating system that is unix operating system that was already written in b language but there was some limitations so to overcome those limitations because c was more powerful than b language right so they used to write the kernel of unix operating system they used this language c language so c is basically you can say it's a system programming languages language many softwares have been written in c language oracle android the core libraries of android was written in c language major part of web browser is written in c language device drivers written in c language and unix operating system so c is you can say the most popular programming language and during 1980s c was the most widely used programming language and in 1989 it was standardized by ansi that is why uh after that it is called a nsic and see how the computer is going to understand what whatever we will write in c language because here it is not machine level language here we are not going to write the bunch of zeros and ones right so first of all the program that you will write in c language that is to be converted into that object uh file or object code or you can say that machine code zeros and ones and who is going to convert it compiler that is why it is known as compiled language right and the program is ah written like the name of the program is abc suppose and the extension of c program is dot c right so uh the compiler is going to convert it into that obj file object code machine level code and then the cpu will run this program the whole process we are going to discuss in a separate video like the basic the execution how the program is going to be executed when it is going to be converted in object file by whom and what is the role of that linker and loader and executable file when executable file will be formed and then how you will get the output that also will discuss in a separate video the complete process one more ah thing is interpreter and the main task of interpreter is also to convert this program high level program into object code but the difference will see in a separate video so now that's it for this video now i'm going to see in the next video till then bye take