discourse production: anthony davey (edinburgh university press, edinburgh)

1
Book Reviews 61 The primary goal of this book is to give an account of the basic theory. This book is written for advanced undergraduates or graduate students. It is assumed that the student has previously studied finite automata, Turing machines, and computer programming. Experience has shown that the material in this book is easily accessible to mathematics students who do not know any computer science. Discourse Production. ANTHONY DAVEY(Edinburgh University Press, Edinburgh) This book describes a computer that produces English discourse. The program is capable of describing in a sequence of English sentences any game of noughts and crosses (tic-tac-toe), whether given or actually playcd with the program. The object is to understand something of what a speaker is doing when he speaks, and the program therefore demonstrates the operation of rules for selecting information into sentences, for connecting sentences into a discourse, and for constructing clauses, groups, and words to convey the required information with the maximum possible economy. The program uses a systematic functional grammar to co-operate with semantic procedures in producing English. The grammar generates only a limited range of English, but one which is nonetheless sufficient to illustrate the advantages both theoretical and practical of such a grammar for a productive system. Principles of Software Engineering and Design. MARVIN V. ZELKOWITZ, ALAN C. SHAW and JOHN D. GANNON (Prentice-Hall, Englewood Cliffs, N J) Software engineering is rapidly emerging as a discipline for managing the development of computer systems. As such it incorporates many ideas from engineering, management, and computer science. This book was written to bring together many of the topics into one location. It is not possible to totally describe in one book all the facts of software development so that the complexity of the problem can be fully understood and appreciated. Instead, this book concentrates on the design aspects of programming, although sections are presented that cover the entire realm of the software development life cycle. This book is not designed as an introduction to programming. Knowledge that programming is hard is a necessary prerequisite for adquately understanding the issues presented. It is assumed that the reader has had at least one course in programming, preferably with a block-structured language like ALGOL, PL/I, or Pascal, In addition, the reader should have knowledge of data structures and probably should have previously taken an introductory course in operating systems or compiler writing (for Chapters 4 and 5), although that is not absolutely necessary. The book's five chapters may be thought of as being divided into two sections. The first two chapters discuss the general principles of good software design and development. The last three chapters present several small and large examples of program design. These examples also include discussions of why certain design decisions were made. Chapter 1, "Large-scale Software Development," presents a summary of the software engineering field and describes the major issues and some of the proposed solutions. The major goal is to give an account of thc professional software environment--its problems and proposed solutions. Chapter 2, "'Programming Methodology," describes several programming techniques. The program design language used to describe the examples presented in this book is defined. In addition, concepts like top-down development structured programming, data abstractions, certification, and testing are explained. A short list of common programming algorithms is also given. Chapter 3, "Examples of Program Design," presents six different short designs. Chapter 4, "Design of a Single-Language Multiprogramming System," and Chapter 5, "'Design of a Com- piler,'" present two larger, complete designs. Both of these designs are given in complete detail and can be implemented in several hundred PL/I statements. They present most of the issues encountered in developing systems and compilers. FORTRAN, PL/I and the ALGOLS. BRIAN MEEK, Macmillan, London The aim of this book is to aid programmers in developing an understanding and command of several languages, and in particular to aid the difficult transition from knowing one language to knowing more than one. (Experience suggests that once the transition from knowing the language to knowing two has been made, the further learning of more languages presents few problems.) Good working knowledge of one programming language is assumed--perhaps, though not nessarily, one of the four which the book discusses. Apart from input-output` the coverage is substantially complete for FORTRAN and ALGOL 60. For PL/1 and ALGOL 68, both much larger in their range of facilities, those aspects corresponding to the other two languages are covered, and most of those other features which appear in one form or another in both. The main aim of the book is to provide a comparative discussion. In this book the comparative approach is laid down by discussing ALGOL 60 and FORTRAN in parallel in part I, and then dealing with PL/I on its own in part 2 (but making comparisons with the languages in part 1 from time to time) and ALGOL 68 on its own in part 3 (but making comparisons with the other three languages from time to time). There are also linking "interludes" between the parts, and concluding "postlude". In part I the discussion concentrates on one or the other language from time to time, but for the most part proceeds in parallel or with frequent reference back and forth, depending on the nature of the features being discussed and on pragmatic judgements about what treatment best advances the discussion at a particular point. Similar pragmatic judgements have determined whether a new construct has been introduced by informal description or by a more formal defini- tion. For the most part, in an attempt to make the text readable as well as informative, features of the languages have been introduced by informal description and illustrative examples, but where it has been considered that

Post on 29-Aug-2016

