System Software - machine, assembly and high-level languages, compilers and interpreters, loading, linking and relocation, macros, debuggers - Question Bank
1. What is a 'macro processor' primarily concerned with?
2. Which system software is responsible for combining object files and resolving external references to create an executable file?
3. Which component of a compiler is responsible for recognizing keywords, identifiers, and operators?
4. What is the purpose of a 'debugger'?
5. The process of adjusting memory addresses in a program so it can be loaded at a different location in memory is called:
6. What is the main advantage of using assembly language over machine language?
7. Which of the following is a typical output of the 'semantic analysis' phase of a compiler?
8. What is the primary role of an interpreter in executing a program?
9. Which language is considered the 'lowest-level' programming language, consisting of binary or hexadecimal instructions?
10. In debugging, what is the purpose of 'inspecting variables'?
11. What is a 'macro expansion'?
12. What is the advantage of 'dynamic linking' over 'static linking'?
13. A 'loader' is a system software responsible for:
14. What does 'linking' in the context of system software refer to?
15. Which phase of compilation is responsible for type checking and ensuring that the program's logic is sound?
16. What is the output of a compiler?
17. What is the main challenge of programming in machine language?
18. Which of the following is a form of static linking?
19. What is the 'call stack' used for in program execution and debugging?
20. In debugging, what does 'stepping through' a program mean?
21. What is the primary goal of code optimization in a compiler?
22. Which system software translates a program written in assembly language into machine code?
23. What is the benefit of using an interpreter for program development?
24. Which phase of compilation is responsible for generating target machine code?
25. What is the output of the lexical analyzer?
26. Which of the following is NOT a typical phase of compilation?
27. A macro definition in assembly language typically includes:
28. What is the purpose of 'relocation bits' in object files?
29. In the context of loading, what is 'dynamic linking'?
30. What is the role of the loader in an operating system?
31. Which of the following is a disadvantage of interpreters compared to compilers?
32. An interpreter typically executes a program by:
33. Which type of language uses mnemonics to represent machine instructions?
34. What is the main advantage of using high-level languages over machine languages?
35. Which of the following is an example of a common high-level programming language?
36. What is the purpose of the symbol table in a compiler?
37. Which phase of compilation is responsible for checking if the program adheres to the grammar rules of the programming language?
38. In the context of compilers, what is an Abstract Syntax Tree (AST)?
39. Which debugging technique allows a programmer to pause the execution of a program at a specific line of code?
40. What is the primary function of a debugger?
41. A macro processor typically performs which of the following actions?
42. What is the purpose of a macro in assembly language?
43. Relocation is a process performed by the loader to adjust memory addresses in a program so that it can be loaded into a different memory location than originally specified.
44. Which of the following best describes the role of a linker?
45. What does the lexical analyzer (scanner) do in a compiler?
46. Which compiler phase is responsible for converting the source code into an intermediate representation?
47. What is the main difference between a compiler and an interpreter?
48. Which of the following is a characteristic of high-level languages compared to assembly languages?
49. What is the primary function of an assembler?
50. Which type of programming language is closest to the hardware and requires a deep understanding of the machine's architecture?