MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Learning How to Program

Download:
Download as a PDF | Download as a PS
by Muhammad Afzal, Upal Srinivas Padmanabhuni
http://www.cs.ualberta.ca/~upal/se/1.ps
Add To MetaCart

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 [15] 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 (such as Functional Representation [17]) 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 [2]. 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. 1

Citations

1977 Artificial Intelligence: A Modern Approach – Russell, Norvig - 2003
498 Inverser Entailment and Progol – Muggleton - 1995
130 Object oriented software construction – Meyer - 1997
116 The Programmer’s Apprentice – Rich, Wales - 1990
62 Interactive Theory Revision: An Inductive Logic Programming Approach – Raedt - 1992
55 A note on inductive generalisation – Plotkin - 1969
41 Program Construction and Verification – Backhouse - 1986
40 Learning by experimentation: Incremental refinement of incomplete planning domains – Gil - 1994
35 Muggleton and Luc De Raedt. Inductive logic programming: Theory and methods – Stephen - 1994
33 Combining FOIL and EBG to speedup Logic Programs – Mooney, Zelle - 1993
22 Theory revision – Ade, Raedt, et al. - 1993
20 Understanding Programs as Devices – Allemang - 1990
10 Redesigning a problem-solver's operators to improve solution quality – Stroulia, Goel - 1997
8 A Formal Model of Software Subsystems – Edwards - 1995
2 Plans in software engineering: an overview – Hartman - 1995
1 Using explanationbased learning to acquire progams by analyzing examples – Maclin, Shavlik - 1989
1 Survey and assessment of conventional software verification and validation methods – Miller, Groundwater, et al. - 1993
1 Inductive logic programming: Inverse resolution and beyond – Muggleton - 1995
1 Reasoning, chapter Functional Representation of Devices and Compilation of Diagnostic Problem-Solving Systems, pages 47--73. Lawrence Erlbaum Associates – Experience - 1986