Programming Language
A programming language is the collection of syntactic
rules, keywords, naming structures, data structures, expression and control
structures that is intended for the expression of computer programs and that is
capable of expressing any computer program.
Programming Language is a formal method that:
•
Describe a solution to a problem
•
Organize a solution to a problem
•
Reason about a solution to a problem
•
Interface between user and machine Programming languages trade-off:
Ø Ease
of use - high level
Ø Efficiency
- low level
“A programming language is a language that is intended for the
expression of computer programs and that is
capable of expressing any computer program.”
Characteristics of a Good Programming Languages
1. Clarity, Simplicity and Unity
A programming language provides a medium to conceptual
thinking of new algorithms and also a medium to execute your thought process
into real coding statements. For algorithms to be implemented on a language
it’s a basic need is that the language is quite clear, simple and unified in structure. Such that the Primitives of
language can be utilized to develop algorithms. It is desirable to have a
minimum number of different concepts, so that combining multiple concepts won’t
be that complex in nature. It should be simple and regular as possible. This
attribute of a language is known as conceptual Integrity.
The main concern of a language now a days is its
readability. The syntax of language effects the ease with which programs are
written, tested and later used for knowledge or research purpose. A complex
syntax language may be easy to write program in, but it proves to be difficult
to read and debug the code for later sessions. For example APL programs are so complicated that even the own
developers find it difficult to understand after 1-2 months. The language
should be simple enough to understand or point out errors.
2. Orthogonality
The term orthogonality refers to the attribute of being
able to combine various features of a language in all possible combinations,
with every combination being meaningful. Language design must follow
orthogonality principle i.e. independent functions should be controlled by
independent mechanisms For example, suppose
a language provides with an expression let’s say an arithmetical calculation
operator .Taking Another Expression facilitated by the language like
conditional Statement, which has 2 outputs either 0 or 1 (in some cases TRUE or
FALSE). Now the language should support combination of these two expressions.
So that new statement can be formed, and this orthogonality helps to develop
many new algorithms.
3. Naturalness for the application
A language needs a Syntax that, when applied properly,
allows the program Structure to reflect the logical structure what a programmer
wanted it to. Arithmetic Algorithms
,concurrent algorithms , logic Algorithms and other type of statement have
differing natural structures , that can be represented by the Program in that
language. The language should provide appropriate data structures, operations, control structures and a natural syntax for
the problem to be solved.
For Example: Consider
a real life condition of plates being placed above each plate, this structure
is known as Stack. This Stack can be implemented into programming world also.
This is used as a data Structure in most of the Languages.
4. Support for Abstraction
Many times languages fail to implement many real life
problems into Programs. There is always a gap between abstract data structures
and operations. Even most natural Programming language fails to bridge the gap.
For Example: Consider a situation
where a scheduling is to be done for college student for attending a lecture in a class section, teacher. Suppose
the requirement is to assign a student a section lecture and teacher to attend,
which are common task for natural application, but are not provided by C.
The need of point is to design an appropriate abstraction
for the problems solution and then implementing these abstraction using most
primitive features of a language. Ideally, the language should provide the data
structures, data types and operations to maintain such abstractions .C++ is one
of the most used language, that provide such facilities.
5. Ease of Program Verification
The reliability of a programming Language written in a
language is always a central Concern. There are many techniques which can be
used to keep track of correct functionality of a language. Sometimes testing
the Program with random values of the inputs and obtaining corresponding
outputs. Program verification should be provided by languages to check and
minimize the errors.
6. Programming Environment
The environment also plays a vital role in success of a
Language. The environment which is technically weak, may get a bad response of
Programmer, rather than a language that has less facility than the former but
its environment is Technically Good. Some of the Good featured of an
environment are Special editors and testing packages tailored to the language
may greatly speed up the creation and testing of Programs.
7. Portability of Programs
The important criterion for many programming projects is
the Transportability of the resulting program from one computer to another
systems. A language which is widely available and do not support different
features on different computer System, which may have different hardware, is
considered a good language. For Example
C, C++ and most of the language now
days are Portable in nature.
8. Cost of Use
The trickiest point that always matter a lot in any system
that uses resources. It’s a major element to decide the Evaluation of any
programming language, but cost means many different things.
(a) Cost of Program Execution
Program Execution cost is total amount which has been used
to implement the program. The research work on design, optimizing compilers,
data allocation registers etc. These are the basic things which come under the
cost of Program Execution.
(b) Cost of Program Translation
The next concern is program compilation. The program is
compiled many times than it is being executed. In such case, it is important to
have a speed and efficient compiler to handle this Job.
(c) Cost of Program Creation, Testing and Use
Another aspect of Cost management. This includes the cost
which a programmer charges for his work of creating Project with the Specified
features, the cost involving the Testing issues.
(d) Cost of Program Maintenance
After a program is being installed in a System, then after
certain intervals it needs maintenance to run smoothly. The maintenance
includes the rectification of Error propagated in real time, the updating of
Program as need of time.
No comments:
Post a Comment