C and Objective-C
When you run a program, a file is copied from the file system into memory (RAM), and the
instructions in that file are executed by your computer. Those instructions are inscrutable to humans.
So, humans write computer programs in a programming
language. The very lowest-level programming
language is called
. In assembly code, you describe every step that the CPU (the
computer’s brain) must take. This code is then transformed into
(the computer’s native
tongue) by an
Assembly language is tediously long-winded and CPU-dependent (because the brain of your new iMac
can be quite different from the brain of your well-loved, well-worn PowerBook). In other words, if you
want to run the program on a different type of computer, you will need to rewrite the assembly code.
To make code that could be easily moved from one type of computer to another, we developed “high-
level languages.” With high-level languages, instead of having to think about a particular CPU, you
can express the instructions in a general way, and a program (called a
" ) will transform that
code into highly-optimized, CPU-specific machine code. One of these high-level languages is C. C
programmers write code in the C language, and a C compiler converts the C code into machine code.