Glossary
CPU. Central Processing Unit. This is the hardware responsible for actually fetching instructions from its memory and performing them.
Debugging. The process of inspecting how a program currently works, so that you can isolate and repair faulty behavior.
Program. This is a very ambiguous word to pin down. Essentially, a program is any sequence of instructions which the CPU executes. This could be as small as a subroutine, or as large as an entire office suite.
RAM. An acronym standing for Random-Access Memory. It holds both the instructions and the data needed to implement a computer program. RAM differs from ROM in that you can alter its contents. Historical accident: it’s name is a bit of a misnomer, for ROM also supports random access.
ROM. An acronym standing for Read-Only Memory. It holds both the instructions and the data needed to implement a computer program. However, it differs from RAM in that its contents remain fixed; it cannot change. For this reason, we store a computer’s system software in ROM, so that it’s there when we turn the power to the computer on.
Routine. A very small, hopefully very well-defined program that focuses on achieving a single purpose.
System Software. This software provides the computer with its very first instructions when you apply power to the computer. Though not required to, it often also presents the user with its first interaction with the computer as well. For example, the Kestrel’s Machine Language Monitor currently serves as its system software.
Subroutine. A routine, but one which is called as a necessary component of another routine’s implementation.