Summary

A Scientist who climbed the both main peaks of software theory and engineering

                                    www.hslrj.com

 

At the China-US Association for Science and Technology 2021 Global Innovation Summit, Mr. Tang, a computer software scientist, agreed to accept the invitation, introduced his part of  innovation results, and gave a 10-minute demonstration. He is a scientist who is obsessed with trying to solve super-hard problems.

 

(1) The first scientist who thoroughly realized the engineering methodology of "software program correctness verification"

 

As we all know, the quality of computer software involves the comparison of the efficiency of software algorithms and the correctness of the software (semantics). Therefore, two well-known problems have appeared in the history of software development: 1) the P-NP problem of the algorithm, and 2) the method of verifying the correctness of the program. The first question mentioned above is now over. And the second problem mentioned above: the verification method of "software correctness" has not been solved for a long time. A software program is a string of code symbols, and mathematical induction of numbers cannot be used to prove the correctness of general software (semantics). Therefore, scientists are forced to use a "formal language" to study the correctness of general procedures.

 

Previously, in order to solve the problem of "software correctness", European and American scientists invented a variety of "formal language" tools, and many scientists won the Turing Award. But these "formal language" methods can only express and verify relatively simple software programs. In 1987, Mr. Tang was invited by Professor Edmund Clark to work at CMU in the United States for program verification, and then went to Australia's "Software Verification Research Center" to work for program verification. Many years later, he understood the limitations of the "formal language" approach. Theoretical scientists all know that if formal languages ​​are to be used comprehensively and extremely rigorously for program verification, to achieve "comprehensive and extremely rigorous", they will inevitably fall into the increasingly complex situation of axiomatic set theory. Therefore, in his spare time, after about five years of software system compilation and algorithm testing, he discovered that there is a "program induction principle" in the software program. He used this new type of "program induction method" to realize a universal method of "verifying the correctness of software programs" for the first time in history.

 

Around 1991, he introduced this research result to Edmund Clark, and then he demonstrated his newly completed "program correctness verification system" to the extremely admirable software theorist Professor Dana S. Scott, and he found Dana S. Scott has a similar view. Dana Scott said to him: "It seems impossible to completely solve the problem of'program verification' by using mathematics (formal language)." Dana S. Scott's forward-looking thinking is more in line with Mr. Tang's use of engineering "program induction" for "program verification" "Methods. Among them, Professor Edmund Clark is one of the inventors of "program verification" temporal logic. He later won the Turing Award in 2007. When attending Edmund Clark’s 60-year-old Daqing meeting, Edmund Clark chatted with him about the “temporal reasoning” method and asked him “in which software programs the tense formal language can be used?” In addition, he once coached a graduate student at the Software Verification Research Center to verify her four-line "Swap" program. She used the research center's "formal language" method to verify its correctness in two weeks. It can be seen that these formal language methods cannot be used in large-scale practical applications. These made him even more convinced that using the "principle of program induction" is the only correct way to truly verify the program.

 

In 1992, one day before leaving Australia's "Software Verification Center", he introduced and demonstrated an example of automatic verification of "software program for finding the greatest common divisor" to all members of the research center. Professor Andrew List, the dean of his computer department, who studies computer operating systems, is also interested in participating in lectures across fields.

Since then, for Mr. Tang, the theoretical method and demonstration system for software verification have been completed. However, he believes that "verification of the correctness of a software program is very important, but if there are fewer or basically correct errors in the process of making the software program, isn't the reliability of the software more guaranteed? So he turned to software engineering technology, He was fortunate to work in the Advanced Software Engineering Technology Department of First Data Resource for one year. He knew the advanced technology of software engineering and reached such a level. He began to think about "how to use software theory and scientific knowledge to carry out some revolutionary reforms in software engineering technology." After eight years, he has overcome the 20-21st century problem of "new technology of automation software engineering".

 

(2) The first scientist who realized the automation software engineering technology

 

This year, the American Association for Science and Technology 2021 Global Innovation Summit invited logician Mr. Tang to introduce the "new technology of automated software engineering" and demonstrated a representative example: based on customer software orders (this example roughly includes a company's operation management) plan Department, Purchasing Department, Receiving Department, Warehousing Department, Sales Department, Accounting Department), present a demonstration in 10 minutes, and automatically generate a complete set of VC++ language customer application software. This new software with 0 errors has 145 files, a total of about 6.3 million bytes. If a senior programmer manually compiles a software program, it will take at least one year. Automatic software code generation is 500 to 1,000 times faster than manual methods. Especially the software maintenance fee is close to zero. In other words, if you want to change the software, you only need to change the customer's software sequence, and the software program will automatically change, without the need for people to rewrite the program code that may have been partially forgotten.

 

In the information age, computer intelligence software is everywhere. Especially when writing large programs by hand, there are a lot of errors. To solve the reliability problem of computer software, the cost is very high. All the application software giants in the United States, Oracle, IBM, Microsoft, and major European software companies SAP, have spent a lot of manpower and material resources to explore ways to automate the production of software programs. In addition, there were approximately 4.3 million software developers and programmers in the United States in 2019. Every year, hundreds of people with lofty ideals are constantly exploring the feasibility of automation software. Especially since 1986, the second largest computer-related association in the United States initiated and organized

IEEE/ACM International Conference on Automation Software Engineering

 Since 2021, more than 30 sessions have been held.

 

This "software automatic generation program technology" with greater economic value seems to have received more attention from scientific and technical personnel than other research topics. This research topic is extremely difficult because it is beyond the usual thinking of software writers. Mr. Tang, a mathematical logician, is thinking about the potential difficulties in the realization of "automated software engineering technology", the theoretical basis required for automation, and the feasibility of related methods. In 2001, at the age of 62, with great interest, he explored the development and expansion of the pattern cells of the program, and finally formed the idea of ​​a large program, and began to study "automatically generate high-speed software program code" at home alone.

1. From 2001 to 2004, he created a set of Pattern logic theory and completed the application feasibility test of "Pattern Language Theory in "Automation Software".

 

2. One person continued to do it and wrote tens of millions of bytes of program code. By 2008, he was fortunate to succeed with his cheerful interest and perseverance. Completed the SDDA software tool system of "a set of "Window Enterprise Management Software" that can be automatically generated according to customer order requirements". The software was downloaded for free on the Internet in 2008 and carefully announced the success of the "automatically generated full set of program code" technology !

 

3. Later, in order to prove the universal applicability of his innovative Pattern theory and method, he made three software automation tool systems for three popular software application fields: a) Enterprise management software automation Sdda-window, b) Internet platform full set of C Language CGI software automation Sdda-web, and c) Android mobile phone application software automation Sdda-android.

 

In 2008, it was announced that the automation software engineering technology was successful, and the network download of the software was completed. Since then, books have been published. He has become the only scientist who has climbed to the peak of the world's automation software engineering technology in the 21st century. He believes that for such an important technology that has both economic value and epoch-making significance, there must be newcomers to push it forward.