కంపైలర్ వర్సెస్ ఇంటర్‌ప్రెటర్: కంపైలర్ మరియు ఇంటర్‌ప్రెటర్ మధ్య పూర్తి వ్యత్యాసం

కంపైలర్ అంటే ఏమిటి?

కంపైలర్ అనేది కంప్యూటర్ ప్రోగ్రామ్, ఇది హై-లెవల్ ప్రోగ్రామింగ్ లాంగ్వేజ్‌లో వ్రాసిన కోడ్‌ని మెషిన్ కోడ్‌గా మారుస్తుంది. ఇది కంప్యూటర్-ప్రాసెసర్ అర్థం చేసుకునే భాషకు (బైనరీ 1 మరియు 0 బిట్స్) మానవ-రీడబుల్ కోడ్‌ని అనువదించే ప్రోగ్రామ్. సంబంధిత పనులను నిర్వహించడానికి కంప్యూటర్ మెషిన్ కోడ్‌ను ప్రాసెస్ చేస్తుంది.

ఒక కంపైలర్ అది వ్రాసిన ప్రోగ్రామింగ్ లాంగ్వేజ్ యొక్క వాక్యనిర్మాణ నియమాన్ని పాటించాలి. అయితే, కంపైలర్ ఒక ప్రోగ్రామ్ మాత్రమే మరియు ఆ ప్రోగ్రామ్‌లో కనిపించే లోపాలను పరిష్కరించలేరు. కాబట్టి, మీరు పొరపాటు చేస్తే, మీ ప్రోగ్రామ్ యొక్క వాక్యనిర్మాణంలో మార్పులు చేయాలి. లేకపోతే, అది కంపైల్ చేయబడదు.

ఇంటర్‌ప్రెటర్ అంటే ఏమిటి?

ఇంటర్‌ప్రెటర్ అనేది కంప్యూటర్ ప్రోగ్రామ్, ఇది ప్రతి ఉన్నత-స్థాయి ప్రోగ్రామ్ స్టేట్‌మెంట్‌ను మెషిన్ కోడ్‌లో కవర్ చేస్తుంది. ఇందులో సోర్స్ కోడ్, ప్రీ-కంపైల్డ్ కోడ్ మరియు స్క్రిప్ట్‌లు ఉంటాయి. కంపైలర్ మరియు వ్యాఖ్యాతలు ఇద్దరూ ఒకే పని చేస్తారు, ఇది ఉన్నత స్థాయి ప్రోగ్రామింగ్ భాషను మెషిన్ కోడ్‌గా మారుస్తుంది. అయితే, ప్రోగ్రామ్ రన్ అయ్యే ముందు ఒక కంపైలర్ కోడ్‌ను మెషిన్ కోడ్‌గా (exe ని సృష్టించండి) మారుస్తుంది. ప్రోగ్రామ్ రన్ అయినప్పుడు ఇంటర్‌ప్రెటర్‌లు కోడ్‌ను మెషిన్ కోడ్‌గా మారుస్తారు.

కీ వ్యత్యాసం

  • కంపైలర్ ప్రోగ్రామ్ రన్ అయ్యే ముందు, హై-లెవల్ ప్రోగ్రామింగ్ లాంగ్వేజ్‌లో వ్రాసిన కోడ్‌ను మెషిన్ కోడ్‌గా మారుస్తుంది.
  • సంకలనం చేయబడిన కోడ్ వేగంగా నడుస్తుంది, ఇంటర్‌ప్రెటెడ్ కోడ్ నెమ్మదిగా నడుస్తుంది.
  • కంపైలర్ తర్వాత కంపైలర్ అన్ని లోపాలను ప్రదర్శిస్తుంది, మరోవైపు, ఇంటర్‌ప్రెటర్ ప్రతి లైన్ యొక్క లోపాలను ఒక్కొక్కటిగా ప్రదర్శిస్తుంది.
  • కంపైలర్ అనువాద లింకింగ్-లోడింగ్ మోడల్‌పై ఆధారపడి ఉంటుంది, అయితే ఇంటర్‌ప్రెటర్ ఇంటర్‌ప్రెటేషన్ మెథడ్‌పై ఆధారపడి ఉంటుంది.
  • కంపైలర్ మొత్తం ప్రోగ్రామ్‌ను తీసుకుంటుంది, అయితే ఇంటర్‌ప్రెటర్ ఒకే లైన్ కోడ్‌ను తీసుకుంటుంది.

కంపైలర్ మరియు ఇంటర్‌ప్రెటర్ మధ్య వ్యత్యాసం

