[ieee information services (icicis) - hong kong (2011.09.17-2011.09.18)] 2011 international...

2
Evolving Computing and Automatic Programming Qingchun Wang Aishu Wang Department of Computer Science Department of Computer Science Wuhan Institute of Technology Wuhan Institute of Technology Wuhan, Hubei, 430073, China Wuhan, Hubei, 430073, China [email protected] Abstract: Automatic programming is not only one of the central goals of computer science, but also the goal computer science workers are striving for. Some science workers have been exploring and researching in this field for a long time. Significant advances have been made on evolving computer theory, especially on Genetic Programming (for short G.P.) theory and method. Those bring hopes to automatic programming. Keyword: automatic programming; program structure; evolving method 1. INTRODUCTION Automatic programming means just telling computers what to do instead of giving the computer detailed instructions to perform programming. The goal will be achieved after it has gone through the phases as follows. The first one is the period from the machine language programming to the advanced language programming. In this period, with the development or compiling principle and technology, people were able to design programs using the advanced language programming instead of inefficient machine language codes. This resulted in the first leap in automatic programming in the history. The second one is the period from procedure programming to structure programming. The feature of this time is the application of methodology in structure programming. The principle and the method for program structure and style were specified and great progress in programming method had been made. The change in methodology led to the second leap of automatic programming in history. In that period, people wished that the program synthesis and the change in technology could realize automatic programming. But because of the limitedness in extensibility, repeatability and the theoretical basis, the wish did not come true. The third one is the period of object-oriented programming. In the 1980’s, a fundamental change in internal structure of programming took place. Great progress, especially in the respect of reusability and extensibility of software were also make, which contributed to the development or large-scale science and engineering operation software. In turn it led to the automatic production of software in the field. In the 1990’s the development of parallel and intelligent operation promoted the development of facing agent program methodology which combined all the programming advantages in process, data and relation (communication) and brought new life to automatic programming. The appearance of G.P. methodology marked the new era in automatic programming in that it is realized with genetic operation method. Thus automatic programming seemed quite promising. Automatic programming is characterized with self-adaptable, self-organized and self-study which are necessary for intelligence. 2. AUTOMATIC PROGRAMMING 2.1 The theoretical basis of automatic programming the theoretical basis of automatic programming originated from the theory and methodology of G.P. It solved problems with the help of the evolution principle or the evolution principle of nature, especially that of the living creatures. The methodology of G.P. originated from bionic developing operation method, including genetic operation method, developing tactics, developing plans and so on. The theory and methodology of G.P. provided automatic programming with basic method, because it can be self-adaptable, self-organized and self-study which are necessary for intelligence. Due to its inner parallelism, the theory and methodology of G.P. can perform the function of modern computer parallel technology in automatic programming. And it is possible to automate programming and to take advantage of parallel technology efficiently. The full use of new parallel technology provides good theoretical basis for automatic programming. At the same time the theory and methodology of G.P. can ideally link electronic applications with the development of electronic technology and emergence of Programmable Gate Arrays appliances. The combination can create various kinds of new circuits and good programs which have more suitability and practicability. They have attained or even excelled the standard of 2011 International Conference on Internet Computing and Information Services 978-0-7695-4539-4/11 $26.00 © 2011 IEEE DOI 10.1109/ICICIS.2011.61 213

Upload: aishu

Post on 13-Mar-2017

214 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: [IEEE information Services (ICICIS) - Hong Kong (2011.09.17-2011.09.18)] 2011 International Conference on Internet Computing and Information Services - Evolving Computing and Automatic

Evolving Computing and Automatic Programming

Qingchun Wang Aishu Wang

Department of Computer Science Department of Computer Science Wuhan Institute of Technology Wuhan Institute of Technology Wuhan, Hubei, 430073, China Wuhan, Hubei, 430073, China

[email protected]

Abstract: Automatic programming is not only one of the central goals of computer science, but also the goal computer science workers are striving for. Some science workers have been exploring and researching in this field for a long time. Significant advances have been made on evolving computer theory, especially on Genetic Programming (for short G.P.) theory and method. Those bring hopes to automatic programming. Keyword: automatic programming; program structure; evolving method

1. INTRODUCTION Automatic programming means just telling

computers what to do instead of giving the computer detailed instructions to perform programming. The goal will be achieved after it has gone through the phases as follows.

The first one is the period from the machine language programming to the advanced language programming. In this period, with the development or compiling principle and technology, people were able to design programs using the advanced language programming instead of inefficient machine language codes. This resulted in the first leap in automatic programming in the history.

The second one is the period from procedure programming to structure programming. The feature of this time is the application of methodology in structure programming. The principle and the method for program structure and style were specified and great progress in programming method had been made. The change in methodology led to the second leap of automatic programming in history. In that period, people wished that the program synthesis and the change in technology could realize automatic programming. But because of the limitedness in extensibility, repeatability and the theoretical basis, the wish did not come true.

The third one is the period of object-oriented programming. In the 1980’s, a fundamental change in internal structure of programming took place. Great progress, especially in the respect of reusability and extensibility of software were also make, which

contributed to the development or large-scale science and engineering operation software. In turn it led to the automatic production of software in the field. In the 1990’s the development of parallel and intelligent operation promoted the development of facing agent program methodology which combined all the programming advantages in process, data and relation (communication) and brought new life to automatic programming. The appearance of G.P. methodology marked the new era in automatic programming in that it is realized with genetic operation method. Thus automatic programming seemed quite promising.

