Software Types and Language Translators: Question 3

Syllabus 4.2

Structured 6 marks

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.