వ్యత్యాసం యొక్క ఆధారం కంపైలర్ వ్యాఖ్యాత
ప్రోగ్రామింగ్ దశలు
  • కార్యక్రమం సృష్టించండి.
  • కంపైల్ అన్ని భాష స్టేట్‌మెంట్‌లను దాని సరైన కోసం పార్స్ చేస్తుంది లేదా విశ్లేషిస్తుంది. తప్పు అయితే, లోపాన్ని విసురుతాడు
  • లోపం లేకపోతే, కంపైలర్ సోర్స్ కోడ్‌ను మెషిన్ కోడ్‌గా మారుస్తుంది.
  • ఇది రన్నబుల్ ప్రోగ్రామ్‌లోకి వివిధ కోడ్ ఫైల్‌లను లింక్ చేస్తుంది (exe గా తెలుసుకోండి)
  • కార్యక్రమాన్ని అమలు చేయండి
  • కార్యక్రమం సృష్టించండి
  • ఫైళ్లు లేదా మెషిన్ కోడ్ జనరేషన్ లింక్ చేయడం లేదు
  • మూల ప్రకటనలు అమలు చేయడం ద్వారా లైన్ ద్వారా అమలు చేయబడతాయి
అడ్వాంటేజ్ప్రోగ్రామ్ కోడ్ ఇప్పటికే మెషిన్ కోడ్‌లోకి అనువదించబడింది. అందువలన, ఇది కోడ్ అమలు సమయం తక్కువగా ఉంటుంది.వ్యాఖ్యాతలను ఉపయోగించడం సులభం, ముఖ్యంగా ప్రారంభకులకు.
ప్రతికూలతసోర్స్ కోడ్‌కు తిరిగి వెళ్లకుండా మీరు ప్రోగ్రామ్‌ని మార్చలేరు.సంబంధిత ఇంటర్‌ప్రెటర్ ఉన్న కంప్యూటర్‌లలో ఇంటర్‌ప్రెటెడ్ ప్రోగ్రామ్‌లు అమలు చేయబడతాయి.
మెషిన్ కోడ్మెషీన్ భాషను డిస్క్‌లో మెషిన్ కోడ్‌గా స్టోర్ చేయండిమెషిన్ కోడ్‌ను అస్సలు సేవ్ చేయడం లేదు.
రన్నింగ్ సమయంసంకలనం చేయబడిన కోడ్ వేగంగా నడుస్తుందిఇంటర్‌ప్రెటెడ్ కోడ్ నెమ్మదిగా నడుస్తుంది
మోడల్ఇది భాష అనువాద లింక్-లోడింగ్ మోడల్‌పై ఆధారపడి ఉంటుంది.ఇది వ్యాఖ్యాన పద్ధతిపై ఆధారపడి ఉంటుంది.
ప్రోగ్రామ్ జనరేషన్అసలు ప్రోగ్రామ్ నుండి స్వతంత్రంగా అమలు చేయగల అవుట్‌పుట్ ప్రోగ్రామ్ (exe రూపంలో) రూపొందిస్తుంది.అవుట్‌పుట్ ప్రోగ్రామ్‌ను రూపొందించవద్దు. కాబట్టి వారు అమలు సమయంలో ప్రతిసారీ సోర్స్ ప్రోగ్రామ్‌ను మూల్యాంకనం చేస్తారు.
అమలుప్రోగ్రామ్ అమలు సంకలనం నుండి వేరుగా ఉంటుంది. మొత్తం అవుట్‌పుట్ ప్రోగ్రామ్ కంపైల్ చేసిన తర్వాత మాత్రమే ఇది ప్రదర్శించబడుతుంది.ప్రోగ్రామ్ ఎగ్జిక్యూషన్ ఇంటర్‌ప్రెటేషన్ ప్రాసెస్‌లో ఒక భాగం, కనుక ఇది లైన్‌ల వారీగా నిర్వహించబడుతుంది.
మెమరీ అవసరంటార్గెట్ ప్రోగ్రామ్ ఆధారపడి ఉంటుంది మరియు మెమరీలో కంపైలర్ అవసరం లేదు.వ్యాఖ్యాన సమయంలో ఇంటర్‌ప్రెటర్ మెమరీలో ఉంది.
ఉత్తమంగా సరిపోతుందినిర్దిష్ట లక్ష్య యంత్రానికి కట్టుబడి ఉంది మరియు పోర్ట్ చేయబడదు. C మరియు C ++ అనేది కంపైలేషన్ మోడల్‌ను ఉపయోగించే అత్యంత ప్రాచుర్యం పొందిన ప్రోగ్రామింగ్ లాంగ్వేజ్.వెబ్ పరిసరాల కోసం, లోడ్ సమయాలు ముఖ్యమైనవి. సమగ్ర విశ్లేషణ పూర్తయినందున, కంపైల్స్ చాలాసార్లు అమలు చేయబడని చిన్న కోడ్‌ను కూడా కంపైల్ చేయడానికి సాపేక్షంగా పెద్ద సమయం పడుతుంది. అటువంటి సందర్భాలలో, వ్యాఖ్యాతలు ఉత్తమంగా ఉంటారు.
కోడ్ ఆప్టిమైజేషన్కంపైలర్ మొత్తం కోడ్‌ను ముందుగానే చూస్తుంది. అందువల్ల, వారు కోడ్‌ను వేగంగా అమలు చేయడానికి చాలా ఆప్టిమైజేషన్‌లను చేస్తారువ్యాఖ్యాతలు కోడ్ లైన్‌ను లైన్‌గా చూస్తారు, అందువలన ఆప్టిమైజేషన్‌లు కంపైలర్‌ల వలె బలంగా లేవు
డైనమిక్ టైపింగ్కంపైలర్‌లుగా అమలు చేయడం కష్టం, మలుపు సమయంలో ఏమి జరుగుతుందో అంచనా వేయలేరు.వివరణాత్మక భాషలు డైనమిక్ టైపింగ్‌కు మద్దతు ఇస్తాయి
వినియోగంఇది ఉత్పత్తి వాతావరణానికి బాగా సరిపోతుందిప్రోగ్రామ్ మరియు డెవలప్‌మెంట్ ఎన్‌విరాన్‌మెంట్‌కి ఇది బాగా సరిపోతుంది.
లోపం అమలుకంపైలర్ అన్ని లోపాలు మరియు సంకలనం సమయంలో హెచ్చరికలను ప్రదర్శిస్తుంది. అందువల్ల, మీరు లోపాలను పరిష్కరించకుండా ప్రోగ్రామ్‌ను అమలు చేయలేరువ్యాఖ్యాత ఒకే స్టేట్‌మెంట్‌ను చదివి లోపం ఏదైనా ఉంటే చూపిస్తుంది. తదుపరి పంక్తిని అర్థం చేసుకోవడానికి మీరు తప్పిదాన్ని సరిచేయాలి.
ఇన్పుట్ఇది మొత్తం ప్రోగ్రామ్‌ను తీసుకుంటుందిఇది సింగిల్ లైన్ కోడ్‌ను తీసుకుంటుంది.
అవుట్‌పుట్కంప్లైయర్‌లు ఇంటర్మీడియట్ మెచనీ కోడ్‌ని రూపొందిస్తారు.ఇంటర్‌ప్రెటర్ ఎన్నడూ ఇంటర్మీడియట్ మెచనీ కోడ్‌ని రూపొందించలేదు.
లోపాలుఅన్ని లోపాలు, సంకలనం తర్వాత అన్నీ ఒకేసారి ప్రదర్శించండి.ప్రతి పంక్తిలోని అన్ని లోపాలను ఒక్కొక్కటిగా ప్రదర్శిస్తుంది.
ప్రోగ్రామింగ్ భాషలకు సంబంధించినదిC, C ++, C#, స్కాలా, జావా అన్నీ కంప్లైయర్‌ని ఉపయోగిస్తాయి.PHP, పెర్ల్, రూబీ ఇంటర్‌ప్రెటర్‌ను ఉపయోగిస్తుంది.

