1. Machine language
Shortcomings of poor readability, difficult to remember, programming is difficult and complex, error-prone, program debugging and modification is very difficult, not easy to master and use. Machine language directly depends on the central processing Unit, so programs written in some machine language can only be executed on the corresponding computer, not on other models of computer execution, that is, the portability is poor.
2. Assembly language
In order to alleviate the pain of programming using machine language, in the early 1950s, assembly language appeared. Assembly language replaces a particular binary string with a mnemonic that is easier to identify and remember. For example, use Add to replace binary instructions for addition. With this mnemonic, it is easier for people to read the program, and to debug and maintain it more easily. However, these mnemonic symbols are not recognized by computers and require a specialized program to translate them into machine languages, which are called assembler programs. Although assembly language is more convenient than machine languages, assembly language still has many inconveniences, and the efficiency of programming is far from satisfying the need. Assembly language directly operates the hardware, so assembly language only for specific computer processors, so there is little portability.
3. Early high-level languages
In 1954, the first high-level language-fortran came into existence. High-level language and natural language and mathematical expressions are quite close, not dependent on the computer model, good versatility. The use of high-level languages greatly improves the efficiency of program writing and the readability of programs. Like assembly language, computers cannot directly recognize and execute high-level languages, and must be translated into equivalent machine language programs (called Target programs) for execution. There are two ways to translate high-level language source programs into machine language programs, such as "Interpretation" and "compilation". The interpretation method uses the edge to interpret the side execution method. The compilation method uses the corresponding language compiler program, first compiles the source program to the machine language target program of the specified model, and then assembles the target program and various standard library functions into the complete target program, executes on the corresponding model.
4. Structured high-level language
High-level language writing program is more efficient than assembly language, but with the development of computer hardware technology, people on the large and complex software demand, while the lack of scientific norms, system planning and testing, the program contains too many errors can not be used, and even bring huge losses. The outbreak of the "software Crisis" in the late the mid 1960s led to the realization that large-scale programming was different from small programs. "Software Crisis" on the one hand need to design methods, program correctness and software reliability and other issues in-depth study, on the other hand, software development, testing, maintenance and management methods in-depth study. Structured programming is a kind of principle and method of program design. It discusses how to avoid using goto statements, and how to convert large-scale, complex flowcharts into a standard form that allows them to be represented by repeating and nesting in several standard control structures (order, branching, and looping). C language is a kind of structured language. In general, computer languages deal with two concepts-data and algorithms (program = data + algorithm). The data is the information that the program uses and processes, and the algorithm is the method that the program uses. The C language is a procedural language, which means that it emphasizes the algorithmic aspects of programming.
However, in the the late 1970s, with the continuous expansion of computer applications, the requirements of software technology more and more high, structured programming language and structured programming methods can not meet the changes in user needs, and its shortcomings are increasingly revealed:
(1) The reusability of the code is poor.
(2) Poor maintainability.
(3) Poor stability.
(4) difficult to achieve.
The focus of a person's mind is usually on things and entities, and their attributes and activities, such as when considering the accounting department's application, we consider the following:
The cashier pays the wages; the employee issues the vouchers; The Treasurer approves the payment; the cashier accounts.
In practical applications, however, it is difficult to decide how to implement the application through data structures, variables, and functions.
5 Object-Oriented languages
Structured programming method and language is the process-oriented, there are many shortcomings, while the execution of the program is pipelined, before a module is completed, can not do anything else, and can not dynamically change the direction of execution of the program. This is inconsistent with the way people know and deal with things everyday. It is believed that the objective world is composed of various objects (or entities, things), each object has its own internal state and movement law, the interaction and interaction between different objects constitute a variety of systems, and thus constitute the whole objective world; computer software is mainly to simulate the different systems in the real world, such as logistics system, banking system, library management system, teaching management system. Therefore, computer software can be considered as the real-world interconnected object composed of the system, in the computer simulation implementation.
In order to make computers easier to simulate the real world, the 1967 Norwegian Computing Center developed the Simula67 language, which provides a higher level of abstraction and encapsulation than subroutines, introduces the concept of data abstraction and class, and is considered the first object-oriented programming language. It has a far-reaching impact on the subsequent emergence of object-oriented languages such as C + +, Java, and C #.
With the advent of object-oriented language, the object-oriented programming method has been developed rapidly, and the object-oriented thought has been infiltrating into other aspects. 1980 Grady Booch proposed the concept of object-oriented design, and then the concept of object-oriented analysis was also proposed. Object-oriented programming has made great changes in the field of software development, and greatly improved the efficiency of software development.
The lower the program language, the more specific the process description must be, and the closer the instruction is to the hardware logic of the machine. On the contrary, the more advanced the programming language, the closer it is to the description and expression of the problem, and thus more intuitive and easier to understand.
--------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------
Reprinted from: http://blog.csdn.net/hurlan/article/details/20941793
The history of computer language