Professional Documents
Culture Documents
[Computer Languages 1980-jan vol. 5 iss. 3-4] - Introduction to automata theory, languages, and computation_ John E. Hopcroft and Jeffrey D. Ullman (Addison-Wesley Publishing C (1980) [10.1016_0096-0551(80)90011-9] - libgen.li
[Computer Languages 1980-jan vol. 5 iss. 3-4] - Introduction to automata theory, languages, and computation_ John E. Hopcroft and Jeffrey D. Ullman (Addison-Wesley Publishing C (1980) [10.1016_0096-0551(80)90011-9] - libgen.li
BOOK REVIEWS
We use the convention that the most difficultproblems are doubly starred, and prob-
lems of intermediate difficulty are identified by a single star. Exercises marked with an S
have solutions at the end of the chapter. We have not attempted to provide a solution
manual, but have selected a few exercises whose solutions are particularly instructive.
This text is designed to prepare the reader to write a variety of simple assembler lan-
guage programs quickly and "painlessly." Moreover, the text will allow the student to
actively participate, almost immediately, in the programming experience. The first com-
plete program is developed as early as Chapter 2.
There are no prerequisites to the use of this text. However, a basic understanding of
what a computer is and what is involved in programming will be helpful. In our experi-
ence, most students of assembler language have had some exposure to at least one
higher-level language.
The text is intended for use by students of Data Processing or Business, or by pro-
fessionals whose educational objectives include acquiring the facility to program in
assembler language for the solution of typical business problems. It should also afford an
excellent supplement for self-study to students of Computer Science who require a
knowledge of the machine best gained through the study of assembler language. It may
be used in a course which parallels Course B2, Computers and Programming in the
curriculum presented by the ACM Curriculum Committee on Computer Science in
Communications of the ACM, March 1968, pp. 151-197.
It has been our experience that formal explanation reinforced by well-done graphical
description leads to longer-lasting retention. Many explanations in the book are there-
fore highlighted by pictorial and/or graphical descriptions.
The book emphasizes problem solving; COBOL is treated as a tool for solving problems.
Each chapter is organized as a small case study, with a single problem introduced,
solved, and coded. We begin with a simple problem, the computation of an average, and
build to more and more complex problems. The basic idea is to explain one or two new
logical functions in each chapter, with the COBOL language introduced as it is needed to
solve a specific problem. The problem, not the features of the language, controls the pace
of the book.
Given that the language is COBOL, the COmmon Business Oriented Language, the
problems have been taken from the world of business. We have tried to select the most
familiar business data processing applications--payroll, inventory, billing, and report
generation--for our examples; students do not grasp basic concepts when those concepts
are presented in the context of an application they cannot understand. We have also tried
to be realistic, and realistic data processing applications are often quite complex. Even a
complex problem becomes relatively easy to solve, however, if it is first broken into a
series of simple problems and attacked in modular fashion. We have, therefore, used a
modular approach to program development throughout the text, starting with a general