కంపైలర్ పాత్ర

  • కంప్లైయర్‌లు సోర్స్ కోడ్‌ని చదువుతారు, ఎగ్జిక్యూటబుల్ కోడ్‌ను అవుట్‌పుట్‌ ​​చేస్తారు
  • కంప్యూటర్ అర్థం చేసుకోగలిగే సూచనలలో ఉన్నత-స్థాయి భాషలో వ్రాసిన సాఫ్ట్‌వేర్‌ని అనువదిస్తుంది. ఇది ప్రోగ్రామర్ వ్రాసే వచనాన్ని CPU అర్థం చేసుకోగల ఫార్మాట్‌గా మారుస్తుంది.
  • సంకలనం ప్రక్రియ సాపేక్షంగా సంక్లిష్టమైనది. ఇది ప్రోగ్రామ్‌ని విశ్లేషించడానికి మరియు ప్రాసెస్ చేయడానికి చాలా సమయాన్ని వెచ్చిస్తుంది.
  • అమలు చేయగల ఫలితం యంత్రం-నిర్దిష్ట బైనరీ కోడ్ యొక్క ఒక రూపం.

వ్యాఖ్యాత పాత్ర

  • RUN టైమ్‌లో ఇంటర్‌ప్రెటర్ సోర్స్ కోడ్‌ని లైన్-బై-లైన్‌గా మారుస్తుంది.
  • హై-లెవల్ లాంగ్వేజ్‌లో రాసిన ప్రోగ్రామ్‌ని ఇంటర్‌ప్రెట్ పూర్తిగా మెషిన్ లెవల్ లాంగ్వేజ్‌లోకి అనువదిస్తుంది.
  • ప్రోగ్రామ్ అమలులో ఉన్నప్పుడు మూల్యాంకనం మరియు సవరణను ఇంటర్‌ప్రెటర్ అనుమతిస్తుంది.
  • ప్రోగ్రామ్‌ని విశ్లేషించడానికి మరియు ప్రాసెస్ చేయడానికి సాపేక్షంగా తక్కువ సమయం కేటాయించారు
  • కంపైలర్‌తో పోలిస్తే ప్రోగ్రామ్ అమలు చాలా నెమ్మదిగా ఉంటుంది

