पोर्टेबल सी कंपाइलर

From alpha
Jump to navigation Jump to search
Portable C Compiler
मूल लेखकStephen C. Johnson
डेवलपर(ओं)AT&T Bell Laboratories
आरंभिक रिलीज1979; 45 years ago (1979)
Stable release
1.1.0 / December 10, 2014; 9 years ago (2014-12-10)
इसमें लिखा हुआC
ऑपरेटिंग सिस्टमUnix and Unix-like
प्रकारC Compiler
लाइसेंसBSD License

पोर्टेबल सी संकलक (पीसीसी या कभी-कभी पीसीसीएम - पोर्टेबल सी कंपाइलर मशीन के रूप में भी जाना जाता है) 1970 के दशक के मध्य में बेल लैब्स के स्टीफन सी। जॉनसन द्वारा लिखित सी (प्रोग्रामिंग भाषा) के लिए एक शुरुआती कंपाइलर है।[1] 1973 में एलन स्नाइडर (कंप्यूटर वैज्ञानिक) द्वारा प्रस्तावित विचारों के आधार पर,[2][3] और डेनिस रिची के आशीर्वाद से बेल लैब्स द्वारा सी कंपाइलर के रूप में वितरित किया गया।[4]

पहले कंपाइलर्स में से एक होने के नाते जिसे विभिन्न कंप्यूटर आर्किटेक्चर के लिए आउटपुट कोड में आसानी से अनुकूलित किया जा सकता था, कंपाइलर का जीवन काल लंबा था। यह सातवें संस्करण यूनिक्स में शुरू हुआ और 1994 में 4.4BSD के रिलीज होने तक बर्कले सॉफ्टवेयर वितरण के साथ भेज दिया गया, जब इसे GNU C कंपाइलर द्वारा बदल दिया गया। यह अपने समय में बहुत प्रभावशाली था, इतना अधिक कि 1980 के दशक की शुरुआत में, अधिकांश सी कंपाइलर इस पर आधारित थे।[5] एंडर्स मैग्नसन और पीटर ए जोंसन ने 2007 में पीसीसी के विकास को फिर से शुरू किया, सी 99 मानक का समर्थन करने के लिए इसे बड़े पैमाने पर फिर से लिखा।[6]


विशेषताएं

पीसीसी की प्रमुख विशेषताएं इसकी सॉफ्टवेयर सुवाह्यता और उन्नत नैदानिक ​​क्षमताएं हैं। कंपाइलर को इस तरह से डिजाइन किया गया था कि इसके केवल कुछ स्रोत कोड कम्प्यूटर फाइलें मशीन-निर्भर हैं। यह सिंटैक्स त्रुटियों के लिए अपेक्षाकृत मजबूत है और अपने समकालीनों की तुलना में अधिक गहन वैधता जांच करता है।[according to whom?] डेनिस रिची द्वारा लिखित पहला सी संकलक, एक पुनरावर्ती वंश पार्सर का उपयोग करता है, पीडीपी-11 -11 के बारे में विशिष्ट ज्ञान को शामिल करता है, और एक वैकल्पिक मशीन-विशिष्ट अनुकूलक पर निर्भर करता है ताकि असेंबली भाषा कोड को उत्पन्न किया जा सके। इसके विपरीत, जॉनसन का पीसीसीएम एक याक-जनित पार्सर पर आधारित था और एक अधिक सामान्य लक्ष्य मशीन मॉडल का इस्तेमाल करता था। दोनों कंपाइलरों ने लक्ष्य-विशिष्ट असेंबली भाषा कोड का उत्पादन किया, जिसे वे लिंक करने योग्य ऑब्जेक्ट मॉड्यूल बनाने के लिए इकट्ठा करते थे।

पीसीसी के बाद के संस्करण, बेल लैब्स के भीतर क्यूसीसी और आरसीसी के रूप में जाने जाते हैं, अन्य लक्षित आर्किटेक्चर मॉडल का समर्थन करते हैं।[citation needed] पीसीसी द्वारा लागू की जाने वाली भाषा C (प्रोग्रामिंग भाषा) #K&R C|K&R C का एक विस्तारित संस्करण है जिसे बज़्ने स्ट्रॉस्ट्रुप ने क्लासिक सी कहा है, जिसमें शामिल है void वापसी प्रकार (ऐसे कार्यों के लिए जो कोई मूल्य नहीं लौटाते हैं), गणना और संरचना असाइनमेंट।[4]


वर्तमान संस्करण

स्टीव जॉनसन द्वारा मूल पर आधारित पीसीसी का एक नया संस्करण अब एंडर्स मैग्नसन द्वारा बनाए रखा गया है।[6]कंपाइलर बीएसडी लाइसेंस के तहत प्रदान किया जाता है और इसके विकास को बीएसडी फंड नामक एक गैर-लाभकारी संगठन द्वारा वित्त पोषित किया जाता है। मैग्नसन के अनुसार:

