In a sense, the emergence of programming even predates the emergence of electronic computers. Ada lovelace, the daughter of Byron, a famous English poet, once designed a program to solve Bernoulli equation on Babbage analyzer. She even established the concepts of loops and subroutines. Ada lovelace is called the first programmer in the world because of her pioneering work in programming.
Any design activity is to seek a balance between various constraints and contradictory requirements, and programming is no exception. In the early stage of the development of computer technology, due to the expensive machine resources, the time and space cost of the program are often the main factors for design consideration; With the rapid development of hardware technology and the continuous expansion of software scale, the structure, maintainability, reusability and expansibility of programs become more and more important.
On the other hand, in the early days of computer technology development, software construction activities were mainly program design activities. However, with the development of software technology, software systems have become more and more complex, and gradually divided into many specialized software systems, such as operating system, database system and application server. These specialized software systems have increasingly become a part of the general computing environment. In this case, the content of software construction activities is becoming more and more abundant, which is no longer just a programming activity, but also includes database design, user interface design, interface design, communication protocol design and complex system configuration process.
Programming refers to the method and process of designing, compiling and debugging programs. This is a purposeful intellectual activity. Because the program is the ontology of software, the quality of software is mainly reflected by the quality of the program. In software research, the work of programming is very important, involving related basic concepts, tools, methods and methodologies.
According to the structural nature, there are structured programming and unstructured programming. The former refers to structured programming methods and processes. It has the hierarchy of complex structure composed of basic structure, while the latter is the opposite. According to the requirements of users, there are programmed programming and non-programmed programming. The former refers to the programming of programming languages, while the latter refers to the programming of non-procedural programming languages. According to the component nature of programming, there are sequential programming, concurrent programming, parallel programming and distributed programming. According to the programming style, there are logic programming, function programming and object programming.
The basic concepts of programming include program, data, subroutine, subroutine, collaborative routine, module, sequence, concurrency, parallelism and distribution. Program is the most basic concept in programming. Subroutines and collaborative programs are the basic units of programming, which is convenient for programming. Sequence, concurrency, parallelism and distribution reflect the inherent characteristics of the program.
Program design specification is the specific provision of program design. Program design is an important part of software development, and software development is an engineering work, so it should be standardized. Language affects the efficiency of programming and the reliability, readability and maintainability of software. Special programs provide a suitable environment for software personnel and facilitate program design.
A computer program or software program (usually called a program) refers to a set of instructions that indicate each step of a computer, usually written in a programming language and running on a certain target architecture. For example, a program is like a braised pork recipe (program) written in Chinese (programming language), which is used to guide people who know Chinese (architecture) to cook this dish. Usually, computer programs should be compiled and linked into a format that is not easy to be understood by people but can be understood by computers, and then run. Programs that can run without compilation are usually called script programs.