Siksha Sarovar

Siksha Sarovar (sikshasarovar.com) is a free educational web application that helps students in India learn programming and prepare for academic and competitive exams. The platform offers structured coding courses (C, C++, Python, Java, HTML, CSS, PHP, Power BI, AI, Machine Learning, Data Science), complete university curriculum notes for BCA/MCA students with previous year question papers, Class 10 and Class 12 CBSE/HBSE school notes, and dedicated preparation material for SSC, UPSC, Banking, Railway and other government exams. Browsing the site is completely free and requires no account. Users may optionally sign in with Google solely to save their learning progress, quiz scores and personal preferences across devices.

Privacy Policy | Terms of Service | Contact Siksha Sarovar | About Siksha Sarovar

v4.0.9 · PWA
Siksha Sarovar logo
Siksha Sarovar
Your Learning Universe

Siksha Sarovar is a free e-learning platform for coding courses, BCA university notes and competitive exam preparation. Optional Google sign-in saves your learning progress across devices.

Initializing knowledge base…
Compiling modules 0%

Unit 2: System Software — Assemblers, Compilers & Interpreters

Lesson 13 of 34 in the free Fundamentals of IT & Computers notes on Siksha Sarovar, written by Rohit Jangra.

Unit II — System Software: Assemblers, Compilers & Interpreters

System software is a set of programs that manage and control computer hardware, enabling application software to run. It acts as the bridge between the user and the hardware. The key types of system software are translators: Assemblers, Compilers, and Interpreters.

---

What is System Software?

System software includes:

  • Language Translators — Assembler, Compiler, Interpreter
  • Operating System — Windows, Linux, macOS
  • Utilities — Disk management, antivirus, file managers
  • Device Drivers — Software to control hardware devices

---

Language Translation Concepts

Computers understand only machine language (binary). Programs written in assembly or high-level languages must be translated before execution.

Program TypeExample
Source CodeHuman-written code (C, Java, Assembly)
Object CodeTranslated machine code
ExecutableLinked, runnable program

---

Assembler

  • Translates Assembly Language (low-level, mnemonic code) into Machine Language (binary).
  • Assembly language uses mnemonics: MOV, ADD, JMP instead of binary opcodes.
  • One assembly instruction ↔ One machine instruction (1-to-1 translation).
  • The translated output is called object code.

Example: ADD R1, R210110001 00000010 (binary opcode)

---

Compiler

  • Translates entire high-level source code into machine code in one pass before execution.
  • Produces an independent executable file that can run without the compiler.
  • Errors are reported all at once after the full program is scanned.
  • Languages: C, C++, Fortran, Pascal

Compilation Process:

  1. Lexical Analysis
  2. Syntax Analysis (Parsing)
  3. Semantic Analysis
  4. Code Generation
  5. Code Optimisation → Object file

---

Interpreter

  • Translates and executes high-level source code line by line at runtime.
  • Does not produce an independent executable file.
  • Errors are reported immediately when encountered.
  • Slower than compiled code because translation happens every time the program runs.
  • Languages: Python, JavaScript (interpreted), BASIC, Ruby

---

Compiler vs Interpreter

FeatureCompilerInterpreter
TranslationWhole program at onceLine by line
OutputExecutable fileNo separate file
SpeedFaster executionSlower execution
Error reportingAfter full scanImmediate
ExamplesC, C++, FortranPython, JavaScript, BASIC
PortabilityLess portableMore portable
Key Takeaway: Assemblers translate assembly to machine code (1-to-1). Compilers translate entire programs before execution (fast, standalone). Interpreters translate line-by-line at runtime (flexible, immediate errors). This distinction is a classic exam question.