Challenge Technical Guide - C++ Background

History: The history of C++ is complex to follow, as you will see ...

In the 1960's there was a language called BCPL (Basic Combined Programming Language), of which a language called "B" was derived. Note that "B" is shortened down from "BCPL".

AT&T Bell Labs expanded upon "B" to create a language called "C". It seemed natural to call this next language "C", since C follows B in the alphabet.

C was written to escape the difficulties of programming in assembly language. Assembly language was slightly better than programming in machine code. Machine code is essentially programming in ones and zeros!.

In 1985, AT&T Bell Labs decided to expand upon C, and add features such as object orientation and data abstraction. Instead of naming the new language "D", the Bell Labs group named it C++.

In the C and C++ languages, x++ means given a variable x, add one to the current value of x. So you can see now, that in terms programming, "C++" and "D" really mean the same thing, since D is one charachter up from C!

The Programming Language: To write any program, you must either understand the machine code of your computer, or use a "high level" language such as C++.

With these higher level languages we start by using a text editor (such as pico) to enter our program into a file. This file, which is in English words and phrases, must then be changed into "machine code" a language which can be best described as ones and zeros. This is the language computers really understand, not English (or Spanish, or French, etc.)

To get this machine code, we convert the original file directly into machine code by "compiling" the source code. On mode, you compile code by typing "CC" or "g++" (no quotes) followed by the source file name. The compiler will create an executable file in machine code. By default, this file will be named "a.out". In the tutorial, you will learn how to give your executable file a more descriptive name.


New Mexico High School Supercomputing Challenge
Coordinated by Los Alamos National Laboratory and New Mexico Technet
Questions? e-mail: consult