PROGRAMMING LANGUAGES – Principles of Programming Languages
Introduction
A language is medium of communication which is used for understanding each other’s ideas and is even used to convey the tasks to be done etc. l.C., in absence of a language one cannot really survive, as we need to do various activities, for which we need to communicate with people.
Communicating medium, Snout be such that one has to understand, what we are expressing and vice versa, i.e.,
the medium of communication should be common between two individuals.
When we talk about the programming languages of computers, we can really understand that they are quite similar to our natural languages,
we need the languages for giving instructions to the computer so that it can do the required processing requested.
Thus one can understand that computer programming languages are used for giving instructions that are to be followed by the computer to perform the requested tasks.
There are many programming languages that are used by computer professionals for writing programs, each language is distinct in itself and has the features which make them popular and useful to program any given task.
Any programming language consists of various symbols, characters, usage rules, which can be used by the programmers to communicate with the computer.
There are at least a few hundreds of programming languages, which have evolved since the inception of the computer.
Some programming languages are application-specific (special purpose) whereas the other programming languages are general-purpose languages.
Every programming language should have instruction sets that allow users to perform various tasks and these features only make the difference between two or more programming languages.
The flexibility and the features of any programming language
makes it different from other programming languages.
Classification of Programming Languages
Programming languages are classified on the basis of their features, their functions, and their capabilities.
The scope of language also can be taken as the basis of classification.
The classification of programming languages can be as follows :
1. Machine Languages
2. Assembly Languages and
1. Machine Languages
These languages are machine-dependent languages and the programs written in these languages are non-portable.
These are the languages which are understood by the machine directly as it consists of a series of binary digits (Os & 1s).
As these languages are understood by the machine, the processing is faster.
Instructions are written in any machine language, essentially have two parts, the first part being the basic command, instruction, or operation,
which tells the computer that what has to be done, each computer has operation code for every function it can perform.
The second part of the instruction is the operand, which tells the computer about where it can find the data required by the instruction, where the output has to be stored as well about any other instructions that have to be manipulated by it.
The operands that can be used in any instruction varies from computer to computer.
In a single-operand machine, the binary equivalent of “ADD 1123″ could be interpreted as that the value in a storage location or address 1123 is to be added to a value that is stored in the arithmetic logic unit of the CPU.
In a two-operand machine, the binary equivalent of “ADD 1123 2679″ could be interpreted as the value in address 2679 be added to the value in address 1123.
As all the instructions are to be given in binary digits only, it becomes very cult for the programmer to write programs as well it is a very time-consuming process.
Apart from these difficulties, another problem is that the programmer has to remember the codes representing the machine’s instruction set, and the programmer has to keep track of the storage locations of the data as well as the instruction.
These complexities in the writing of programs took months to develop the initial code, which is usually error-prone. Detection of errors and rectification is a very difficult task and is as tedious as writing the program itself.
In case the program has to be updated at a later stage, then it is very difficult.
With the above reasons, these languages could not really become that popular in spite of being faster to execute.
2. Assembly Languages
With the problems faced by the programmers using machine languages, to ease the complexity, assembly languages came into existence. These languages. which were developed in the early 1950s, used mnemonic operation codes, which represent the binary operation codes.
For addresses, symbolic representation was used.
The first step in the program preparing process involved in replacing the numeric binary machine language operation codes with the mnemonic names.
This makes mnemonic codes for every computer, which may vary slightly from computer to computer.
Machine code is still used by the computer for processing data therefore, we need to have special software, which translates, the programs written in assembly language into machine language equivalent.
Assembler
An assembler is special software, which helps the programmers to do programs in assembly language rather than machine language which is understood by the computer.
It converts the program in assembly language (input) into equivalent machine language (output).
Thus assembler removes the need to write programs in machine language.
Even the addressing part of the instruction is represented by symbolic addressing by giving a name to the address, thus the programmer’s job becomes simpler.
The program written in assembly language is called the “Source Program”, which has to be converted into machine language using Assembler Program and the Resultant machine code as “Object Program”.
It is quite easier for the programmer to write programs in assembly language rather than writing programs in machine-language code.
Assembly languages have many advantages over machine languages, as they save time and reduce complexity.
The number of errors committed also is reduced identification and removal becomes quite easy, when the program is written in assembly languages.
When it comes to updating these programs, it is an easy and less time-consuming process.
The major limitation of the assembly languages is that they are machine specific, i.e., they are not portable from one processor type to others. The machine level and assembly languages are usually known as low-level languages.
3. High-Level Languages
When assemblers were in the early stages, they produced only one machine instruction for each source program. For speeding upcoding, later assemblers were developed, so that they could produce a variable amount of machine language instructions for each source code, i.e.
one macro instruction might produce several lines of machine language code, i.e.
if one instruction is given, the background instructions should be automatically provided from already translated programs, which will ensure that the programmers need not write instructions for every operation.
The development of macroinstruction and mnemonic techniques led to the development of high-level languages,
which are oriented towards certain specific processing problems,
which are application-specific like mathematics problems,
file processing, scientific applications, etc)
The advantage of high-level language programs is that they can be portable from computer to computer, with slight variations.
The errors are reduced, the identification and correcting errors became a still simpler task. The time consumed to write the programs is reduced and the programs are quite easy to maintain.
These languages led to very easy and structured programming, which is bound to save time and the programmer’s troubles are reduced to the lowest level
As already learned, the computer cannot understand any other language, other than machine language, therefore the computer is unable to understand the instructions given in High-Level Languages.
We need to convert these high-level language problems into machine language, which has to be taken care of by the software.
Interpreter
The interpreter is a special program/software which is used for translating a high-level language program into machine language.
The interpreter takes the high-level language program code as input line by line and converts it into machine level language, line by line, without producing object code for future use.
If the program needs to be re-run, then again it has to be interpreted and translated into the machine language.
This is an advantage when the program is modified, but this way of interpreting line by line is a bit slow.
To overcome this problem of interpreting the program every time when executing, another software program is thought of.
Compiler
It is that program, which converts the program in High-Level Language into machine language, and the object program is stored, which can be executed, any time.
These compiler programs are efficient than the interpreter programs, as they take the whole source code and convert it into reusable object code.
Compilers are capable to generate many lines of code, for every line of source code.
Thus compilers help the programmer by removing the task of recompiling the program every time it is being executed.
Now, almost every high-level language comes with its own compilers, which makes them very efficient. As compilers, convert total source code into object code, it is very fast to execute the program.
The limitation of the use of compiler being, that whenever the source program is modified,
it has to be again recompiled to include the changes into the object code.
As these high-level languages provide the flexibility to write programs, they are becoming very popular day by day.
Some of the popular high-level languages are Basic, Fortran, COBOL, ‘C’ (deemed as middle level as it has features of both low level and high-level languages), etc.
Loader
The loader is that program that loads an object program into the primary memory of the computer and makes it ready for execution.
The loader usually loads the programs, relocates, and links the object programs, thereby making an object program executable.
Linker
a linker is a software, which does the important function of linking the object program to various modules so that a single machine level program can be generated.
This program plays an important role as it links various library functions used, various resources, etc., and helps the program to execute efficiently and effectively.
Evolution of Programming Languages
The art and languages of programming, passed through various stages of evolution so that every stage involved in adding new features, more sophistication, etc.
At every stage, the concept and approach to the programming constructs and style became more and more sophisticated.
The current high-level languages evolved through the generations from machine-oriented languages to the current structured, modularization languages.
Let us have a brief look at the generations of programming languages so that we can understand the evolution very effectively.
First Generation Languages
The first generation of languages started, with the evolution of stored-program computers, which used per-written programs for doing tasks. This was in the late 1940s.
The programs were written in machine language (binary digits), which were very difficult to code.
Later in the 1950s the assembly languages took birth and the assemblers were available, which converted the assembly language into the machine level code.
This development of assembly language and assemblers paved the way for the development of high-level language, which was between 1954 to 1957.
These high-level languages were problem-specific and their scope was limited. For example,
the high-level language FORTRAN-I (Formula translation), was specifically designed for formula translations and was used only for scientific purposes.
This language was oriented towards solving numerical problems.
The high-level languages of this generation had simple commands and statements and introduced the control structures.
These languages are the basis for current day sophisticated high-level languages.
Second Generation Languages
These languages were developed between the late 1950s and early 1960s These languages introduced many new concepts into the way and style of programming.
ALGOL 60, COBOL, LISP, FORTRAN-II, etc., are the popular languages of this generation that have introduced sophisticated programming constructs. both conditional and iterative constructs.
The concept of data types developed. the structured programming concept developed, which laid a strong foundation for current languages.
Third Generation Languages
the late 1960s and early 1970s witnessed the evolution of third-generation languages. SIMULA 67, ALGOL-68, BASIC, SNOBOL 4, C, PL/1, etc., were some of the popular languages of this generation.
The languages of this generation introduced the concept of record structure and classes.
The programming became a simpler and easier task, with more and more features for better and efficient programming like the concept of arrays, pointers, storage classes, exception handling, etc.
Languages of this generation brought in the features, which made languages more and more powerful, easier, and capable to handle any type of problems, which paved the way for General Purpose Languages.
Fourth Generation Languages
The world of computers witnessed fourth-generation languages in the late 1970s. Most of these languages had their base in third-generation languages.
Many software development tools were introduced in the 1970s which enhanced the productivity of fourth-generation languages.
These languages interact with Database Management Systems (DBMS) tools for storing, manipulating, and retrieving data. Most of these languages supported modular multi programming.
Most high-level languages can be taken as procedural languages, as the rammer has to give the necessary steps for achieving the result desired.
For v given output one has to specify steps in sequential order, following certain procedures.
Whereas most of the fourth generation languages are non-procedural languages,
where one has to just specify what should be the output, without describing the steps involved for arriving at the desired output, which is taken care of by these languages.
Most of the statements in fourth-generation languages are simple, very easy, and self-explanatory, which made them popular widely used languages.
These languages usually have features, which distinguish them from others, in terms of working, efficiency, and the environment.
Programming Concepts
Before looking into features of some of the popular languages we need to know the basic fundamental concepts,
which make the programming easier and a step by step process.
Algorithm
The algorithm is a step by step procedure involved in solving any problem written in any simple and understandable human language (Mostly English) so that before writing a program,
the programmer knows the in-outs of the problem to be solved,
then he can choose any programming language suitable for solving the problem,
which should be a simple and easy solution.
The algorithm is the same, whatever might be the programming language,
as it acts as a basis for the program development.
It is good programming practice to write an algorithm for any problem before actually writing the program.
FLOW Charts
As the algorithm is text-based, a better solution thought to be is a graphic based solution, which using various graphical symbols to illustrate the basic flow of the program. As graphics are easy to understand and convey the meaning to the programmer about the steps involved in program writing. This technique of flow
charting involves the usage of predefined graphical symbols, which convey a special meaning to represent the steps of a program.
Let us look at some of the graphical symbols used in drawing flow charts.
. The above symbols are used depending on the need and are connected using lines with direction specifying the flow of the program.
Examples
1. Write an algorithm and draw a flowchart to accept two numbers and print
the greatest.
Algorithm
1. Accept two numbers, say A, B. 2. Compare A and B. 3. Decide which is the greatest. 4. Print the greatest numbers.
Thus both algorithm and flowcharting can be very useful tools for planning a program, as the programmer knows the flow at the first instance before actually coding the program.
Popular High-Level Languages -Principle of programming lannguages
In this section, let us look into features of some of the popular high-level languages, which dominated the computer industry.
BASIC (Beginner’s All-Purpose Symbolic Instruction Code) :
This is a very popular interactive language that gained wide acceptance because of its ease and features. This language permits direct communication between the user and the computer system, which is done by writing and executing
the program. Any end-user without or with little knowledge of programming ca easily learn and write BASIC programs at his personal computer within a short time One really need not worry about the output formats, as a usable format is automatically provided by the BASIC language. The programs of BASIC language are easy to maintain.
BASIC is a very simple language, which made it a commercial success and it came with first PCs as a programming media.
There are interpreters as well as compilers available for a BASIC language, which convert the program code into machine language These programs in basic language are usually self-explanatory, and can also be documented.
Since, its birth, the BASIC language added features to itself and now it is almost suitable for any general-purpose application development! BASIC language has a well-defined syntax and programs follow a definite structure
FORTRAN (FORMULA TRANSLATOR/TRANSLATION)
This language had its inception in 1954 when the IBM-sponsored committee headed by John Backus began to work on a scientific-mathematics language,
which resulted in the invention of FORTRAN in 1957. The FORTRAN compiler was available for about $2.5 million.
This language evolved through a series of upgradations. This language became widely accepted as a mathematical and scientific language. This wide acceptance started for standardizing the FORTRAN language, which resulted in two standards – the basic and minimal version of FORTRAN and another a full, extended version, which were approved by ANSI (American Nation Standard Institute) in 1966. Thus, FORTRAN has the distinction of being the first standardized language.
FORTRAN program
The FORTRAN program consists of a series of instructions, which included input/output, calculation, logic/comparison, and other instructions. The advantage of using FORTRAN is that it is a compact language, serves the needs of scientists as well as business statisticians. It comes with a huge library of programs which help scientists and engineers by making their tasks easy. FORTRAN supports wide business applications also, provided they don’t require much data manipulation. The programs written in FORTRAN are portable from one computer to others with slight modifications.
The problem with FORTRAN programs is that it is very difficult to trace the logic of the program when compared to other high-level languages. FORTRAN does not support the processing of large business files.
COBOL (Common Business Oriented Language)
COBOL-This language, as the name suggests is designed specifically for business application development. This language supports huge data processing, which is required in business applications, this made the language very popular for business oriented application development. This language was designed by the group designated for language development under the approval of the U.S. Department of Defence. This group met at a conference known as Conference of Data Systems Languages (CODASYL) represented by computer manufacturers, governmental agencies, users, universities, and other organizations.
CODASYL
The Short-Range committee of CODASYL prepared the framework for COBOL language. Later the language specifications were developed and by 1961, the COBOL and its compiler were developed and were available for business data processing, CODASYL had formulated other committees that continue to maintain, revise and extend the initial specifications. the COBOL was standardized after the publication of ANSI COBOL standard in 1968, which was later revised and the version was approved in 1974 and the new standard COBOL-85 was approved in 1985.
COBOL program
COBOL program has a definite structure, where the set of statements, which perform the same operation are grouped under a common paragraph. These related paragraphs can then be grouped into sections, which again are grouped into division. COBOL programs have four divisions in totality to stand up to the hierarchical structure of a COBOL program.
The instructions of the COBOL program have to follow systematic standards that emphasize, that some statements should start from specific columns that have to be strictly followed. The first division of any COBOL program is the IDENTIFICATION DIVISION, which is used for identification of the program and is also used for Documentation purposes, this division is followed by ENVIRONMENT DIVISION, which describes the hardware to be used, if the computer is changed, then this division is altered as per new specifications. DATA DIVISION, the third division of the COBOL program is used for defining all the data items, variables being used in the program, apart from specifying storage locations to be used during the processing, as well as the format of the output is defined here.
PROCEDURE DIVISION
The last division, the PROCEDURE DIVISION, contains the sentences, statements, and other paragraphs, which are to be executed in the program. All the input/output operational calculations, logic/comparison, etc. are specified in this division.
The COBOL is like English, which employes common business terms, which makes it easy to be used, and is machine-independent to a great extent. The libraries and COBOL program generators reduce the work of a programmer by automatically producing the code required for the program to an extent of 80% thus reducing the time required for the execution of programs.
The limitation of COBOL is that the language is vast and it is difficult to learn as well it is not suitable for complex mathematical calculations.
In spite of these limitations, it is one of the popular languages for Business applications.
PL/I (Programming Language/One)
We have already learned that the early languages were application-specific like FORTRAN was used for scientific application development and COBOL was used for business application development. Later, people felt the need for general-purpose language, which resulted in PL/I, which is developed by IBM and the committee of users of IBM system/360 computers. This was in the mid-1960s, which was to solve all types of problems, both business as well as scientific. As PL/I included some of the features of FORTRAN and COBOL, it is a flexible and sophisticated language. The PL/I programs are written as statements, which are combined to form procedures. The program follows a modular structure, which helps a programmer to learn a specific part only if he limits his area of application development.
The compiler for PL/I is built in, which checks for errors in programs. The basic limitation of PL/I is that it is difficult to learn, in totality, then either FORTRAN or COBOL.
RPG (Report Program Generator)
Report Program Generator -This language was developed by IBM, for processing business needs. The basic operations performed by RPG is to design and generate reports, which usually include all business purpose general reports like invoices, cheques, orders, etc. We can use it to update files also. The RPG is very easy to learn and use and it is a limited purpose language. The program logic is fixed and is built into the
language and never varies, which reduces the programmer’s work, as he needs to give just file description with specifications about input, calculations, and output. There are fewer rules and syntaxes to remember. This language is suited well for applications where large files are read, fewer calculations are made and the output reports are created.
The limitation of the language is that it has restricted mathematical capability and so cannot be used for scientific applications and other applications, which require huge mathematical calculations.
Auto Coder
Auto Coder -This language was quite popular as an assembly language for many Pcs: Being an assembly language it is very difficult to learn and program using this language. This language never followed structured programming which made it still difficult to learn. This language slowly faded out giving scope for the languages to replace it.
APL (A Programming Language)
This language is based on the mathematical notation proposed by Kenneth E. Iverson in 1962, which was later used by IBM research Institute. This language supports the time-sharing concept. Popularly known as APL/360, was an experimental effort for the time-sharing system. This language has a good number of operators, which gave the power to it. These operations made easy the working with matrices and arrays. The APL is capable of handling both the text and numbers. The specific uses of the language include editing of text, teaching, and system simulation, as well it can be used for many other purposes.
ALGOL
ALGOL the acronym for ALGOrithmic Language was introduced in 1958 by the international group of mathematicians and was developed by the groups in Europe and the United States. The ALGOL was intended for scientific and mathematical application development. The development of this language was assisted by John Backus, of FORTRAN language. Since, its inception, several version of this language came out, like ALGOL 58, ALGOL 60, ALGOL 68 etc., which really was the basis for the development of many other programming languages. Though FORTRAN is preferred when compared to ALGOL, but still it is popular. ALGOL also follows a block-structured modular programming style quite similar to PL/I.
PASCAL
| PASCAL, which is the offspring of ALGOL is not an acronym but is named in the honor of great French Mathematician, Philosopher, and Inventor Blaise Pascal. This language was developed in the mid-1960s and early 1970s by professor Nicklaus Wirth at Switzerland’s Federal Institute of Technology. This was the major language developed after the concepts of structured programming disseminated.
PASCAL can be used for both scientific as well as business applications. The important feature of this language is that it allows the programmer to structure the data as he wants. This language gained popularity and many schools and colleges began teaching this language to their students.
Ada
Another language of the ALGOL, PASCAL line is Ada, named after the Lord Byron’s daughter, Lady Augusta Ada love lace, who is considered to be the first programmer. She worked with Charles Babbage, the father of computers, on the concepts of “Analytical Engine”, the first computer.
This language is sponsored by the U.S. Department of Defence for the use of military services, people thought it to be inefficient, but it was labeled as a major breakthrough in software technology.
It is a highly structured language and is used for system programming, especially in the areas where the realtime control of asynchronous events is involved.
But Ada has many more uses, it can be termed as a general-purpose language.
Logo
This language was developed by Seymour Papert and his colleagues at Massachusetts Institue of Technology in the late 1960s. This was used for scientific application development in universities, but it has been also popularised as an educational language that can be used by children, by which they can achieve intellectual growth and develop problem-solving skills.
This language has easy-to-learn features, which are graphic oriented. This can be used to teach geometry, fine arts etc., as Logo comes with tools like Logo turtle (a small triangle of light), which can be used for drawing and animations.
Logo runs on a PC and is used to manage data, compose music, manipulate text, etc.
SNOBOL
SNOBOL is an acronym for String Oriented Symbolic Language. This language was designed and developed in the late 1960s by a group led by Griswold. This language was intended for the manipulation of strings and text processing. The data for SNOBOL is represented in text format and basic text processing can be done using SNOBOL. The operation on strings like searching, splitting, combining, matching, etc. can be done easily using SNOBOL.
Prolog
This language was developed by Phillippe Roussel in the early 1970s. Phillippe was the part of the Group for Artificial Intelligence at the University of Marseilles. The Interpreter for this language was developed in 1972. Prolog came with a relatively new style of programming, this was designed principally for Artificial Intelligence (AI) applications. The style of programming involves defining objects and relationships between the classes of objects. This language has a great and strong theoretical foundation. Great attention has been paid to this language due to the role played by it in the fifth generation computer project.
LISP
LISP is the acronym for LIST Processing. This language was designed in the early 1960s by Mc Carthy. This language is widely used by researchers working in the area of artificial intelligence. The applications of this language vary from game playing, theorem proofs, and non-numeric applications involving logic like pattern recognition, etc.
‘C’ Language
‘C’ Language is a general-purpose language, which is very powerful. This language includes the features of low-level languages, as well as the features of the high-level language, therefore it is known as middle-level language. Dennis Ritchie,
the author of the ‘C’, was helped by Ken Thompson, the man behind the UNIX operating system (in 1972). This language is also known as “System Programming Language as it is used for writing operating systems, and other system software. A from being used for system software development is used for Business Application Development, thus it is an all-purpose programming language.
Compilers for ‘C’ Language do come from many organizations, which differ from one another in certain features. “C’language comes with powerful features like modularity, portability, code-reusability, free from language, etc.
C’ language comes with a lot of library functions, which help the programmer by reducing his coding efforts. “C’ supports varied data types, constructs, etc. which makes it much wider usable language,
Applications of Programming Languages
Programming Languages make the task of programmers easy and help them by providing various tools that can be used for application development. Earlier,
the programming languages were application-specific, later these languages were more and more inclined towards general-purpose application development,
where the application may be anything. Let us look at some of the applications of the programming languages.
1. Scientific-Mathematical Applications
These are those applications, which involve the element of science and a huge amount of mathematical calculations. These applications are designed to meet the needs of the people for implementing mathematical, science, and statistical principles into programs for problem-solving. These applications do not involve huge amounts of data and if data is involved, it is quite simple structured. There are as well some scientific applications like data from satellites, Radars etc., where the data is huge, which usually creates problems, therefore data is summarised for making any meaningful conclusions.
These applications are usually complex in nature, for this reason the programmers who develop these applications must be well versed with mathematical principles, algorithms, statistical principles so that the problems can be solved properly by writing a program.
As these applications are centered around mathematical calculations, they require quite a good amount of CPU time, rather than input-output time i.e. they require more computational time rather than input-output time, which makes these applications to be often referred as “compute-bound’ applications.
2. Text Processing Applications
Processing of text has been the greatest need for business applications, where one has to do with all the correspondences, communications, etc. with letters, involving text. These applications involve manipulation of any natural language text as the data. The text has to be formatted, shaped, etc., which is taken care of by modern word processors, which use several text processing algorithms, which perform the tasks and functions done by a typist. Early text processing applications used English as natural language, but now there is a tremendous amount of development where one can do multilingual text processing with languages like Hindi, Telugu, Sanskrit, Japanese, etc. These applications enhance the productivity of any business organization as well as personal productivity is enhanced.
3. Data Processing Applications
Data, is the basis of any business organization’s existence. The data has to be recorded, stored, maintained, summarized, retrieved, etc. to carry on with the day to day business operating smoothing. Such is the importance of data and data processing. With this as a basis, several data processing applications have been developed, which create data, manipulate data, summarize the data, retrieve data, and do any other data processing operations. The data is stored in the form of records and files, which are to be maintained by these applications,
The volume of data involved in huge as every transaction creates data and it is quite important. Therefore these applications should support huge data volumes.
In any data processing applications, the amount of mathematical calculations involved is quite less, when compared to any other operations.
The data processing applications can do batch processing, sequential processing, online processing, offline processing etc., of the data.
Some of the data processing applications are interactive. The security element of data plays a predominant role in any of these applications, where the data has to be free from destruction and unauthorized accessibility.
4. Systems Programming Applications
To interact with hardware, one has to do low-level functions, which are quite difficult for any programmer, for this reason, system software has evolved. which provides an interface for the users to interact with the computer system (hardware).
These programs come under the system programming applications as they are involved in making the system work.
The operating system, compilers. assemblers, interpreters, schedules, input-output routines, etc.
come under this category of applications.
These applications remove the need for understanding and knowing the complexities of the hardware as they provide an interface, which hides the hardware from the programmer.
These programs do the work for the users by acting as a via media for getting things done by the hardware.
Classic system programming applications were developed using assembly languages, but now with the emergence of powerful languages like C, Ada, etc. the use of assembly languages have been replaced.
Thus this area of application enhances the productivity of a programmer and reduces his difficulties and saves time.
5. Artificial Intelligence Applications
These applications are designed specifically for simulating human intelligence, these applications implement the intelligence of the human beings artificially as it cannot happen naturally,
so the term Artificial Intelligence, popularly known as AI is apt.
The applications of this concept are varied and include logical games like chess, draught, bridge etc.,
robotics, and much enthusiastic expert systems that are used for real-time applications,
monitoring of complex instruments, etc.
which all need human intelligence.
Most of the applications use LISP and PROLOG languages which are logic-based.
Apart from the above application categories, there are some applications that do not fall under these categories as they do not exactly fit under these categories,
as they may include the features of other categories therefore they are a mix of other application types.
Highest Smallest Longest in the Worlds
Advantages of High-Level Languages
Easy to Learn
These languages are easy to learn, as they are simple and are modular,
which do not require much expertise to learn.
These languages use commands and statements which are self-explanatory.
Easy to understand
The programs written using these languages are easy to understand,
as the statements and syntaxes are self-documented.
A program was written by other programmers can be understood without much difficulty.
Easy to program
These languages usually come with tools, which makes the task of writing programs easy for programmers.
Various constructs are provided which ease complex tasks.
Easy to maintain
These programs are quite easy to maintain, as they can be modified and updated easily.
Anyone can modify them.
We can add new features to the existing programs without rewriting the whole program.
Easy for documentation
The programs written in these languages are highly documentable. When we talk about the statements of the programs, they are almost self-documented, and they do not need any further documentation.
Easy Debugging
As the programs are modular, the length of the program is short,
which makes the detection and correction of errors (Bugs) easy. Usually, there are compilers,
which detect and also correct the bugs (syntactical).
Less time consuming
As there are tools available, the time is taken for coding and debugging of
programs are quite less in case of high-level languages when compared to the other languages.
Portable
The programs written using these languages on one machine are portable to other machines,
which will run with slight changes, that too if needed.
Limitations of high-level programming languages
As every coin has two sides, so is the case of high-level programming languages,
advantages, come along with certain limitations, at certain times,
these languages become complex and are quite difficult to understand and learn.
The time taken for compilation is more when compared to execution time.
The efficiency of the language depends on the compiler’s capability.
These languages usually do not have the features, which support all operations.
Selecting a Programming Language
As there are quite a large number of programming languages,
usually programmers are confused while choosing a language.
What should be the criteria for choosing a language?
Which will be a better choice?
How should a person choose a programming language ?
are some of the questions, which trouble a programmer, before he develops an application.
Before choosing a language, one has to consider the following aspects,
which makes the decision easier :
1. Nature of Application. One has to look into what is the nature of the application, one should understand the application features, the requirements, etc.,
which will make him aware of the required features. The language which has those features and is quite easy can be chosen easily.
2. Is the language familiar? One has to look into the fact that are the programmers familiar with the language, if not how fast and easy is it to learn the language.
3. Strength of Compiler. How strong is the compiler for the language, as it is the deciding factor for the efficiency of the language? The better the compiler, the better the language.
Therefore, before choosing a language one has to know about the availability of a strong compiler.
4. How often is the program modified? If the program is subjected to frequent modifications and changes, one has to choose a language that gives flexibility for modification and the ease with which it can be done should be high.
Ascertain languages are very difficult and do not really encourage modification, which will be quite a laborious process with them.
5. Are there any hardware changes likely during the application’s life is also an important consideration, as the change in hardware should not affect the working of the program, nor it should have to be rewritten again,
therefore a high-level standardized language should be chosen which is independent of hardware or which is easy to convert.
6. Is the language is being developed, improved, updated, and more and more features being added also plays a vital role in choosing a language as the commitment for support from the developers of the language is very important for choosing and using a language?
7. Cost. The cost of the software required for the language to be used for application development
as well as the cost of other related tools that make the language complete should be
looked into, before choosing a language.
Thus the choice of a programming language is made and the application development takes place. Programming languages are therefore the medium of getting the tasks done and the results presented in an expected manner.
After careful evaluation, the language chosen, will give an application the life, it needs.