We have seen that in order to be a good programmer, we have to mainly concentrate on the problem rather than he concerned with the details of the internal structure of the computer. In order to facilitate the programs to use computers without the need to know in detail the internal structure of the computer high-level languages were developed.
High-level languages instead of being machine based are oriented more towards the problem to be solved. These languages enable the programmer to write instructions using English words and familiar mathematical symbols. So it becomes easier for him to concentrate on the logic of his problem rather than getting involved in programming details.
High-level languages are basically symbolic languages that use English words and mathematical symbols rather than mnemonic codes. In other words a high-level language is nothing but macro instructions.
In assembly language translating work is done be assembly while in high-level language it is done by compiler.
Thus compiler is a translating program that translates the instructions of a high-level language into machine language high-level language is known as problem oriented languages because the macro instruction are especially picked to be useful for solving particular types of problems. A problem-oriented language is designed in such a way that its instructions way be written more like the language of the problem.
Advantages:
(1) Machine independent:
High-level languages are machine independents. It is very advantageous as a program written in a high-level language can be run on many different types of computers with very little or practically no effort.
(2) Easy to learn:
These languages are very similar to the languages normally used by us in our day-to-day life. A program in this language has no worry about how to store his number in the computer where to store them etc i.e. he need not know machine instructions.
(3) Fewer errors:
In case of high-level language, since the small steps carried out by the computer, he is much les likely to do error. The computer takes care of the little details and will not intro of any error of its own unless something breaks down. Compilers are designed for pointing errors.
(4) Lower program preparation cost:
Writing programs in high-level languages requires less time and effort, which ultimately leads to lower program preparation cost.
(5) Easier to maintain:
Programs written in high-level are easier to maintain. This is mainly because they are easier to understand and hence it is easier to locate, correct and modify instructions as and when desired. Removal and addition of certain instruction from a program is also possible without any complication. Thus, major changes can be incorporated with very little effort.
Disadvantages:
(1) Lower effiency:
It has lower efficiency because the programs written in high-level language take more time to run and require more main storage.
(2) Lack of hexibility:
Because the automatic features of high-level language always occur and are not under the control of the programmer. They are less flexible than assembly/ machine language. This lack of flexibility means that some tasks cannot be done in a high-level language or can be done only with great difficulty.