"C" is the name of a high level programming language. Its name is just the one letter C.

It has been expanded into a very popular language C++.

What you learn about C can almost always be applied to C++.

Both C and C++ are available on almost every kind of computer system.

A programming language is used to write algorithms .

Although it is usually more concise and exact than English, such a language is closer to English than AL and thus easier to use.

However, it (like AL) must still be translated into ML before the computer can use the algorithm.

Machine language is the numerically coded language directly understood by the controller in the CPU.

Here is a good review .

Assembly language is a more readable language for representing ML instructions. It uses words and punctuations instead of numbers and is much more compact than English.

Here is a good review .

A compiler is a program which reads another program written in one computer language and translates that other program into ML.

The program it reads is called a source program. The ML program it produces is called an executable(aka code program ).

Since computers only understand their own dialect of ML and since most computer programmers do not, it is important to have a compiler so that the two can communicate.

An interpreter is a special kind of compiler that avoids storage of the ML translation.

An interpreter is a special kind of compiler that avoids storing the ML translation.

It nonetheless reads a source program and determines what its algorithms want to do.

Then it simply carries out the work of that source program directly itself.

This is possible since a working interpreter must already be in executable form so it can not only translate the instructions in the source algorithms, but it can also do them. Thus no ML translation is produced.

A program is an organized collection of algorithms that work together on some task or job.

When the algorithms are written in AL or in a high level language like C, then the program is called a source program.

When the algorithms are expressed in ML, then the program is called an executable program.

When information is expressed in the form of printable characters (i.e. letters, digits, punctuations marks, math symbols) it is called text.

Text can be stored in a computer using a special computer code called ASCII. It is then called ASCII text.

If the ASCII text is stored in a disk file, then that file is called an ASCII text file - often just text file for short.

Disk files that are not ASCII text are often called binary files - but in fact all disk files are binary files (in the general sense).

When a program is expressed in any language other than ML, it is called a source program.

If it is stored in this other language as an ASCII text file, then that file is called a source file.

A computer cannot directly use a source program.

The source program must first be translated into ML by a compiler. The resulting executable program can be loaded into the computer, which can directly understand and execute the steps of its algorithms.

When a program is expressed directly in ML, it is called an executable program.

If it is stored in ML form on a disk file, then that disk file is called an executable file (aka code file).

ONLY executable programs can be loaded into a computer's memory and directly run (i.e. executed).

Very few people can read and write ML - and most of those prefer not to.

Thus most ML programs are produced by translation (using a compiler) from a source program.

An IDE is a powerful system that provides many features involved in the creation, management, translation, and debugging of source programs.

An editor is provided to allow creating and changing source files.

A compiler is included to translate the source files into ML form

The IDE can load and execute the resulting ML executable translation.

The IDE can slow execution down to a single instruction at a time and allow inspection of the memory variables.

Programs are built out of algorithms expressed in a high level language such as C.

Large programs inevitably have mistakes in them.

These mistakes are called bugs.

Finding and removing them is called debugging.

It is a painful process involving lots of experience, reasoning, and sheer brute force persistance.

The experience only comes from doing lots of it - and you will.

Lack of reasoning power will drive you out of the profession - because it will take you too long to debug your work

Lack of persistance is its own punishment.