Evolution of Programming Languages Generations Most books and articles on history of programming languages tend to discuss languages in term of generations. This is useful arrangement for classifying languages by age. I agree that whatever a few of we ‘more mature’ software engineers get together, we cannot ever seem to agree on wht constitutes the generation of computer languages. We know that Formula Translation (FORTRAN) was probably a first-generation languges. Does that make FORTRAN 77 and WatFor second languages? Is the newest FORTRAN (FORTRAN 90) third or fourth generation?
How about commom Bussiness-Oriented Languages (COBAL)? It has been arround since 1959, and yet COBAL 2000 will be an object-oriented(OO)COBAL. Does this make it fourth generation or is it still first generation? First Generation The first generation programming languages is machine language,which required the use of binary symbols (0s and 1s). Because this is the language of the CPU,text file hat is translated into binary sets can be reas by almost every computer syatem platform. Originally no translator was used to change he source code into object code.
Don’t waste your time!
Order your assignment!
Second Generation Developers of programmeing languages attempted to overcome some of the difficulties inherent in machine languages by replacing the binary digits with symbols that programmers could more easily understand. These second-generation languages use code like A for add, MCV for move, and so on. Another term for these languages in assembly languages, which comes from the programes (called assemblers) used to translate into machine code. System software programs such as Oss and utility programes are often written is an assembly languages.
Third Generation Third-Generation languages continued the trend toward greater use of symbolic code and away from specifically instructing the computer how to complete an operation, BASIC, COBOL, C and FORTRAN are examples of third-generation languages that use English and Assembly languages because it more clearly resembles everyday human communication and understanding. With third-generation and-level programming languages, each statement in the languages translates into several instructions in the machine languages.
A special software program called a compiler converts he programmers’s source into the machine-languages instructions consisting of binary digits. A compiler creates a two-stage process for problem execution. First, it translates the program into machine language; second, the CPU executes that program. Another approach is to use interpreter, which is a language translator that converts each statement in progamming language into machine language and executes he statement, one at a time. An interpreter does not produce a complete machine-language program.
After the statement executes, the machine language statement is discarded, the process continues for the next statement, and so on. Fourth Generation Fourth-generation programming languages emphasize what output results are desired rather than how programming statement are to be written. As a result, many managers and executives with little or so no training in computers programming are using fourth-generation languages (4GLs). Languages for accesing information in a database are often fourth-generation languages. Prime examples include PowerBuilder, Delpi, Essbase, Forte, Focus, Powerhouse, SAS, many other.
Natural is a 4GL that can e used with Windows, UNIX, or Linux. Another popular fourth-generation languages is called Strucured Query Language (SQL), which is often used to perform database queries and manipulations. History First language Ada Lovelace and baggage and its nephew were writing programs for the project of “difference engine”, and then the “analytical engine”. In 1945, the german K. Zuse, inventor of the Z3 computer would have defined an evolved language for this engine (wih arrays and records). Few documents of the epoch about this language exit. Assembly
Assemblers exist since the beginning of computers. They associate a symbolic name to the machine-language code, for example: Add bx, 4 Cmp [adr], 3 Jmp address Assembly programming is no longer frequently practiced, even to build fast routines…. Autocode – 1952 Alick E. Glennie Implemented firstly on mark 1, then on other computers, this is a symbolic code. IPL -1956- Information processing Language A. Newell, H. Simon, J. C. shaw Low-level list processing language. Imlements the RECURSIVITY. Fortan -1954-1958- FORmula TRANslator system John Backus and other researchers at IBM
Language dedicated to mathematical calculators. Fortran 2 (1958) introduced SUB-ROUTINES, FUNCTIONS, LOOPS, a primitive for control structue. Identifiers were limited to six characters. Lisp -1958-1960- List Processing Mac Carthy Functional language for list processing. It is purely recursive, and not iterative. There is no difference between code data. IAL -1958- International Algerbric Logic First name for Algol 58, never implemented. Algol -1960 / Algol w – 1966 / Algol 68 – ALGOritmic Language Defined by an international consortium of computer sciences specialists, coordinated by IFIP.
This was the first universal language to be macine indipendent. Introduces the use of the BNF (Backus Naur Form) grammer a create syntax parser. Introduces BLOCKS of STATEMENT, and local variables inside a block. Recursivity was implemented but with reticence as this was considered as useless! Uses DYNAMIC ARRAYS, and tis means that the following language (Pascal,C) have regressed by using static arrays, for better performance. It has IF THEN ELSE, FOR, the: = symbols for assignment (used then by Pascal), a SWITCH with gotos, BEGIN END markers, WHILE loop.
Algol W by Niklus Wirth in 1966 was using RECORDS, that are dynamic data structure, CASE, passing paramerters by value, precedence of operators. The same year, Niklaus Wirth has created Euler, a language between Algol and Pascal. Algol 60 was still oriented toward mathematical calculations. To try to reach the original goal of a general purpose language, a new version has been started in 1964, Algol X, renamed further Algol 68. Algol 68 was using the = + sign to merge both assignment and add. It has introduced UNION and CAST of types. It owns IF THEN ELIF FI, CASE, GOTO, user-defined operators.
Incremental compiling was not allowed. Cobol -1960- Common Business Oriented language Defined by a committee, the CODASYL, Conference on Data Systems languages. The committee under the auspices of the department of defense. And manufacturers, universities and users, worked from may 1959 to april 1960. Grace Murray Hopper,who had designed Flow-matic, a compiled language in the 50’s, has participated to the committee. Cobal is a classial procedural language aimed at entrprise management, in which a program is diveded in 4 divisions: identifications, environment,data, procedure, and they may be divided into sections.
It was founded on the data and a program must describe precisely the hardware and input/output data format. It introduced the record data structure. Program are documented by syntax and are all but lighweight… APL -1964- A Programming Language K. lverson Language using a mathematical notation, with lot of operators. A unique type, the array. Defined from 1957 to 1960, implemented in 1964. Basic -1964- Beginner’s All-purpose Symbolic Instruction Code John kemeny, Thomas Kurtz Has been designed in 1963,to be easy learn and has been implemented in 1964.
The first version was compiled, then it becomes interactive and interpreted. Each line has a number to allow GOTOs staements to jump to the line! Bill Gates and Paul Allen have win an international contest by designing and implementing a fast and compact Basic, firstly for the Altair (in 4 kb memory! ) and then on other micro-computers. Micro-computer were dilivered with Basic in Basic in ROM until late 80. In 1977, the Apple 2 was sold with an integer Basic. Then the Applesoft Basic of Microsoft with floting-point. Applesoft was using two-letter identifiers! Sub-programes were called