Book description
Readings in Artificial Intelligence and Software Engineering covers the main techniques and application of artificial intelligence and software engineering. The ultimate goal of artificial intelligence applied to software engineering is automatic programming. Automatic programming would allow a user to simply say what is wanted and have a program produced completely automatically. This book is organized into 11 parts encompassing 34 chapters that specifically tackle the topics of deductive synthesis, program transformations, program verification, and programming tutors. The opening parts provide an introduction to the key ideas to the deductive approach, namely the correspondence between theorems and specifications and between constructive proofs and programs. These parts also describes automatic theorem provers whose development has be designed for the programming domain. The subsequent parts present generalized program transformation systems, the problems involved in using natural language input, the features of very high level languages, and the advantages of the programming by example system. Other parts explore the intelligent assistant approach and the significance and relation of programming knowledge in other programming system. The concluding parts focus on the features of the domain knowledge system and the artificial intelligence programming. Software engineers and designers and computer programmers, as well as researchers in the field of artificial intelligence will find this book invaluable.
Table of contents
- Cover image
- Title page
- Table of Contents
- Copyright
- ACKNOWLEDGMENTS
- INTRODUCTION
-
I: Deductive Synthesis
- Chapter 1: Introduction to Deductive Synthesis
-
Chapter 2: A Deductive Approach to Program Synthesis
- Publisher Summary
- MOTIVATION
- SPECIFICATION
- BASIC STRUCTURE
- SPLITTING RULES
- TRANSFORMATION RULES
- RESOLUTION
- THE RESOLUTION RULES
- THE POLARITY STRATEGY
- MATHEMATICAL INDUCTION AND THE FORMATION OF RECURSIVE CALLS
- A COMPLETE EXAMPLE: FINDING THE QUOTIENT OF TWO INTEGERS
- THE FORMATION OF AUXILIARY PROCEDURES
- GENERALIZATION
- COMPARISON WITH THE PURE TRANSFORMATION-RULE APPROACH
- ACKNOWLEDGMENTS
- Chapter 3: Top-Down Synthesis of Divide-and-Conquer Algorithms
- II: Program Verification
-
III: Transformational Approaches
- Chapter 7: Introduction to Transformational Approaches
- Chapter 8: An Experimental Program Transformation and Synthesis System
- Chapter 9: Program Development as a Formal Activity
- Chapter 10: An Experiment in Knowledge-based Automatic Programming
-
Chapter 11: On the Efficient Synthesis of Efficient Programs
- ABSTRACT
- 1 Introduction
- 2 Background
- 3 A Framework for Efficient Program Synthesis
- 4 An Overview of the LIBRA Implementation
- 5 An Example of LIBRA in Operation
- 6 Methods for Controlling Search in Program Refinement
- 7 Prototypes
- 8 Estimating Execution Costs
- 9 Adding New Efficiency Knowledge
- 10 Results
- 11 Related Research
- 12 Conclusions
- ACKNOWLEDGMENT
- Chapter 12: Reusability Through Program Transformations
-
Chapter 13: Program Developments: Formal Explanations of Implementations
- ABSTRACT
- 1 INTRODUCTION: TRANSFORMATIONAL IMPLEMENTATION
- 2 DEVELOPMENT LANGUAGE PROPERTIES
- 3 THE DEVELOPMENT LANGUAGE
- 4 THE DEVELOPMENT PROCESS
- 5 REPLAY OF DEVELOPMENTS
- 6 THE UNDERLYING PROGRAM MANIPULATION SYSTEM: POPART
- 7 STRUCTURES EXPRESSED IN THE PADDLE LANGUAGE
- 7.2 Simplifications
- 7.3 Conditioning
- 7.4 The Development Process: A Simple Example
- 7.5 Text Compression: An Extended Example Development
- 8 PROBLEMS AND FUTURE RESEARCH
- Acknowledgments
-
IV: Natural Language Specifications
- Chapter 14: Introduction to Natural Language Specifications
- Chapter 15: Automatic Programming Through Natural Language Dialogue: A Survey
-
Chapter 16: Protosystem I—An automatic programming system prototype
- Publisher Summary
- INTRODUCTION
- A MODEL OF THE PROGRAM WRITING PROCESS
- EFFICIENCY ENHANCEMENT IN SYSTEM DEVELOPMENT
- THE DEVELOPMENT OF PROTOSYSTEM I
- THE PROTOSYSTEM I DATA PROCESSING SYSTEM MODEL AND THE SYSTEM SPECIFICATION LANGUAGE
- THE TRANSLATOR AND THE DATA SET LANGUAGE
- THE DESIGN CRITERION AND THE JOB COST ESTIMATOR
- THE QUESTION ANSWERER
- THE OPTIMIZING DESIGNER
- STAGE 4: CODE GENERATION
- CONCLUSION
- ACKNOWLEDGMENTS
- Chapter 17: Informality in Program Specifications
-
V: Very High Level Languages
- Chapter 18: Introduction to Very High Level Languages
- Chapter 19: An Automatic Technique for Selection of Data Representations in SETL Programs
- Chapter 20: Automating the Selection of Implementation Structures
- Chapter 21: KNOWLEDGE-BASED PROGRAMMING SELF APPLIED
- Chapter 22: IMPLEMENTING SPECIFICATION FREEDOMS
- VI: Programming by Example
- VII: Intelligent Assistants
-
VIII: Programming Tutors
- Chapter 31: Introduction to Programming Tutors
-
Chapter 32: Intelligent Program Analysis
- Abstract
- 1 Introduction
- 2 Finding the Plan
- 3 Program Synthesis
- 4 Program Generation Models
- 5 Analysis Policy
- 6 The Analysis Process
- 7 Value Equivalence
- 8 Construct Equivalence
- 9 Error Analysis
- 10 Expression Errors
- 11 Conditional Clause Reversal
- 12 Predicate Errors
- 13 Loop Iteration Errors
- 14 The Missing EXIT Statement
- 15 An Example
- 16 Experience
- 17 Applications
- Appendix. A Simple Programming Language Model
- Chapter 33: PROUST: Knowledge-Based Program Understanding
- IX: Programming Knowledge
-
X: Domain Knowledge
- Chapter 39: Introduction to Domain Knowledge
-
Chapter 40: The Draco Approach to Constructing Software from Reusable Components
- Abstract
- I INTRODUCTION
- II THE ORGANIZATIONAL CONTEXT OF DRACO
- III WHAT COMPRISES A DOMAIN DESCRIPTION?
- IV DIFFERENCES IN DEFINITION FROM OTHER APPROACHES
- V AN EXAMPLE DOMAIN ORGANIZATION
- VI SOFTWARE COMPONENTS AND THE REFINEMENT PROCESS
- VII DOMAIN SPECIFIC SOURCE-TO-SOURCE PROGRAM TRANSFORMATIONS
- VIII WHAT CAN BE SAID ABOUT THE POWER OF THE DRACO METHOD?
- IX CONCLUSIONS
- APPENDIX
- Chapter 41: A Perspective on Automatic Programming
- Chapter 42: Knowledge Representation as the Basis for Requirements Specifications
-
XI: Artificial Intelligence Programming
- Chapter 43: Introduction to Artificial Intelligence Programming
-
Chapter 44: DATAMATION®: POWER TOOLS FOR PROGRAMMERS
- Publisher Summary
- POWER TOOLS FOR PROGRAMMERS
- The implementation disasters of the 1960s are slowly being succeeded by the design disasters of the 1980s
- Redundancy protects the design from unintentional change — but it’s equally well protected against intentional change
- Conventional programming technology restrains the programmer; exploratory systems amplify him
- The programming languages used in exploratory systems minimize and defer constraints on the programmer
- Chapter 45: Perspectives on Artificial Intelligence Programming
- BIBLIOGRAPHY
- INDEX
Product information
- Title: Readings in Artificial Intelligence and Software Engineering
- Author(s):
- Release date: June 2014
- Publisher(s): Morgan Kaufmann
- ISBN: 9781483214429
You might also like
book
Logic for Computer Science and Artificial Intelligence
Logic and its components (propositional, first-order, non-classical) play a key role in Computer Science and Artificial …
book
Practical Artificial Intelligence with Swift
Create and implement AI-based features in your Swift apps for iOS, macOS, tvOS, and watchOS. With …
book
Advanced Theory of Constraint and Motion Analysis for Robot Mechanisms
provides a complete analytical approach to the invention of new robot mechanisms and the analysis of …
book
Theory of Computation
Learn the skills and acquire the intuition to assess the theoretical limitations of computer programming Offering …