Language Translators क्या हैं? Compiler, Interpreter और Assembler

Language Translators क्या हैं? Compiler, Interpreter और Assembler

Language Translators: Complete Master Guide

Complete Overview of Compiler, Interpreter, Assembler, Differences & Exam Points

1. Language Translator (भाषा अनुवादक) क्या है?

कंप्यूटर केवल Machine Language (0 और 1) को समझता है, जबकि प्रोग्रामर्स कोड को Assembly Language या High-Level Languages (C, Java, Python) में लिखते हैं। High-Level या Assembly Code को Source Code कहा जाता है।

Source Code को कंप्यूटर के समझने योग्य Machine Code (0/1) में बदलने वाले विशेष System Software को Language Translator / Language Processor कहते हैं।

Translator Type Input (Source Code) Output (Target Code) Execution Speed
Assembler Assembly Language (Mnemonics) Machine Code (0/1) Very Fast
Compiler High-Level Language (HLL) Object Code / Machine Code Fast (Post Translation)
Interpreter High-Level Language (HLL) Direct Execution (Line by Line) Slower
Key Exam Point: Translators को System Software की श्रेणी में रखा जाता है। ये User Program और Computer Hardware के बीच पुल (Bridge) की तरह कार्य करते हैं।
2. Language Translators के प्रकार (Types & Working)

A. Assembler Low-Level Translator

यह Assembly Language में लिखे गए Symbolic Instructions (Mnemonics) को सीधे Machine Language (Binary) में परिवर्तित करता है।

  • Input: Assembly Code (e.g., ADD, MOV, SUB).
  • Output: Executable Binary Code.
  • Feature: यह 1-to-1 Translation करता है (1 Assembly Instruction = 1 Machine Instruction).
MOV AX, 5 ➞ 10110000 00000101

B. Compiler High-Level Translator

यह पूरे Source Code को एक ही बार (All at once) स्कैन करता है और Machine Code (.exe / Object File) में ट्रांसलेट कर देता है।

  • Working Style: Scan Whole Program ➞ Generate Object Code ➞ Show All Errors Together.
  • Top Languages: C, C++, C#, COBOL.
  • Memory Usage: अधिक (Object File को सेव करने के लिए Memory चाहिए)।
Source Code (.c) ➞ [Compiler] ➞ Executable (.exe)

C. Interpreter High-Level Translator

यह High-Level Code को लाइन-दर-लाइन (Line-by-Line) चेक और एग्जीक्यूट करता है। यदि किसी लाइन में एरर आती है, तो निष्पादन वहीं रुक जाता है।

  • Working Style: Read Line 1 ➞ Execute Line 1 ➞ Read Line 2.
  • Top Languages: Python, JavaScript, PHP, Ruby, Perl.
  • Debugging: आसान (क्योंकि गलती होने पर तुरंत उसी लाइन पर रुक जाता है)।
Line 1: OK ➞ Executed❷
Line 2: Error ➞ Stop Here!

D. Hybrid Approach (Compiler + Interpreter) Modern Approach

कुछ आधुनिक भाषाएँ दोनों का प्रयोग करती हैं। पहले Compiler कोड को Bytecode / Intermediate Code में बदलता है, फिर Virtual Machine (JVM/PVM) उसे Interpret करती है।

  • Examples: Java (JVM), Python (PVM).
  • Benefit: Platform Independence (WORA - Write Once, Run Anywhere).
Java Code (.java) ➞ [javac] ➞ Bytecode (.class) ➞ [JVM]
3. Compiler vs Interpreter (मुख्य अंतर)

प्रतियोगी परीक्षाओं में सबसे ज्यादा प्रश्न इसी तुलनात्मक तालिका से पूछे जाते हैं:

मापदंड (Parameter) Compiler (कंपाइलर) Interpreter (इंटरप्रेटर)
अनुवाद की विधि (Translation Method) पूरे प्रोग्राम को एक साथ ट्रांसलेट करता है। कोड को एक-एक लाइन करके (Line-by-Line) ट्रांसलेट करता है।
निष्पादन गति (Execution Speed) काफी तेज़ (Fast Execution). धीमी (Slower Execution).
ऑब्जेक्ट कोड (Object Code Generation) Intermediate Object Code (.obj / .exe) बनाता है। कोई Intermediate Object Code नहीं बनाता।
त्रुटि प्रदर्शन (Error Reporting) पूरे प्रोग्राम के स्कैन होने के बाद सभी Errors एक साथ दिखाता है। जैसे ही पहली एरर मिलती है, निष्पादन रुक जाता है।
मेमोरी आवश्यकता (Memory Requirement) अधिक (Target Code स्टोर करने के लिए)। कम (क्योंकि Object File सेव नहीं होती)।
डिबगिंग (Debugging Efficiency) तुलनात्मक रूप से कठिन। बहुत आसान और सुविधाजनक।
उदाहरण (Languages Used) C, C++, FORTRAN, Pascal, Swift Python, JavaScript, BASIC, PHP, Ruby
4. Phases of Compiler & Related Tools

कंपाइलर कुल 6 चरणों (Phases) में कार्य करता है:

  • 1. Lexical Analysis (Scanner): कोड को छोटे-छोटे टुकड़ों (Tokens) में तोड़ता है।
  • 2. Syntax Analysis (Parser): Parse Tree बनाकर Grammar चेक करता है।
  • 3. Semantic Analysis: कोड के अर्थ (Meaning / Data Type consistency) की जाँच करता है।
  • 4. Intermediate Code Generation: Machine-independent कोड तैयार करता है।
  • 5. Code Optimization: कोड की स्पीड और मेमोरी उपयोग को बेहतर बनाता है।
  • 6. Code Generation: अंतिम Target Machine Code जनरेट करता है।

अन्य सहायक प्रोग्राम (Utility Utilities):

  • Linker: कंपाइलर द्वारा बनाई गई Object Files को आवश्यक Library Files के साथ जोड़कर अंतिम .exe फाइल बनाता है।
  • Loader: निष्पादन (Execution) के समय Exe फाइल को Hard Disk से RAM (Main Memory) में लोड करता है।
HIGH-YIELD ONE-LINERS

परीक्षा में बार-बार पूछे जाने वाले प्रश्न (PYQ Summary)

Translators Type: Compiler, Interpreter और Assembler तीनों System Software हैं।
Mnemonics to Binary: Assembler निमोनिक्स कोड को बाइनरी कोड में बदलता है।
Line by Line: Interpreter प्रोग्राम को लाइन-बाय-लाइन निष्पादित करता है।
Object File Generation: Compiler निष्पादन से पहले .obj/.exe फाइल बनाता है, Interpreter नहीं।
Java Execution: Java में Compiler (javac) Bytecode बनाता है और JVM (Interpreter) उसे रन करता है।
Role of Linker: Object files और Library files को आपस में जोड़ना Linker का काम है।
Role of Loader: Executable Code को RAM में लोड करने का कार्य Loader करता है।
Debugging Speed: Debugging इंटरप्रेटर में कंपाइलर की तुलना में आसान होती है।
और नया पुराने