Compilers, Interpreters and Assembler

How human-readable code gets translated into instructions a computer can execute.

Compilers, Interpreters and Assembler

Computer केवल Machine Language (मशीन भाषा) में दिए गए instructions को directly समझ और execute कर सकता है। लेकिन programmers के लिए machine language में program लिखना कठिन होता है। इसलिए programming languages में लिखे गए programs को machine-understandable form में बदलने के लिए Language Translators का उपयोग किया जाता है।

Language Translators: ऐसे system software जो programming language में लिखे गए instructions को computer द्वारा समझे जाने योग्य form में translate करने में सहायता करते हैं।

What is a Language Translator?

Language Translator एक system software है जो एक programming language में लिखे गए source program को दूसरी language या machine-understandable form में translate करता है।

Programmer सामान्यतः High-Level Language या Assembly Language में program लिखता है। Computer hardware को अंततः machine-level instructions की आवश्यकता होती है। इसलिए source program और machine-level execution के बीच translation की आवश्यकता होती है।

Language Translators के प्रमुख प्रकार हैं:

  1. Assembler
  2. Compiler
  3. Interpreter
Important: Assembler, Compiler और Interpreter तीनों language translation और program execution से संबंधित महत्वपूर्ण system software हैं।

Programming Languages and Translation

Programming languages को broadly Low-Level Language और High-Level Language में समझा जा सकता है। Assembly Language low-level language का उदाहरण है, जबकि C, C++, Java और Python जैसी languages high-level programming languages के उदाहरण हैं।

इन languages में लिखे गए programs को computer hardware द्वारा सीधे execute करने के लिए उपयुक्त machine-level form में translate या process किया जाता है।

Language Example Translator
Assembly Language Assembly instructions Assembler
High-Level Language C, C++ Compiler
High-Level Language Python Interpreter-based execution

1. Assembler

Assembler एक language translator है जो Assembly Language में लिखे गए program को machine-level code में translate करता है।

Assembly Language में instructions को symbolic names या mnemonics के रूप में लिखा जाता है। Assembler इन instructions को processor द्वारा समझे जाने योग्य machine instructions में convert करने में सहायता करता है।

Assembler: Assembly Language → Machine Code

Features of Assembler

  • Assembly Language को machine-level code में translate करता है।
  • Assembly language instructions और mnemonics को process करता है।
  • Symbols और labels को appropriate machine addresses से associate करने में सहायता करता है।
  • Assembly program में syntax और अन्य errors की पहचान करने में सहायता करता है।
  • Processor-specific assembly instructions के साथ closely associated होता है।

Example of Assembler

मान लीजिए किसी assembly language program में किसी processor के लिए instructions लिखी गई हैं। Programmer के लिए ये instructions symbolic form में समझने योग्य हो सकती हैं, लेकिन processor को machine-level instructions की आवश्यकता होती है। Assembler इन assembly instructions को machine code में translate करने में सहायता करता है।

Assembly Program → Assembler → Machine Code

2. Compiler

Compiler एक language translator है जो high-level programming language में लिखे गए source program को target language या machine-oriented code में translate करता है। Compiler सामान्यतः पूरे source program को analysis और translation process से गुजराता है।

Compilation के दौरान compiler program में मौजूद syntax और अन्य errors की जानकारी भी प्रदान कर सकता है।

Examples: C और C++ जैसे languages के programs को सामान्यतः compiler द्वारा compile किया जाता है।

Compiler: High-Level Source Program → Compiler → Target/Object/Machine-oriented Code

How a Compiler Works?

Compiler source program को analyze करके उसे target form में translate करता है। Compilation process में source code की syntax और semantics से संबंधित analysis किया जा सकता है। इसके बाद appropriate target code generate किया जाता है।

सामान्य रूप से compilation process को निम्नलिखित flow से समझा जा सकता है:

Source Code → Compilation → Target/Object Code → Execution

Features of Compiler

  • High-level language में लिखे source program को translate करता है।
  • पूरे program का analysis और translation compilation stage में कर सकता है।
  • Program में मौजूद errors की information प्रदान करता है।
  • Target या object code generate कर सकता है।
  • Compiled program को बाद में execute किया जा सकता है, depending on the language and development environment।
  • Compiler program optimization की techniques का उपयोग कर सकता है।

3. Interpreter

Interpreter एक language processing system है जो source program को execution के दौरान translate और execute करता है। यह program के statements या instructions को process करके उनके execution में सहायता करता है।

Interpreter-based execution में source program को सामान्यतः अलग से complete machine-code executable में compile करने की आवश्यकता नहीं होती।