Automatic programming is characterized with self-adaptable, self-organized and self-study which are necessary for intelligence.

2. AUTOMATIC PROGRAMMING 2.1 The theoretical basis of automatic

programming the theoretical basis of automatic programming originated from the theory and methodology of G.P. It solved problems with the help of the evolution principle or the evolution principle of nature, especially that of the living creatures. The methodology of G.P. originated from bionic developing operation method, including genetic operation method, developing tactics, developing plans and so on. The theory and methodology of G.P. provided automatic programming with basic method, because it can be self-adaptable, self-organized and self-study which are necessary for intelligence.

Due to its inner parallelism, the theory and methodology of G.P. can perform the function of modern computer parallel technology in automatic programming. And it is possible to automate programming and to take advantage of parallel technology efficiently. The full use of new parallel technology provides good theoretical basis for automatic programming.

At the same time the theory and methodology of G.P. can ideally link electronic applications with the development of electronic technology and emergence of Programmable Gate Arrays appliances. The combination can create various kinds of new circuits and good programs which have more suitability and practicability. They have attained or even excelled the standard of

2011 International Conference on Internet Computing and Information Services

978-0-7695-4539-4/11 $26.00 © 2011 IEEE

DOI 10.1109/ICICIS.2011.61

213

Page 2: [IEEE information Services (ICICIS) - Hong Kong (2011.09.17-2011.09.18)] 2011 International Conference on Internet Computing and Information Services - Evolving Computing and Automatic

man-compiled programs in function, and have thus provided the substantial and practical basis of automatic programming.

2.2 Framework of Automatic Programming In view of the history of programming, computer programs are made up of two kinds of program assembly elements. One is made up of program operation symbols such as +,-,*, /, sin, cons, etc. The other is data assembly such as 3, x, which are used in operation. And the advantage is, the richer the content that can be provided with operation assembly and data assembly is and the more complicated the compound mapping program is, and the stronger the programs function is.

This paper provides a program structure method to describe that operation assembly (including internal function and sub-program warehouse) and data assembly (including data structure) defined as program structure.

The formula is: Program structure = operation assembly + data

assembly With the concept of program structure having been

defined, the fundamental program framework of automatic program can be realized by means of the theory of the structure evolving operation method and evolving hardware.

Then formula can be like this: Automatic program = program structure + evolving

operation method + evolving hardware. 2.3 The Evolving Method of Automatic

Programming In standard Genetic Operation Method, genetic group is made up of binary system strings. But automatic programming consists of computer programs. It creates the computer original program randomly with program structure element, and applies bionics principle to breed a new (always improved) computer program group. The breeding abides by the principle of natural selection, proceeding in a way which has nothing to do with the field. That imitates the genetic operation of the nature: duplication, cross-breeding, mutation. Duplication is the operation that duplicates the existing computer programs to a new group. Cross-breeding is to choose the parts of two existing programs randomly to be reorganized and added to a new group. Mutation is to change an existing program randomly to create a new program and add it to a new group.

But the method of automatic programming of the advanced language combines symbolic notation of program structure with intelligent evolving operation method, adopting the duplication, crossbreeding and mutation to develop, which is described as fellows:

Take, for example, the process of automatic programming, used to solve the breeding problem.

(1) Use the operation assembly and data assembly

to duplicate at random and then produce an original computer program group.

(2) Use the iterative procedure to perform until it meets the prescribed condition.

(A) Perform every program in the group, and choose a fitness number in terms of its suitability.

(B) Use duplication, crossbreeding and mutation to create a new computer program group. The process is as follows:

(B1)Duplication: Duplicate an existing program to be assed to new group.

(B2)Crossbreeding: Choose parts of two existing programmers’ at random to be reorganized and added to a new group.

(B3)Mutation: Randomly choose a part from a program to create a new program to be added to the new group.

(3) Identify the best program from the computer programming groups as the result of the automatic programming process and repeat the cycle until it has met the rules and obtained the best new program.

3. CONCLUSION In this paper, the development process and

theoretical basis of automatic programming have been discussed, with its basic framework and method-being put forward. Some exploration and investigation have been performed. But there are still some problems that need further research and investigation in automatic programming to promote the development.

4. ACKNOWLEDGEMENTS I really appreciate the help from Professor Kang

Lishan, who is working in State Key Software Engineering Laboratory in Wuhan University.

REFERENCE [1]. A strict framework on software exploring method, Chen Huowang,

Software Journal, etc.Vo1.7. NO.3.1996,187-193. [2]. Koza J.K. Genetic Programming: On the Programming of Computers

by Means of Natural Selection, Cambridge, MA:MIT Press. [3]. Koza J.K.Genetic Programming II:Automatic Discovery of Reusable

Programs, Cambridge, MA:MIT Press. [4]. Holland J.Adaptation in Natural and Artificial Systems. University of

Michigan Press, Annbor, 1775. [5]. Fogel L.J.Owens A.J. and Walsh M.J. Artificial Intelligence through

Simulated Evolution, Wiley, New York,1966. [6]. Rechenberg I.Evolutions strategie:Optimlerung Prinzipien

gerblologischen Evolution, Frommann – Holzbog Verlag, Stuttgart, 1973.

[7]. Koza J.R.e1 a1, Four Problems for which a Computer Programming is Competitive with Human Performance, Proc. Of IEEE Conference on Evolutionary Computation, Nagora, Japan, 1996.

214