{"title":"Artificial intelligence and software engineering: The Programmer's Apprentice project","authors":"C. Rich","doi":"10.1145/800171.809600","DOIUrl":null,"url":null,"abstract":"An overview of the goals, methods and progress of the Programmer's Apprentice Project:\n The goals of the project are to develop an artificial intelligence theory of how expert programmers analyze, synthesize, modify, explain, verify and document programs, and to apply that theory towards automating the programming process. Recognizing that the long-term goal of totally automatic programming is very far off, we are presently concentrating on applying our research towards developing an intelligent computer assistant for programmers, called the Programmer's apprentice.\n One of our key observations is that expert programmers rely heavily on a large body of standard implementation methods and program forms. A central part of the research has therefore been to identify and codify these standard forms. For this purpose, we have developed a programming-language independent formalism, called the Plan Calculus, in which these standard forms can be written down in a canonical and abstract way, and used by an automatic programming system. An initial library of several hundred plans using has been compiled using this formalism.","PeriodicalId":218138,"journal":{"name":"ACM '84","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM '84","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/800171.809600","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2
Abstract
An overview of the goals, methods and progress of the Programmer's Apprentice Project:
The goals of the project are to develop an artificial intelligence theory of how expert programmers analyze, synthesize, modify, explain, verify and document programs, and to apply that theory towards automating the programming process. Recognizing that the long-term goal of totally automatic programming is very far off, we are presently concentrating on applying our research towards developing an intelligent computer assistant for programmers, called the Programmer's apprentice.
One of our key observations is that expert programmers rely heavily on a large body of standard implementation methods and program forms. A central part of the research has therefore been to identify and codify these standard forms. For this purpose, we have developed a programming-language independent formalism, called the Plan Calculus, in which these standard forms can be written down in a canonical and abstract way, and used by an automatic programming system. An initial library of several hundred plans using has been compiled using this formalism.