Example: Python को सामान्यतः interpreter-based programming environment के उदाहरण के रूप में पढ़ाया जाता है।

Interpreter: Source Program → Translate/Execute During Execution

How an Interpreter Works?

Interpreter program के execution के दौरान source code को process करता है और instructions को execute करने में सहायता करता है। यदि execution के दौरान किसी statement में error मिलता है, तो program उस point पर रुक सकता है या error report कर सकता है।

इसे सरल flow के रूप में इस प्रकार समझ सकते हैं:

Source Code → Interpreter → Translation + Execution

Features of Interpreter

  • Source program को execution के दौरान process करता है।
  • Instructions या statements को translate और execute करने में सहायता करता है।
  • Program में error मिलने पर execution उस point पर रुक सकता है।
  • Program को test और debug करने में उपयोगी हो सकता है।
  • अलग complete executable machine-code file की आवश्यकता हमेशा नहीं होती।

Compiler and Interpreter

Compiler और Interpreter दोनों high-level programming languages के programs को process करने में उपयोग किए जाते हैं, लेकिन उनके working methods अलग होते हैं।

Compiler Interpreter
Program का translation compilation stage में करता है। Program को execution के दौरान process करता है।
सामान्यतः पूरे source program का analysis करता है। Statements/instructions को execution के दौरान process करता है।
Target या object code generate कर सकता है। आमतौर पर direct execution-oriented processing करता है।
Compilation के बाद program को execute किया जा सकता है। Translation और execution closely connected होते हैं।
Compilation के दौरान errors report किए जाते हैं। Execution के दौरान error मिलने पर program रुक सकता है।

Assembler, Compiler and Interpreter

Assembler, Compiler और Interpreter तीनों language processing से संबंधित हैं, लेकिन इनका input और working method अलग-अलग होता है।

Feature Assembler Compiler Interpreter
Input Assembly Language High-Level Language High-Level Language
Main Work Assembly instructions को translate करना Source program को target code में translate करना Execution के दौरान source program को process करना
Output/Result Machine-level code Object/Target code Program execution
Processing Assembly program का translation Compilation process Translation और execution के दौरान processing
Example Assembly language program C/C++ program Python-based execution environment

Source Code

Source Code वह program code है जो programmer द्वारा किसी programming language में लिखा जाता है। Source code human-readable form में होता है और इसे compiler, interpreter या assembler द्वारा process किया जा सकता है, depending on the language.

Example: C language में programmer द्वारा लिखा गया program source code कहलाता है।

Source Code: Programmer द्वारा programming language में लिखा गया मूल program।

Object Code

Object Code वह translated code है जो compiler या assembler द्वारा source program को process करने के बाद generate किया जा सकता है। यह सामान्यतः machine-oriented binary form में होता है और आगे linking तथा execution process में उपयोग किया जा सकता है।

Source Code → Compiler/Assembler → Object Code

Machine Code

Machine Code instructions का वह form है जिसे processor सीधे execute कर सकता है। Machine code सामान्यतः binary digits, अर्थात 0 और 1, के रूप में represent किया जाता है।

Assembler और compiler जैसे translators source programs को machine-oriented form में translate करने में सहायता करते हैं।

Machine Code: Processor द्वारा directly execute किए जाने योग्य instruction form।

Translation Process

Programming language के आधार पर translation process अलग हो सकता है। Assembly language के लिए Assembler का उपयोग किया जाता है, जबकि high-level languages के लिए Compiler या Interpreter-based processing का उपयोग किया जा सकता है।

Source Translator Result
Assembly Language Assembler Machine/Object Code
High-Level Language Compiler Object/Target Code
High-Level Language Interpreter Translation और Execution

Advantages of Compiler

  • Source program का systematic translation करता है।
  • Compilation के बाद generated target code को बार-बार execute किया जा सकता है, जहाँ applicable हो।
  • Program optimization के माध्यम से execution efficiency improve की जा सकती है।
  • Compilation के दौरान कई errors की information प्राप्त की जा सकती है।

Advantages of Interpreter

  • Program को जल्दी test करने में उपयोगी हो सकता है।
  • Execution के दौरान errors को identify करना आसान हो सकता है।
  • Interactive programming environments में उपयोगी होता है।
  • Program को step-by-step process करने की सुविधा मिल सकती है।

Advantages of Assembler

  • Assembly language को machine code में translate करता है।
  • Assembly programmers को symbolic instructions का उपयोग करने की सुविधा देता है।
  • Processor-specific instructions को machine-level form में convert करने में सहायता करता है।
  • Assembly programs में symbols और labels को resolve करने में सहायता करता है।