హై-లెవల్ లాంగ్వేజెస్

C, C ++, JAVA మొదలైన ఉన్నత-స్థాయి భాషలు ఆంగ్లానికి చాలా దగ్గరగా ఉంటాయి. ఇది ప్రోగ్రామింగ్ ప్రక్రియను సులభతరం చేస్తుంది. అయితే, దీనిని అమలు చేయడానికి ముందు మెషిన్ లాంగ్వేజ్‌లోకి అనువదించాలి. ఈ అనువాద ప్రక్రియ కంపైలర్ లేదా ఇంటర్‌ప్రెటర్ ద్వారా నిర్వహించబడుతుంది. సోర్స్ కోడ్ అని కూడా అంటారు.

మెషిన్ కోడ్

యంత్ర భాషలు హార్డ్‌వేర్‌కు చాలా దగ్గరగా ఉంటాయి. ప్రతి కంప్యూటర్‌కు దాని మెషీన్ లాంగ్వేజ్ ఉంటుంది. మెషీన్ లాంగ్వేజ్ ప్రోగ్రామ్‌లు బైనరీ నమూనా శ్రేణితో రూపొందించబడ్డాయి. (ఉదా. 110110) ఇది కంప్యూటర్ ద్వారా నిర్వహించాల్సిన సాధారణ కార్యకలాపాలను సూచిస్తుంది. మెషిన్ లాంగ్వేజ్ ప్రోగ్రామ్‌లు ఎగ్జిక్యూటబుల్ కాబట్టి అవి నేరుగా అమలు చేయబడతాయి.

ఆబ్జెక్ట్ కోడ్

సోర్స్ కోడ్ యొక్క సంకలనంపై, ఇంటెల్, AMD, ARM వంటి విభిన్న ప్రాసెసర్‌ల కోసం రూపొందించబడిన మెషిన్ కోడ్ భిన్నంగా ఉంటుంది. కోడ్ పోర్టబుల్ చేయడానికి, సోర్స్ కోడ్ మొదట ఆబ్జెక్ట్ కోడ్‌గా మార్చబడుతుంది. ఇది ఒక మధ్యవర్తి కోడ్ (మెషిన్ కోడ్ మాదిరిగానే) ఏ ప్రాసెసర్‌కు అర్థం కాలేదు. రన్ టైమ్‌లో, ఆబ్జెక్ట్ కోడ్ అంతర్లీన ప్లాట్‌ఫారమ్ యొక్క మెషిన్ కోడ్‌గా మార్చబడుతుంది.

జావా కంపైల్ మరియు ఇంటర్‌ప్రెటెడ్ రెండూ.

కంపైలర్‌ల యొక్క సాపేక్ష ప్రయోజనాలను ఉపయోగించుకునేందుకు వ్యాఖ్యాతలు జావా వంటి కొన్ని ప్రోగ్రామింగ్ లాంగ్వేజ్‌లు కంపైల్ చేయబడతాయి మరియు వివరించబడతాయి. జావా కోడ్ ఆబ్జెక్ట్ కోడ్‌లోకి సంకలనం చేయబడింది. రన్ టైమ్‌లో, JVM ఆబ్జెక్ట్ కోడ్‌ను టార్గెట్ కంప్యూటర్ యొక్క మెషిన్ కోడ్‌గా వివరిస్తుంది.