Evolution of Programming Languages
August 7, 2009
What is Programming Language?
A programming language is an artificial language that can be used to control the behavior of a machine, particularly a computer.
Why we need programming language?
To instruct the computer to perform a specific task.
Why we need different programming languages?
Many programming languages reflect specific needs. One language is not the best one for every. Going back to some of the original languages, Basic and Pascal came about from a need to have easy-to learn, but not powerful languages. COBOL and its relations were best for business applications like accounting and reporting. FORTRAN and its relations were best for scientific programming.LISP and other logic-based languages were suited for AI and decision-making.
People saw a need that wasn’t being well filled by an existing language, and so created one to better fill the gap. [Ever try to do a scientific project in COBOL? You’ll tear your hair out – when you finally finish all the verbiage.]
EVOLUTION OF LANGUAGES
Computer can only understand its own machine language. The machine language is the language that the hardware designers create and is quite complicated if you decide to use it to create a program, simply because it consists of sets of numbers (0s and 1s). Machine language uses these sets of numbers to perform various operations.
Programmers found that developing even the simplest programs, using sets of numbers, was a very complicated process so they developed assembly languages. Assembly languages use keywords and symbols; much like English, to form a programming language, at the same time introduces a new problem. The problem is that the computer doesn’t understand the assembly code, so we need a way to convert it to machine code, which the computer does understand.
Programmers developed assemblers which are programs that convert assembly language code to machine language code. By using these assemblers programmers can write code in assembly language and convert into machine code.
Computer scientists found that computers were quickly becoming popular all over the world, so they needed faster, easier, and more powerful programming languages than what was currently possible using assembly languages. So high level languages we introduced.
A computer programming language that executes a set of commands in order is called procedural Language. It is written as a list of instructions, telling the computer, step-by-step, what to do. For Eg. Open a file, read a number, multiply by 4, display something. Program units include the main or program block, subroutines, functions, procedures; file scoping; includes/modules; libraries.
. It is the most natural way to tell a computer what to do, and the computer processor’s own language, machine code, is procedural, so the translation of the procedural high-level language into machine code is straightforward and efficient.
Examples of computer procedural languages are BASIC, C, FORTRAN, and Pascal.
Object Oriented Languages:
Procedural programming is fine for small projects. The procedural languages give priority to operation on data rather than the data. This is very complex to find errors and cannot be reusable. So object oriented Language come in to practice.
Object-oriented programming (OOP) is a programming paradigm that uses “objects” and their interactions to design applications and computer programs. It is based on several techniques, including encapsulation, polymorphism, and inheritance. It was not commonly used in mainstream software application development until the early 1990s. Many modern programming languages now support OOP.
Examples of object oriented languages are C++, Smalltalk (First Object Oriented Language), Simula (Pure Object Oriented Language), Java, C#
One of the principal advantages of object-oriented programming techniques over procedural programming techniques is that they enable programmers to create modules that do not need to be changed when a new type of object is added. A programmer can simply create a new object that inherits many of its features from existing objects. This makes object-oriented programs easier to modify.
Aspect Oriented Programming:
A style of programming that attempts to abstract out features common to many parts of the code beyond simple functional modules and thereby improve the quality of software.
For Eg Payroll Calculation is done by payroll object and Exception and logging are done by different object.