Compiler, Interpreter and Assembler – Key Difference

Assembler: Assembly Language → Machine Code

Compiler: High-Level Language → Target/Object Code

Interpreter: High-Level Language → Translation + Execution

Example of Program Translation

मान लीजिए एक programmer किसी computer system के लिए program लिखता है। यदि program Assembly Language में है, तो उसे machine code में translate करने के लिए Assembler का उपयोग किया जा सकता है। यदि program C language में है, तो Compiler source program को process करके target/object code generate करने में सहायता कर सकता है। यदि program interpreter-based environment में execute किया जा रहा है, तो Interpreter execution के दौरान source instructions को process और execute करने में सहायता करता है।

Program Translator Process
Assembly Program Assembler Assembly instructions को machine code में translate करना
C Program Compiler Source code को compile करके target/object code बनाना
Python Program Interpreter-based Environment Execution के दौरान program को process करना

Why are Language Translators Important?

Language Translators programming को सरल और practical बनाते हैं। यदि programmers को हर program machine language में लिखना पड़े, तो programming बहुत कठिन और time-consuming हो जाएगी। High-level और assembly languages programmers को अधिक readable instructions लिखने की सुविधा देती हैं। Translators इन instructions को computer के लिए suitable form में process करने में सहायता करते हैं।

Language Translators के प्रमुख महत्व निम्नलिखित हैं:

  • Human-readable programs को machine-understandable form में translate करने में सहायता करते हैं।
  • Programming को आसान और systematic बनाते हैं।
  • Program errors को identify करने में सहायता करते हैं।
  • Program development और testing को आसान बनाते हैं।
  • Different levels of programming languages को computer execution से connect करते हैं।

Important Points

  • Assembler, Compiler और Interpreter language processing से संबंधित software हैं।
  • Assembler Assembly Language को machine-level code में translate करता है।
  • Compiler high-level source program को target/object code में translate करता है।
  • Interpreter execution के दौरान source program को process और execute करने में सहायता करता है।
  • Source Code programmer द्वारा लिखा गया original program होता है।
  • Object Code translated code होता है जो compiler या assembler द्वारा generate किया जा सकता है।
  • Machine Code processor द्वारा directly execute किया जा सकता है।
  • Compiler और Interpreter दोनों high-level programming languages के साथ उपयोग किए जा सकते हैं।
  • Assembler मुख्य रूप से Assembly Language के लिए उपयोग किया जाता है।
  • Compiler compilation stage में translation करता है।
  • Interpreter translation और execution को closely combine करता है।

Board Focus

Exam के लिए याद रखें:
Language Translator → Program को suitable machine-understandable form में translate करने वाला software
Assembler → Assembly Language को Machine Code में translate करता है
Compiler → High-Level Source Program को Target/Object Code में translate करता है
Interpreter → Execution के दौरान Source Program को translate और execute करता है
Source Code → Programmer द्वारा लिखा गया original program
Object Code → Compiler/Assembler से प्राप्त translated code
Machine Code → Processor द्वारा directly executable instruction form

Board Important Questions

Very Short Answer Questions

Q1. Language Translator क्या है?

Answer: Language Translator ऐसा system software है जो programming language में लिखे program को दूसरी suitable या machine-understandable form में translate करने में सहायता करता है।

Q2. Assembler क्या है?

Answer: Assembler Assembly Language में लिखे program को machine-level code में translate करने वाला language translator है।

Q3. Compiler क्या है?

Answer: Compiler high-level source program को target या object code में translate करने वाला language translator है।

Q4. Interpreter क्या है?

Answer: Interpreter source program को execution के दौरान process, translate और execute करने वाला language processing system है।

Q5. Source Code क्या है?

Answer: Programmer द्वारा किसी programming language में लिखा गया original program Source Code कहलाता है।

Q6. Object Code क्या है?

Answer: Compiler या Assembler द्वारा source program को translate करने के बाद प्राप्त translated code Object Code कहलाता है।

Q7. Machine Code क्या है?

Answer: Machine Code instructions का वह form है जिसे processor directly execute कर सकता है।

Q8. Assembly Language को machine code में कौन translate करता है?

Answer: Assembly Language को machine code में Assembler translate करता है।

Short Answer Questions

Q9. Compiler और Interpreter में अंतर बताइए।

