For the purposes of this book, you should be reasonably competent in at least one imperative (procedural) programming language. This includes Cand C++, Pascal, BASIC, and assembly, as well as languages like Ada, Modula-2, FORTRAN, and the like. You should be capable, on your own, of taking a small problem description and working through the design and implementation of a software solution for that problem. A typical semester orquarter course at a college or university (or several months' experience on your own) should be sufficient background for this book.
At the same time, this book is not language specific; its concepts transcend whatever programming language(s) you're using. To help make the examples more accessible to readers, the programming examples in this book will rotate among several languages (such as C/C++, Pascal, BASIC, and assembly). Furthermore, this book does not assume that you use or know any particular language. When presenting examples, this book explains exactly how the code operates so that even if you are unfamiliar with the specific programming language, you will be able to understand its operation by reading the accompanying description.
This book uses the following languages and compilers in various examples:
C/C++: GCC, Microsoft's Visual C++, Borland C++
Pascal: Borland's Delphi/Kylix
Assembly language: Microsoft's MASM, HLA (the High Level Assembler), Gas (on the PowerPC)
BASIC: Microsoft's Visual Basic
You certainly don't need to know all these languages or have all these compilers to read and understand the examples in this book. Often, the examples appear in multiple languages, so it's usually safe to ignore a specific example if you don't completely understand the syntax of the language the example uses.