1.3 Programming in C and C++

C and C++ are languages that allow direct access to the computer's
memory. Historically, they have been used for writing low-level systems
software, and applications where high-performance or control over
resource usage are critical. However, great care is required to ensure
that memory is accessed correctly, to avoid corrupting other
data-structures. This book describes techniques that will help in
detecting potential errors during compilation, but the risk in using
languages like C or C++ can never be eliminated.

In addition to C and C++ the GNU Project also provides other high-level
languages, such as GNU Common Lisp (gcl), GNU Smalltalk
(gst), the GNU Scheme extension language (guile) and the
GNU Compiler for Java (gcj). These languages do not allow the
user to access memory directly, eliminating the possibility of memory
access errors. They are a safer alternative to C and C++ for many
applications.