Compiler Interpreter
Translation compilation stage में करता है। Translation execution के दौरान करता है।
Source program का व्यापक analysis कर सकता है। Program को statements/instructions के execution के साथ process करता है।
Target/Object code generate कर सकता है। Translation और execution closely connected होते हैं।
Compilation के दौरान errors report किए जाते हैं। Execution के दौरान error मिलने पर program रुक सकता है।

Q10. Assembler, Compiler और Interpreter में अंतर बताइए।

Assembler Compiler Interpreter
Assembly Language के लिए High-Level Language के लिए High-Level Language के लिए
Machine code में translate करता है Target/Object code generate कर सकता है Execution के दौरान translate और execute करता है
Assembly instructions को process करता है Source program का compilation करता है Source program को execution के दौरान process करता है

Q11. Compiler का क्या महत्व है?

Answer: Compiler high-level programming language में लिखे source program को target/object code में translate करने में सहायता करता है। यह program का analysis करता है, errors की information देता है और applicable होने पर optimized target code generate करने में सहायता कर सकता है।

Q12. Interpreter का क्या महत्व है?

Answer: Interpreter program को execution के दौरान process, translate और execute करने में सहायता करता है। यह interactive programming, testing और debugging environments में उपयोगी हो सकता है तथा execution के दौरान errors को identify करने में सहायता करता है।

Long Answer Questions

Q13. Compiler को विस्तार से समझाइए।

Answer: Compiler एक language translator है जो high-level programming language में लिखे source program को target या object code में translate करता है। यह source program का analysis करता है और compilation process के दौरान syntax तथा अन्य errors की information प्रदान कर सकता है। Compilation के बाद generated target code को appropriate execution environment में execute किया जा सकता है। C और C++ जैसी languages के लिए compilers commonly used होते हैं।

Q14. Interpreter को उदाहरण सहित समझाइए।

Answer: Interpreter एक language processing system है जो source program को execution के दौरान process, translate और execute करने में सहायता करता है। इसमें translation और execution closely connected होते हैं। यदि execution के दौरान किसी statement में error मिलता है, तो program उस point पर रुक सकता है और error report कर सकता है। Python को सामान्यतः interpreter-based execution के उदाहरण के रूप में पढ़ाया जाता है।

Q15. Assembler क्या है? इसके कार्य समझाइए।

Answer: Assembler एक language translator है जो Assembly Language में लिखे program को machine-level code में translate करता है। यह assembly instructions, mnemonics, symbols और labels को process करने में सहायता करता है तथा processor के लिए suitable machine instructions तैयार करता है।

Q16. Compiler, Interpreter और Assembler की तुलना कीजिए।

Answer: Assembler Assembly Language को machine-level code में translate करता है। Compiler high-level source program को compilation process के माध्यम से target या object code में translate करता है। Interpreter high-level source program को execution के दौरान process, translate और execute करने में सहायता करता है। इसलिए तीनों translators का मुख्य उद्देश्य program को computer execution से जोड़ना है, लेकिन उनके input और working methods अलग-अलग हैं।

Previous Year Questions – Bihar Board

Quick Revision

  • Assembler: Assembly Language → Machine Code
  • Compiler: High-Level Source Program → Target/Object Code
  • Interpreter: Source Program → Translation + Execution
  • Source Code: Programmer द्वारा लिखा गया original program
  • Object Code: Translated code generated by compiler/assembler
  • Machine Code: Processor द्वारा directly executable instructions
  • Language Translator: Program को suitable machine-understandable form में translate करने वाला software
One-Line Revision: Assembler Assembly Language को machine code में translate करता है, Compiler high-level source program को target/object code में translate करता है, जबकि Interpreter program को execution के दौरान process, translate और execute करने में सहायता करता है।

Practice Questions

  1. Language Translator क्या है?
  2. Assembler क्या है?
  3. Compiler क्या है?
  4. Interpreter क्या है?
  5. Source Code और Object Code में अंतर बताइए।
  6. Machine Code से आप क्या समझते हैं?
  7. Assembler और Compiler में क्या अंतर है?
  8. Compiler और Interpreter में क्या अंतर है?
  9. Assembler, Compiler और Interpreter की तुलना कीजिए।
  10. Compiler के प्रमुख कार्य लिखिए।
  11. Interpreter के प्रमुख कार्य लिखिए।
  12. Assembler की आवश्यकता क्यों होती है?
  13. Language Translators computer programming में क्यों महत्वपूर्ण हैं?
  14. Source Code से Machine Code तक translation process को समझाइए।
  15. Compiler, Interpreter और Assembler को उदाहरण सहित विस्तार से समझाइए।
Lesson 10 of 39
On This Page