Software Types and Language Translators: Question 3
Syllabus 4.2
A start-up is building two products.
Product P is a tiny heart-rate sensor patch. Its firmware must react to the heart's electrical signal within a fraction of a millisecond, and it must directly control specialised timing circuits built into the patch.
Product Q is a phone app that counts a user's daily steps and displays a friendly weekly chart. It is being built quickly by a small team who plan to release versions for several different phone operating systems.
(a) State which type of language, high-level or low-level, is more suitable for writing Product P's firmware, and give two reasons for your choice. [3]
(b) State which type of language, high-level or low-level, is more suitable for writing Product Q's app, and give two reasons for your choice. [3]
Show worked solution Hide worked solution
Worked solution
Part (a): Choosing a language for Product P
Product P needs to respond to a real-world electrical signal within a fraction of a millisecond and control timing circuits directly, this calls for a low-level language.
- Reason 1: Low-level languages give direct manipulation of the hardware, which is exactly what is needed to control specialised timing circuits and react to signals as fast as possible.
- Reason 2: Because the patch is one fixed, unchanging piece of hardware, the normal disadvantages of low-level languages, harder to read and harder to debug, are a smaller price to pay than losing that precise hardware control by using a high-level language instead.
Part (b): Choosing a language for Product Q
Product Q is a fast-moving app with a small feature set, built by a small team who want it to run on several different phone operating systems, this calls for a high-level language.
- Reason 1: High-level languages are much easier to read, write and debug than low-level languages, which matters when a small team needs to build and fix features quickly.
- Reason 2: High-level languages are machine independent, so essentially the same source code can be translated to run on different phone operating systems, rather than writing and maintaining a separate low-level program for each one.
Final answers
- (a) Low-level language, direct manipulation of hardware for precise timing; the readability/debugging trade-off matters less for one fixed, unchanging device.
- (b) High-level language, easier and faster to write, debug and maintain; machine independence lets it run on several different phone operating systems.