WATFIV, or WATerloo FORTRAN IV, developed at the University of Waterloo, Canada is an implementation of the Fortran computer programming language. It is the successor of WATFOR.
WATFIV was used from the late 1960s into the mid-1980s. WATFIV was in turn succeeded by later versions of WATFOR. Because it could complete the three usual steps ("compile-link-go") in just one pass, the system became popular for teaching students computer programming.
In the early 1960s, newly formed computer science departments started university programs to teach computer programming languages. The Fortran language had been developed at IBM, but suffered from slow and error-prone three-stage batch processing workflow. In the first stage, the compiler started with source code and produced object code. In the second stage, a linker constructed a complete program using growing libraries of common functions. Finally, the program was repeatedly executed with data for the typical scientific and business problems of customers. Each step often included a new set of punched cards or tape. Students, on the other hand, had very different requirements. Their programs were generally short, but usually contained errors, resulting in time-consuming repetition of the steps and confusing "core dumps". Once their programs worked correctly, they were turned in and not run again.
Here is an alternative interpretation of the way things were. As a student, you first spent time on paper writing your program, knowing that each line was restricted to the number of columns on a punch card. You then had to go to a keypunch machine to turn these commands into a series of punch cards which you could then submit to the appropriate office as a "job". So you had at least 2 sources of error, one your logic and syntax, the other typographical errors as you used the keypunch machine. You would submit your job one day and pick up the output the next. Output then, of course, consisted of some sort of printout from a dotmatrix printer. You might get what you intended, or you might get some truncated output indicating your program contained too many errors to run, or you might get pages and pages of output because you created some never-ending loop, which the operator at some point would cut off. So it at the least would take a day for you to find out you had absolutely failed, after which it was your job alone to go through your commands line by line to find the error(s).