State the different programming languages and explain any one or them.
What is programming languages ? Describe the generation of computer languages.
Programming Language :
A language is a medium through which we communicate with each other. With the help of natural language like Hindi, English, Marathi we can speak with each other and we are able to communicate our ideas, feelings and facts with other persons. Computer languages are also developed with the same purpose, to communicate with the Computer.
Each language has its own grammar. Computer language also has its own grammar, which is called as “Syntax”. In case of natural languages the grammar is not strictly followed but in case of computer languages the syntax must be strictly followed, otherwise you get a syntax error and that instruction does not get executed. Also the syntax of computer language is very rigid and the vocabulary of computer language, which is called as “Semantics” (or Reserve Words), is very limited. Also we are able to communicate only facts with the computer. Since it is a machine, there is no scope of communicating our feelings or ideas with the computer.
Since computer is a machine it does not do anything on it’s own. It has to be told what to do and in what sequence, with proper syntax. This is done by using any one of the available computer language.
There are types of Computer languages:
- Machine language (1st Generation)
- Assembly language (2nd Generation)
- High level language (3rd Generation)
- Object Oriented Programming languages (4th Generation)
- 5th Generation Language
- Machine language:
The most basic form of programming is the Machine language. In the first generation of computer the operating system and High Level Languages (HLL) were not developed, so the machine language was the only available language in the first generation of computer.
- Machine language is also called as Low Level Language (LLL), because it is machine dependant. The program developed for one computer cannot be executed on another computer.
- It is difficult and time consuming to develop a program in machine language.
- A programmer has to be a technical expert, normally an electronic engineer who knows each and every detail of the internal structure of the computer.
- Computer understands only machine language. So, the Computer directly executes the machine language program, it does not require translation. So, the program execution is fast.
- Operating System and other system programs can be written in machine language.
2) Assembly Language:
The first step in the development of the programming languages was the Assembly language. It is also called as Symbolic Language. It was used in the second generation of computer.
In Assembly language the Op. Code (Operation Code) was replaced by mnemonics and operand address was replaced by symbolic address.
Assembly language is intermediate between machine language and high level language. It is easy to understand and develop programs in assembly language than in machine language, but it is still difficult and time consuming to write an assembly language program than a High Level Language program.
Assembly language program is also machine dependent, program developed on one computer cannot be used on another computer, so it is called as low level language.
Computer cannot execute a program written in assembly language because computer understands only machine language. So, it should be translated in machine language, this translation is done by the Assembler.
Assembler is system software. It is a translator program, which translates Assembly language program into machine language. It translates one Assembly language instruction into one machine language instruction. After translation the program is ready for execution.
The Assemblers Performs following operations
- It translates mnemonic (symbols) into actual Op. Code.
- It translates symbolic address into actual operand address.
- It checks the syntax of each instruction and if any error is found, it displays an error massage. You should correct the error and then re-run the program.
- After the Assembly process is completed, it generates an object program on the secondary storage. Once the object program is ready you can execute it any no. of times.
- If required, it can produce printed list of the source program.
3) HIGH LEVEL LANGUAGE: (Procedure Oriented Programming Language)
High level language is very much English like language. Hence it is easy to understand by the human operator. But computer cannot understand the program written in HLL, it needs translation. A translator program converts high level language program into machine language. Compiler and Interpreter are two translator programs, which translates HLL program into machine language.
HLL program are machine independent, i.e. program developed on one computer can be used on another computer by making some minor changes. The programmer need not have to know the internal structure of the computer, so even a non-technical person can develop a computer program in HLL.
HLL program are easy to develop and easy to maintain. They provide better documentation. It requires less time to develop a high level language program. So, maximum software are developed in HLL.
Various HLL available are FORTRAN, COBOL, PASCAL, BASIC, ALGOL, PL/1, LIPS, JAVA, HTML etc.
4) Object Oriented Programming Language (OOPL)
Fourth generation languages are also known as very high level languages. They are non-procedural languages, so named because they allow programmers and users to specify what the computer is supposed to do without having to specify how the computer is supposed to do it. Consequently, fourth generation languages need approximately one tenth the number of statements that a high level languages needs to achieve the same results. Because they are so much easier to use than third generation languages, fourth generation languages allow users, or non-computer professionals, to develop software.
Objectives of fourth generation languages
- Increasing the speed of developing programs.
- Minimizing user effort to obtain information from computer.
- Decreasing the skill level required of users so that they can concentrate on the application rather than the intricacies of coding, and thus solve their own problems without the aid of a professional programmer.
- Minimizing maintenance by reducing errors and making programs that are easy to change.
Depending on the language, the sophistication of fourth generation languages varies widely. These languages are usually used in conjunction with a database and its data dictionary.
Five basic types of language tools fall into the fourth generation language category.
- Query languages
- Report generators.
- Applications generators.
- Decision support systems and financial planning languages.
- Some microcomputer application software.
Query languages allow the user to ask questions about, or retrieve information from database files by forming requests in normal human language statements (such as English). The difference between the definitions for query language and for database management systems software is so slight that most people consider the definitions to be the same. Query languages do have a specific grammar vocabulary, and syntax that must be mastered, but this is usually a simple task for both users and programmers.
Report generators are similar to query languages in that they allow users to ask questions from a database and retrieve information from it for a report (the output); however, in case of a report generator, the user is unable to alter the contents of the database file. And with a report generator, the user has much greater control over what the output will look like. The user of a report generator can specify that the software automatically determine how the output should look or can create his or her own customized output reports using special report generator command instructions.
Application generators allow the user to reduce the time it takes to design an entire software application that accepts input, ensures data has been input accurately, performs complex calculations and processing logic, and outputs information in the form of reports. The user must key into computer-useable form the specification for what the program is supposed to do. The resulting file is input to the applications generator, which determine how to perform the tasks and which then produces the necessary instructions for the software program.
Decision support systems and financial planning languages combine special interactive computer programs and some special hardware to allow high level managers to bring data and information together from different sources and manipulate it in new ways.
Some microcomputer applications software can also be used to create specialized applications – in other words, to create new software. Microcomputer software packages that fall into this category include many spreadsheet programs (such as Lotus 1-2-3), database managers (Such as dBase IV), and integrated packages (such as Symphony).
5th Generation of programming languages. (5G)
A fifth-generation programming language (abbreviated as 5GL) is a programming language based on solving using constraints given to the program, rather than using an algorithm written by a programmer.
Most constraint-based and logic programming languages and some other declarative languages are fifth-generation languages.
Fifth-generation languages are used mainly in artificial intelligence research. Prolog, OPS5 and Mercury are examples of fifth-generation languages.
Natural Languages represent the next step in the development of programming languages, i-e fifth generation languages. The text of a natural language statement very closely resembles human speech. In fact, one could word a statement in several ways perhaps even misspelling some words or changing the order of the words and get the same result. These languages are also designed to make the computer “smarter”. Natural languages already available for microcomputers include Clout, Q&A, and Savvy Retriever (for use with databases) and HAL (Human Access Language).
The use of natural language touches on expert systems, computerized collection of the knowledge of many human experts in a given field, and artificial intelligence, independently smart computer systems.