The book is organized into two parts. The first part (Chapters 0 to 9) is concerned with elements of PL/I. The second part (Chapters 10 to 26) introduces traditional and new algorithms.

The first part emphasizes fundamentals of structured programming through study of a subset of PL/I. The subset is concise, well-defined, and is easy to learn.

The first chapter outlines some historical aspects of computing. The second introduces the concept of algorithms, flowcharts, and complete working programs illustrating basic elements including conditional statements. Subsequent chapters cover numeric data, expressions and assignments, free format input and output (GET LIST and PUT LIST), formatted input and output including picture formats (GET EDIT and PUT EDIT), loops and conditional statements, statement grouping using simple DO-groups, structured loops including DO WHILE, declarations, arrays, debugging, string data concepts, subroutines, functions, and program structure. In this flexible text, some later chapters can be covered earlier, or may be omitted at first reading. For example, the chapter on string handling may be covered earlier if it is desired to provide practice in this area before others. The section on EDIT-directed input-output may be omitted, or covered later.

The importance of structured programming is stressed from the beginning. All of the example programs are enhanced by a uniformly-applied style of indenting both loops and conditionals.

The second part explores more PL/I and contains a detailed exposition on important algorithms, some traditional, some new. For most of these topics, no prior or special knowledge is assumed. Popular sort algorithms are examined: the Bubble Sort, Shell Sort, Heap Sort, Quicksort, and Hash Sort. Various search algorithms are studied: linear, binary, hash, binary search tree. The chapter on recursion commences with some short examples, and culminates with Quicksort and algorithms for space-filling curves. Algorithms for solving linear equations including tri-diagonal and banded systems (Gauss, Gauss-Siedel), matrix inversion, roots of polynomials are covered in detail. Algorithms for performing Fourier Transforms are included. The significant string search algorithms studied include the Knuth-Morris-Pratt, Rabin-Karp, Boyer-Moore, and Baeza-Yates-Gonnet. Graphics algorithms for creating fractals and space-fillling curves, reading and creating picture files (PCX and TIFF files), and data compression, are provided. The adventurous will find that the large bibliography includes many works appropriate for further reading, study or research.

The second part is not just algorithms. Some additional PL/I topics
are included: separate theme chapters are devoted to decimal and
complex arithmetic, file processing, list processing (including
binary search trees and the new strongly typed facilities of IBM
PL/I for OS/2, VisualAge PL/I for Windows, AIX, and Enterprise
PL/I for z/OS), text processing including string searching, recursion,
and the macro processor.

The most important area of exception
handling is included for its three benefits: to enable errors to
be detected, to enable error recovery to be performed, and to
provide debugging facilities.

Chapters 10 to 26 can be studied in any order, as they are mostly independent. They can be selected at will according to the reader's interests.

The reader is expected to run as many of the exercises as possible on his/her computer (there are over 240 exercises) since practice is essential in developing programming expertise.

The book will be found helpful as a reference. Appendices contain a summary of PL/I statements, a list of built-in functions, and algorithms for many of the new built-in functions. Comes with a floppy disc with the programs, subroutines, and functions from the book. ISBN 0-9596384-9-0

PART 1 - Introduction to PL/I

PART 2 - Algorithms and PL/I

See a list of the main algorithms.

Details: *Introduction to PL/I, Algorithms, and Structured Programming*
by R. A. Vowels, 3rd Edition, 1997, ISBN 0-9596384-9-0, 731 pages, A4 size.

For further information, contact r|o|b|i|n|5|1 at dodo dot com dot au

[remove the vertical bars, and translate the other words accordingly.]

Copyright (c) 1998 by R. A. Vowels. All rights reserved.

Updated 10th January 2005.