## Memory and Addressability

The way in which a computer identifies memory locations is known as addressability. The width of the address bus determines how many memory locations can be addressed. The number of memory locations a computer can access is 2 to the power of the number of bits on the address bus, so an 8 bit address bus can access 256 memory locations, and a 16 bit address bus can access 65536 memory locations.

To calculate the total addressable memory of a computer, multiply the number of storage locations by the size of each storage location. For example, a computer with a 32 bit address bus and a 16 bit data bus would be:

2 to the power of 32 times 16

= 68719476736 bits

= 8GB

## Representaion of Real Numbers

Standard form is a scientific notation for representing numbers. Any number can be represented in the form: mantissa x base to the power of the exponent. The mantissa is the whole number without the decimal point. The exponent is the number of places the decimal point needs to be moved so that it is on the left hand side.

For example, the number **101011.01** could be stored using 8 bits for the manissa and 4 bits for the exponent as follows:

- The mantissa would be
**10101101** - The exponent is
**0110**, as the decimal point has moved 6 places to the left - The number would be stored as
**10101101 0110**

## Languages and Environments

**High and Low Level Languages:**

Programming languages which are similar to English are called high level languages. They use words such as if, then, else and repeat, so humans can understand them. Only low level languages, such as binary, can be understood by computers.

**Macros:**

Macros work by recording a series of key presses and assigning a keyboard command to them, which can later be used to carry out functions more quickly. This way, complex commands can be carried out with a single keyboard short-cut.

**Procedures and Functions:**

Procedures and functions are two kinds of subroutine. A procedure produces an effect, and a function produces a value.

## Analysis, Design and Implementation

The first stage of the software development process is analysis. This stage involves interviewing the client to get a clear understanding of the problem, and to produce a software specification. The software specification is a legal agreement between the analyst and the client, with a clear statement of how the program should work.

The second stage is design. Completing this stage can make the next one easier, as the program is broken into smaller chunks. The purpose of this stage is to create an algorithm for the program. Three types of design notation are flowchart, structure diagram and pseudocode.

In the third stage, implementation, one of three types of programming language will be used: procedural, declarative or event-driven. The language used will have either sequence, selection or iteration as a control structure. Once the program has been implemented, it should be:

- Correct
- Maintainable
- Reliable
- Readable
- Portable
- Efficient
- Robust