Title :
Learning how to program
Author :
Upal, Muhammad Afzal ; Padmanabhuni, Srinivas
Author_Institution :
Dept. of Comput. Sci., Alberta Univ., Edmonton, Alta., Canada
Abstract :
Automated software engineering has long been a goal of artificial intelligence. There has been slow but steady progress towards understanding the processes underlying program synthesis and modification. One significant observation that came out of Richards and Waters (1986) Software Apprentice Project was that programmers repeatedly use certain program constructs or cliches to solve a variety of programming tasks. Richards developed Plan Description Language (PDL) to capture the association between various code fragments and the functional goals that they serve. Another development has been the understanding of the relationship between physical devices and programs. This understanding asserts that causal theories developed for reasoning with physical systems can be applied to reason with programs. This observation led to the development of debugging and program understanding tools. Here, we outline a framework for functional representation of programs which also allows us to automatically learn new programming constructs and to refine existing programs so as to achieve a more functionally complete program.
Keywords :
artificial intelligence; automatic programming; computer aided software engineering; learning (artificial intelligence); reverse engineering; Plan Description Language; artificial intelligence; automated software engineering; debugging; functional representation; program synthesis; program understanding; programming constructs; Artificial intelligence; Computer languages; Debugging; Encoding; Functional programming; Humans; Learning; Page description languages; Problem-solving; Software engineering;
Conference_Titel :
Electrical and Computer Engineering, 1999 IEEE Canadian Conference on
Conference_Location :
Edmonton, Alberta, Canada
Print_ISBN :
0-7803-5579-2
DOI :
10.1109/CCECE.1999.808192