The big benefit of it (apart from that it's BSD licensed, for license geeks) is that it is fast, 5-10 times faster than gcc, while still producing reasonable code. <...> [I]t is also quite simple to port...

— Anders Magnusson[7]

यह नया संस्करण सितंबर 2007 में NetBSD pkgsrc और OpenBSD स्रोत ट्री में जोड़ा गया था,[8] और बाद में मुख्य NetBSD स्रोत ट्री में।[9] ऐसी कुछ अटकलें थीं कि अंततः इसका उपयोग BSD-आधारित ऑपरेटिंग सिस्टम पर GNU C कंपाइलर को प्रतिस्थापित करने के लिए किया जा सकता है,[10] हालांकि फ्रीबीएसडी[11][12] और नेटबीएसडी[13] दोनों बजना को एक संभावित प्रतिस्थापन के रूप में देख रहे हैं, और ओपनबीएसडी के थियो डी राड्ट ने दावा किया है कि पीसीसी अभी तक जीसीसी प्रतिस्थापन के लिए तैयार नहीं है, और जीसीसी का निपटान सर्वोच्च प्राथमिकता नहीं है।[14] 29 दिसंबर 2009 को, पीसीसी कार्यात्मक x86 ओपनबीएसडी कर्नेल छवि बनाने में सक्षम हो गया।[15] पीसीसी संस्करण 1.0 1 अप्रैल 2011 को जारी किया गया था।[16] इस रिलीज के अनुसार, कंपाइलर x86 और x64 प्रोसेसर आर्किटेक्चर का समर्थन करता है और नेटबीएसडी, ओपनबीएसडी, फ्रीबीएसडी, विभिन्न लिनक्स वितरण और माइक्रोसॉफ़्ट विंडोज़ पर चलता है।[17] आगे के विकास, अधिक आर्किटेक्चर के लिए समर्थन सहित, और फोरट्रान 77 और सी ++ फ्रंट एंड, 2022 तक जारी रहेंगे।

पीसीसी को 2012 में ओपनबीएसडी स्रोत वृक्ष से हटा दिया गया था।[18] इस पर विकास ठप हो गया था और किसी भी रखरखावकर्ता ने इसे किसी ऐसी चीज में विकसित करने के लिए कदम नहीं उठाया था जो जीएनयू कंपाइलर संग्रह के लिए एक व्यावहारिक विकल्प बना सके।[19][20] पीसीसी का नवीनतम संस्करण, अर्थात् 1.1.0, 10 दिसंबर 2014 को जारी किया गया था।[21]


यह भी देखें

संदर्भ

  1. Johnson, S.C. (1978). "A portable compiler: theory and practice". Proceedings of the 5th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages. Tucson, Arizona.: 97–104. doi:10.1145/512760.512771. S2CID 14390804.
  2. Snyder, A. (1975). "A Portable Compiler for the Language C". Master's Thesis. MIT, Cambridge, Mass. Archived from the original on 2006-09-05. Retrieved 2006-07-19.
  3. Johnson, S.C. (1981). A Tour Through the Portable C Compiler. Unix Programmer's Manual, 7th edition, Volume 2. ISBN 0-03-061743-X.
  4. 4.0 4.1 Stroustrup, Bjarne (2002). Sibling rivalry: C and C++ (PDF) (Report). AT&T Labs.
  5. Ritchie, Dennis M. (1993). "The development of the C language". The second ACM SIGPLAN conference on History of programming languages. Cambridge, Massachusetts. pp. 201–208. Retrieved 2008-12-30. At the start of the decade, nearly every compiler was based on Johnson's pcc; by 1985 there were many independently-produced compiler products.
  6. 6.0 6.1 "pcc history". pcc - portable c compiler. 2010-06-21. Retrieved 2012-06-26.
  7. Erdely, Mike (2007-09-15). "BSD Licensed PCC Compiler Imported". OpenBSD Journal. Retrieved 2011-12-17.
  8. Moerbeek, Otto (2007-09-15). "CVS: cvs.openbsd.org: src". openbsd-cvs (Mailing list).
  9. Brownlee, David (2007-09-20). "CVS commit: src/dist/pcc". source-changes (Mailing list).
  10. "GCC Compiler Finally Supplanted by PCC?". /. 2007-09-17.
  11. Larabel, Michael (12 May 2012). "FreeBSD 10 To Use Clang Compiler, Deprecate GCC". Phoronix. Archived from the original on 10 April 2015. Retrieved 23 April 2015.
  12. Brooks, Davis (5 November 2012). "HEADS UP: Clang now the default on x86" (Mailing list). Retrieved 23 April 2015.
  13. Joerg, Sonnenberger (17 October 2013). "Importing LLVM/Clang" (Mailing list). Retrieved 23 April 2015.
  14. Matzan, Jem (2007-10-15). "More on OpenBSD's new compiler". The Jem Report. Archived from the original on 2012-01-04. Retrieved 2011-12-17. But that's never really been the agenda, see. Some people think we hate GNU code. But the thing is we hate large code, and buggy code that upstream does not maintain. That's the real problem… gcc gets about 5-6% slower every release, has new bugs, generates crappy code, and drives us nuts. This is just an attempt to see if something better can show up.
  15. de Weerd, Paul (2009-12-29). "Call for testing: pcc and the OpenBSD kernel". OpenBSD Journal. Retrieved 2011-12-17.
  16. Magnusson, Anders (2011-04-01). "1.0 Release". Portable C Compiler. Retrieved 2011-12-17.
  17. "BSD Fund: pcc fund". bsdfund.org. 2011-04-01. Archived from the original on 2009-01-05. Retrieved 2012-06-26.
  18. Paul Irofti (2012-04-12). "CVS: cvs.openbsd.org: src".
  19. Peter Hessler (2012-06-18). "Re: Story behind PCC's removal?".
  20. Miod Vallat (2013-07-31). "Compilers in OpenBSD".
  21. Magnusson, Anders (2014-12-10). "1.1.0 Release". Portable C Compiler. Retrieved 2022-04-22.


बाहरी संबंध

  • No URL found. Please specify a URL here or add one to Wikidata.
  • Archive at TUHS