223 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Discourse production: Anthony Davey (Edinburgh University Press, Edinburgh)

Book Reviews 61

The primary goal of this book is to give an account of the basic theory. This book is written for advanced undergraduates or graduate students. It is assumed that the student has

previously studied finite automata, Turing machines, and computer programming. Experience has shown that the material in this book is easily accessible to mathematics students who do not know any computer science.

Discourse Production. ANTHONY DAVEY (Edinburgh University Press, Edinburgh) This book describes a computer that produces English discourse. The program is capable of describing in a

sequence of English sentences any game of noughts and crosses (tic-tac-toe), whether given or actually playcd with the program. The object is to understand something of what a speaker is doing when he speaks, and the program therefore demonstrates the operation of rules for selecting information into sentences, for connecting sentences into a discourse, and for constructing clauses, groups, and words to convey the required information with the maximum possible economy.

The program uses a systematic functional grammar to co-operate with semantic procedures in producing English. The grammar generates only a limited range of English, but one which is nonetheless sufficient to illustrate the advantages both theoretical and practical of such a grammar for a productive system.

Principles of Software Engineering and Design. MARVIN V. ZELKOWITZ, ALAN C. SHAW and JOHN D. GANNON (Prentice-Hall, Englewood Cliffs, N J)

Software engineering is rapidly emerging as a discipline for managing the development of computer systems. As such it incorporates many ideas from engineering, management, and computer science. This book was written to bring together many of the topics into one location.

It is not possible to totally describe in one book all the facts of software development so that the complexity of the problem can be fully understood and appreciated. Instead, this book concentrates on the design aspects of programming, although sections are presented that cover the entire realm of the software development life cycle.

This book is not designed as an introduction to programming. Knowledge that programming is hard is a necessary prerequisite for adquately understanding the issues presented. It is assumed that the reader has had at least one course in programming, preferably with a block-structured language like ALGOL, PL/I, or Pascal, In addition, the reader should have knowledge of data structures and probably should have previously taken an introductory course in operating systems or compiler writing (for Chapters 4 and 5), although that is not absolutely necessary.

The book's five chapters may be thought of as being divided into two sections. The first two chapters discuss the general principles of good software design and development. The last three chapters present several small and large examples of program design. These examples also include discussions of why certain design decisions were made.

Chapter 1, "Large-scale Software Development," presents a summary of the software engineering field and describes the major issues and some of the proposed solutions. The major goal is to give an account of thc professional software environment--its problems and proposed solutions.

Chapter 2, "'Programming Methodology," describes several programming techniques. The program design language used to describe the examples presented in this book is defined. In addition, concepts like top-down development structured programming, data abstractions, certification, and testing are explained. A short list of common programming algorithms is also given. Chapter 3, "Examples of Program Design," presents six different short designs.

Chapter 4, "Design of a Single-Language Multiprogramming System," and Chapter 5, "'Design of a Com- piler,'" present two larger, complete designs. Both of these designs are given in complete detail and can be implemented in several hundred PL/I statements. They present most of the issues encountered in developing systems and compilers.

FORTRAN, PL/I and the ALGOLS. BRIAN MEEK, Macmillan, London The aim of this book is to aid programmers in developing an understanding and command of several

languages, and in particular to aid the difficult transition from knowing one language to knowing more than one. (Experience suggests that once the transition from knowing the language to knowing two has been made, the further learning of more languages presents few problems.) Good working knowledge of one programming language is assumed--perhaps, though not nessarily, one of the four which the book discusses.

Apart from input-output` the coverage is substantially complete for FORTRAN and ALGOL 60. For PL/1 and ALGOL 68, both much larger in their range of facilities, those aspects corresponding to the other two languages are covered, and most of those other features which appear in one form or another in both.

The main aim of the book is to provide a comparative discussion. In this book the comparative approach is laid down by discussing ALGOL 60 and FORTRAN in parallel in part I, and then dealing with PL/I on its own in part 2 (but making comparisons with the languages in part 1 from time to time) and ALGOL 68 on its own in part 3 (but making comparisons with the other three languages from time to time). There are also linking "interludes" between the parts, and concluding "postlude". In part I the discussion concentrates on one or the other language from time to time, but for the most part proceeds in parallel or with frequent reference back and forth, depending on the nature of the features being discussed and on pragmatic judgements about what treatment best advances the discussion at a particular point. Similar pragmatic judgements have determined whether a new construct has been introduced by informal description or by a more formal defini- tion. For the most part, in an attempt to make the text readable as well as informative, features of the languages have been introduced by informal description and illustrative examples, but where it has been considered that