Which language uses the symbolic representation of machine codes needed to program a particular processor or processor family?
- (a)Machine Language
- (b)Assembly Language
- (c)High-Level Language
- (d)All of the above
Correct — B, Assembly Language. The stem gives two clues and both point the same way. 'Symbolic representation of machine codes' is the textbook description of assembly language, which is often literally called symbolic machine code: instead of the bit pattern a processor executes, the programmer writes a short mnemonic such as MOV, ADD or JMP, together with symbolic names for registers and memory locations, and an assembler translates each of those lines into the corresponding machine instruction. The correspondence is close to one-to-one, which is what separates assembly from anything higher up. The second clue, 'needed to program a particular processor or processor family', settles it. Assembly is written against an instruction set, so the assembly for an Intel x86 processor is not the assembly for an ARM processor, and code written for one will not assemble for the other. That processor-bound quality is a defining property of the language rather than an inconvenience of it — assembly is used precisely where the programmer needs to reach the hardware directly, as in device drivers, bootloaders, interrupt handlers and tight timing loops.
- (a)Machine Language — Machine language is the binary the processor actually executes. It is the thing being represented, not a symbolic representation of it, so it fails the stem's first condition even though it passes the second.
- (c)High-Level Language — A high-level language such as C, Java or Python is written in terms of variables, expressions and control structures rather than machine instructions, and is deliberately portable across processors — the opposite of being tied to a particular processor family.
- (d)All of the above — Fails because two of the three do not fit. 'All of the above' can only be right when every listed item satisfies the stem, and machine language and high-level languages each break one of its two conditions.
Programming languages sit at three levels. Machine language is the binary instruction stream a processor decodes and executes directly. Assembly language sits one step above it: each statement is a mnemonic standing for one machine instruction, with symbolic names for registers, memory addresses and labels, and an assembler performs the translation. High-level languages sit above that again — C, Java, Python and the rest — and are compiled or interpreted into machine code, with the compiler taking responsibility for register allocation, addressing and instruction selection. Moving up the levels buys readability and portability; moving down buys direct control of the hardware and, at the extreme, the ability to know exactly which instructions run.
Papers test this distinction by describing one level and offering all three, so the reliable method is to hold one distinguishing property for each. Machine language is binary and unreadable. Assembly language is symbolic and processor-specific and needs an assembler. A high-level language is problem-oriented and processor-independent and needs a compiler or an interpreter. Note the difference between an assembler, which translates assembly to machine code, and a compiler, which translates a high-level language; both produce machine code but from very different inputs. A related trap in the same family of questions is the word 'low-level', which covers both machine and assembly language, so a stem that says only 'low-level' is not enough to choose between them — this stem says more, and the extra words decide it.
- Assembly language is also called symbolic machine code; each statement corresponds very closely to one machine instruction.
- It is specific to an instruction set, so assembly written for one processor family will not run on another.
- The translator from assembly to machine code is an assembler; the translator from a high-level language is a compiler or an interpreter.
- Assembly first appeared in the late 1940s and survives where direct hardware control or exact timing is needed — bootloaders, device drivers, interrupt handlers.
- High-level languages are deliberately processor-independent, which is what makes the same source compile for different architectures.
- Treating machine language and assembly language as the same thing. One is the binary itself, the other a symbolic notation for it.
- Assuming any low-level language is portable. Assembly is bound to the instruction set it was written for.
- Picking 'All of the above' on a definition question. It is right only when every listed item satisfies every condition in the stem.
As a definition-to-name item on one of the three language levels, or as a match item pairing a language with its translator.
The memory of a computer is commonly expressed in terms of Kilobytes or Megabytes. A byte is made up of
- (a) eight binary digits
- (b) eight decimal digits
- (c) two binary digits
- (d) two decimal digits
Answer(a) eight binary digits
The same layer of the machine, one step lower. A byte is eight bits, and it is those bit patterns that assembly language exists to write in a form a person can read.
Which one of the following is not an application software?
- (a) Spreadsheet
- (b) AutoCAD
- (c) MS PowerPoint
- (d) Linker
Answer(d) Linker
The neighbouring classification. A linker belongs with the assembler and the compiler among the tools that build a program, rather than with the packages an end user runs, and telling those two families apart is the same skill this item wants.
- practice — not a real PYQ
A program written in assembly language is converted into machine code by which one of the following?
- (a)Compiler
- (b)Assembler
- (c)Interpreter
- (d)Loader
Answer(b) Assembler — a compiler translates a high-level language, an interpreter executes it statement by statement, and a loader places a ready program in memory.
- practice — not a real PYQ
Which one of the following is a property of a high-level programming language but not of assembly language?
- (a)It is written using mnemonics
- (b)It corresponds one-to-one with machine instructions
- (c)It is largely independent of the processor it runs on
- (d)It executes without any translation
Answer(c) It is largely independent of the processor it runs on — portability is what high-level languages buy, and it is exactly what assembly language gives up.