All off-line programming in high-energy physics is carried out, for various reasons, in the Fortran 77 programming language. While this language offers certain advantages over its competitors, it does suffer from one serious defect, namely its lack of dynamic data structuring facilities. ... It is to overcome these limitations that the ZEBRA system has been designed and written. It allows not only a truely dynamic creation of data structures at execution-time, but also the added advantage of being able to manipulate those structures, and even to write them to an external storage medium and to recover them intact on some other computer. In order to achieve this, the user has to communicate with the ZEBRA system by (mostly) simple calls to ZEBRA routines, and by following a number of rules and conventions. Once a program has been written in this fashion, it becomes easy for anyone knowing rather few of the details to use and to modify the program, without having to worry about the side-effects of any changes he or she makes, and without having to recompile large sections of the code solely in order to obtain a few extra storage locations.