EXPERIMENT IN KNOWLEDGE-BASED AUTOMATIC PROGRAMMING

被引:33
作者
BARSTOW, DR [1 ]
机构
[1] STANFORD UNIV,DEPT COMP SCI,STANFORD,CA 94305
关键词
D O I
10.1016/0004-3702(79)90013-4
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
Human programmers seem to know a lot about programming. This suggests a way to try to build automatic programming systems: encode this knowledge in some machine-usable form. In order to test the viability of this approach, knowledge about elementary symbolic programming has been codified into a set of about four hundred detailed rules, and a system, called PECOS, has been built for applying these rules to the task of implementing abstract algorithms. The implementation techniques covered by the rules include the representation of mappings as tables, sets of pairs, property list markings, and inverted mappings, as well as several techniques for enumerating the elements of a collection. The generality of the rules is suggested by the variety of domains in which PECOS has successfully implemented abstract algorithms, including simple symbolic programming, sorting, graph theory, and even simple number theory. In each case, PECOS's knowledge of different techniques enabled the construction of several alternative implementations. In addition, the rules can be used to explain such programming tricks as the use of property list markings to perform an intersection of two linked lists in linear time. Extrapolating from PECO's knowledge-based approach and from three other approaches to automatic programming (deductive, transformational, high level language), the future of automatic programming seems to involve a changing role for deduction and a range of positions on the generality-power spectrum. © 1979.
引用
收藏
页码:73 / 119
页数:47
相关论文
共 33 条
[1]  
BARSTOW D, 1979, KNOWLEDGE BASED PROG
[2]  
Barstow D. R., 1976, 2nd International Conference on Software Engineering, P19
[3]  
BARSTOW DR, 1978, TR149 YAL U DEP COMP
[4]  
BUCHANAN J, 1974, AIM236 STANF U COMP
[5]   TRANSFORMATION SYSTEM FOR DEVELOPING RECURSIVE PROGRAMS [J].
BURSTALL, RM ;
DARLINGTON, J .
JOURNAL OF THE ACM, 1977, 24 (01) :44-67
[6]  
Dahl O. - J., 1972, STRUCTURED PROGRAMMI
[7]   SYSTEM WHICH AUTOMATICALLY IMPROVES PROGRAMS [J].
DARLINGTON, J ;
BURSTALL, RM .
ACTA INFORMATICA, 1976, 6 (01) :41-60
[8]  
DERSHOWITZ N, 1977, IEEE T SOFTWARE ENG, P377
[9]  
FEIGENBAUM EA, 1977, 5TH P INT JOINT C AR, P1014
[10]  
GOLDSTEIN I, 1977, COGNITIVE SCI, V1, P54