The following is reprinted from the WATBOL Implementation Guide For DOS/VS, November, 1983.

WATBOL Implementation Guide For DOS/VS

Computer Systems Group

University of Waterloo

Waterloo, Ontario, Canada

DESIGN AND IMPLEMENTATION: R. J. Hurdal, W.R. Milne, C.R. Zarnke

(C) Copyright July 1972 University of Waterloo


The members of the WATBOL Project would like to thank Gus German for his help in the original design of the WATBOL Compiler and Bob Zarnke, both for his help in the compiler's design and for the great amount of work which he put into the original implementation of the WATBOL Compiler. We would also like to express our appreciation to the following people for their assistance in the realization and refinement of the compiler: Rod Cooper, Don Cowan, Carl Kohn, Ray Strong, Sandra Ward, Terry Wilkinson, Eric Mackie, Romney White and many more (whose names are too numerous to mention).

J. W. Graham, R.J. Hurdal, W.R. Milne


WATBOL is the University of Waterloo COBOL compiler. It was designed after the manner of WATFOR in that it was to compile COBOL programs quickly and give error diagnostics immediately after the statement that was in error. Also, it was designed to help students debug their own programs without the aid of a tutor.

Most other vendor compilers were designed with the professional programmer in mind and for this reason, the compilers concentrate highly on the area of efficient object code. This often means that the compilers are large, complicated and slow. Also, we found that a student compiled his program as many as 10 times before getting a program capable of being run. This meant that much of the time being spent to optimize code was in fact wasted because the programs never ran anyway. Once runnable, such programs often have many more errors that require execution time debugging. The WATBOL compiler strikes a balance between good code and compile time efficiency.

In order to avoid teaching students the very complicated process of reading an abend dump, the approach of the WATBOL compiler is never to produce one. This is done by producing object code which, for example, checks the subscript on a subscripted data-item to see that it is in range. If it is not, an error message is produced. Without such checking, such a reference could destroy the compiler and abort the remainder of the WATBOL batch of JOBS. The compiler also checks for what is called an undefined data reference. This is where a data-item is referred to before it is assigned a value. Although such an invalid reference would not crash the compiler, it does make life much easier for the beginning COBOL programmer (others also). Where object code efficiency is required, the various checking options can be turned off.

The WATBOL compiler is a full compiler in the sense that it

DOS/VS WATBOL is an implementation of the OS WATBOL compiler in which the SYSTEM INTERFACE routines have been replaced by their DOS/VS equivalents (except as specified in Unsupported Features in the User's Guide section VI-i). It is therefore important to recognize that the compiler proper is unchanged and that it is still a compiler for the OS ANS COBOL language. It is NOT a compiler for the DOS/VS ANS COBOL LANGUAGE. Therefore, DOS/VS COBOL programs that have DOS/VS dependencies such as in the ASSIGN clause will not compile under DOS/VS WATBOL without errors.