कंपाइलर मधील फेज व पासमधील फरक

Anonim

कंपाइलर मध्ये फेज बनाम पास

सर्वसाधारणपणे, कंपाइलर एक संगणक प्रोग्राम आहे जो वाचतो प्रोग्राम ज्या भाषेत लिहीलेले आहे, त्याला स्त्रोत भाषा असे म्हणतात आणि ते दुसर्या भाषेत भाषांतरित करते, ज्यास लक्ष्य भाषा म्हटले जाते परंपरेने, स्त्रोत भाषा ही उच्च पातळीची भाषा होती जसे की C ++ आणि लक्ष्य भाषा ही लेव्हल लँग्वेज होती जसे की विधानसभा भाषा म्हणून, सर्वसाधारण संकलकांमध्ये भाषांतरकार म्हणून पाहिले जाऊ शकते जे एका भाषेतून दुसर्या भाषेत अनुवादित करतात. पास आणि फेज हे दोन शब्द नेहमी कंपाइलरसह वापरले जातात. कंपाइलरच्या पासची संख्या ही स्त्रोत किती वेळा जाते (किंवा त्याचे प्रतिनिधित्व काही फॉर्म). बांधकामाच्या सोयीसाठी कंपाइलर काही भागांमध्ये मोडला गेला आहे. फेज हा कंपाइलरचा असा एकमेव स्वतंत्र भाग कॉल करण्यासाठी वापरला जातो.

कंपाइलर मध्ये एक पास काय आहे?

कंपाइलर वर्गीकृत करण्याचा एक मानक मार्ग म्हणजे "पास" सर्वसाधारणपणे कंपाइलिंग हा एक रिलायन्स कॉन्सेंट प्रोसेस असतो आणि सुरुवातीला संगणकाकडे अशी कार्यरत ठेवण्यासाठी पुरेशी स्मृती नव्हती ज्यात संपूर्ण नोकरी होती. सुरुवातीच्या संगणकांमध्ये हार्डवेअर स्त्रोतांच्या या मर्यादांमुळे, कम्पाइलर लहान उप प्रोग्राम मध्ये मोडले गेले होते ज्यात स्त्रोत कोड (स्रोत किंवा "अन्यथा" वर "पास" बनवून) आणि विश्लेषण केल्यावर त्याचे अंशतः काम केले होते, परिवर्तन आणि भाषांतर कार्ये स्वतंत्रपणे त्यामुळे, या वर्गीकरणानुसार, कंपाइलर एक-पास किंवा मल्टि-पास कंपाइलर म्हणून निर्देशित केले आहेत.

नावाप्रमाणेच, एकाच पासमध्ये एक-पास असलेल्या कंपाइलरची रचना केली जाते. एक-पास कंपाइलर लिहायला सोपे आहे आणि बहु-पास कंपाइलरपेक्षा ते वेगाने कार्य करतात. म्हणूनच जेव्हा आपल्याकडे संसाधन मर्यादा होत्या तेव्हा देखील भाषा तयार केल्या जेणेकरून त्यांना एका-पासमध्ये (उदा. पास्कल) संकलित करता येईल. दुसरीकडे, एक सामान्य बहु-पास कंपाइलर अनेक मुख्य टप्प्यात बनले आहे. पहिला टप्पा स्कॅनर आहे (लेक्सिकल अॅनालिस्ट म्हणूनही ओळखला जातो) स्कॅनर प्रोग्राम वाचतो आणि टोकन्सच्या स्ट्रिंगमध्ये रुपांतरीत करतो. दुसरा टप्पा पारसर आहे हे टोकनच्या अक्षरांना पर्स ट्री (किंवा एक अॅबर्ट सिंटॅक्स ट्री) मध्ये रुपांतरीत करते, जे कार्यक्रमाचे वाक्यरचना संरचित करते. पुढील स्टेज हे वाक्यरचनेच्या मांडणीच्या अर्थशास्त्रांचा अर्थ लावणे होय. कोड ऑप्टिमायझेशन टप्प्यात आणि अंतिम कोड जनरेशन टप्प्यानुसार हे अनुसरण करा.

कंपाइलर मध्ये एक टप्पा काय आहे?

जेव्हा तुम्ही कंपाइलर बांधकाम बद्दल बोलाल तेव्हा टर्म अवधी सहसा येते. प्रारंभी, कॉम्पॉलर्स एक साध्या भाषेच्या संकलनासाठी एका व्यक्तीने लिहिलेल्या एकमेव, अखंड सॉफ्टवेअरच्या प्रत्येक साध्या तुकडया होत्या. परंतु जेव्हा भाषेचा स्त्रोत कोड भाषांतरीत करणे जटिल आणि मोठ्या होईल तेव्हा संकलक एकाधिक (तुलनात्मक) स्वतंत्र टप्प्यांत मोडण्यात आले होते.विविध टप्प्याटप्पण्यांचा लाभ म्हणजे कंपाइलरचा विकास विकासकांच्या संघामध्ये वितरित केला जाऊ शकतो. शिवाय, हे मॉड्यूलरियटी सुधारते आणि सुधारकांद्वारे किंवा अतिरिक्त टप्प्याटप्प्याने (जसे की अधिक ऑप्टिमायझेशन) संकलकांकडे जोडण्यासाठी टप्प्याटप्प्याने बदलले जाऊ शकते. संकलनास टप्प्याटप्प्याने विभाजित करण्याची प्रक्रिया कार्डेजी मेलॉन विद्यापीठात पीक्यू सी सी (प्रोडक्शन क्वालिटी कंपाइलर-कंपाइलर प्रोजेक्ट) द्वारे सुरु करण्यात आली. त्यांनी अटींचा शेवट, अंतराल आणि शेवटचा शब्द सादर केला. बहुतांश कम्पाइलर्सकडे कमीत कमी दोन टप्प्या असतात. पण सहसा, बॅक एंड आणि फ्रंट एन्ड हे टप्प्याटप्प्याने समभाग करतात.

कंपाइलर मध्ये फेज आणि पास मधील अंतर काय आहे?

कंपाइलरच्या परिसरात फेज आणि पास दोन अटी वापरतात. पास एक वेळ आहे जेव्हा कंपाइलर स्रोत कोड किंवा तिच्या काही इतर प्रतिनिधींवरुन जातो (जातो) थोडक्यात, बहुतांश कम्पाइलरला किमान दोन टप्प्यांत फ्रंट एंड आणि बॅक एन्ड असे म्हणतात, जेव्हा ते एक-पास किंवा मल्टि-पास असू शकतात. फेजचा वापर कंपाइलरच्या वर्गीकरणास वर्गीकृत करण्यासाठी केला जातो, तर पास कसे वापरावे त्यानुसार कंपाइलर वर्गीकृत करण्यासाठी पासचा वापर केला जातो.