A systems engineer is developing a real-time signal processing application for an embedded microcontroller. They are deciding whether to write the application in a high-level compiled language (such as C) or a low-level assembly language.
Select two statements from the options below that are true about using a high-level compiled language compared to a low-level assembly language for this development.
- A: Code written in a high-level compiled language will, once compiled, execute faster and occupy less storage on the microcontroller than highly optimized assembly code written for that same architecture.
- B: High-level compiled languages offer a high degree of machine independence, allowing the source code to be ported to a different CPU architecture with minimal modification, provided a compiler exists for the target architecture.
- C: A compiler translates the entire high-level source code into machine code prior to execution, whereas an assembler translates assembly code statement-by-statement during the program's execution.
- D: High-level compiled languages feature a higher level of abstraction from the hardware, making the code generally easier for humans to read, debug, and maintain compared to assembly.
- E: High-level compiled languages maintain a strict one-to-one mapping between each high-level statement and a single machine code instruction.
- F: If an error is found, a compiled program can be directly modified and executed immediately on the CPU without requiring any translation or compilation step.