Вы находитесь на странице: 1из 3

Lesson 1: Evolution of Programming Languages

Introduction: We can trace a brief history of programming languages according to the generation in which they belong. By "generation, we mean a particular period in computing history that was characterized by a specific approach in programming. Just like how human languages have developed and gained sophistication over time, programming languages have also undergone a similar evolution as they moved from one generation to the next. To build programs, people use languages that are similar to human language. The results are translated into machine code, which computers understand. First Generation Languages (1GL) Machine Languages (1940s- early 1950s) The most basic type of computer languages; consisting of strings of numbers the computer's hardware can use. They uses a binary code that consists of strings of only zeroes (0) and ones (1). These languages can be understood and executed by the computer without any need for translation. The use of binary code makes machine languages very difficult to learn and use. These are machine-dependent. Different types of hardware use different machine code. For example, IBM computers use different machine language than Apple computers.

Second Generation Languages (2GL) Assembly Languages (mid 1950s) Somewhat easier to work with than machine languages

These languages usually refer to some form of symbolic. They use very short words for commands. They are designed to facilitate fast and efficient execution in computers To create programs in assembly language, developers use cryptic English-like phrases to represent strings of numbers. The code is then translated into object code, using a translator called an assembler. Together with 1GL, are considered as low-level languages

Assembly Code

Assembler

Machine Code

Third Generation Languages (3GL) These languages are more powerful than assembly languages and allow the programmer to work in a more English-like environment. 3GLs are portable; meaning the object code created for one type of system can be translated for use on a different type of system. These are designed to be easier for the programmers to learn and use. Closer to level of human languages Most modern computers belong to this generation. 3GLs introduced the used of data structures-programming concepts that previously had to be coded directly in low-level languages; breaking down a program into smaller modules or subprograms that can be used. A 3GL program written for one computer does not need to be rewritten for another computer. However, the source code may need to be recompiled first using a compiler for the other computer. FORTAN COBOL BASIC Pascal C C++ Java ActiveX

e.g.

Fourth Generation Languages (4GL) Declarative languages They are also referred to as non-procedural specification languages (the programmers concentrates more on what needs to be done rather than how to do it) 4GLs may use a text-based environment (like a 3GL) or may allow the programmer to work in a visual environment, using graphical tools The following languages are 4GLs: Visual Basic (VB) SQL Oracle Lisp

Fifth Generation Languages (5GL) From 1990s onwards Outgrowth of artificial intelligence (AI) research Solve problems using constraints/ rule-based rather than algorithms Focus is on making the program solve the problem for you, rather than specifying the actual problem-solving steps

e.g. Prolog, OPS5, and Mercury

Each generation is at a higher level of abstraction.

References: Programming Fundamentals 3rd Edition Arturo L. Jacinto Jr. Computer Science: An Overview (online) 11th Edition J. Glenn Brookshear http://seminarprojects.com/Thread-evolution-and-history-of-programming-languagesppt?pid=136262#pid136262