प्रिटीप्रिंट: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{short description|Formatting to make code or markup easier to read}}
{{short description|Formatting to make code or markup easier to read}}
प्रिटी-प्रिंटिंग (या प्रिटीप्रिंटिंग) किसी भी विभिन्न शैलीगत [[पाठ स्वरूपण]] सम्मेलनों का [[पाठ फ़ाइल]]ों, जैसे स्रोत कोड, मार्कअप भाषा और समान प्रकार की सामग्री का अनुप्रयोग है। इन स्वरूपण सम्मेलनों में [[इंडेंटेशन शैली]] का पालन करना, स्रोत कोड के [[वाक्य - विन्यास पर प्रकाश डालना]] के लिए अलग-अलग रंग और टाइपफेस का उपयोग करना, या आकार समायोजित करना, लोगों को पढ़ने और समझने के लिए सामग्री को आसान बनाने के लिए आवश्यक हो सकता है। स्रोत कोड के लिए प्रिटी-प्रिंटर को कभी-कभी कोड फ़ॉर्मेटर या ब्यूटिफायर कहा जाता है।
'''प्रिटी-प्रिंटिंग''' (या प्रिटीप्रिंटिंग) किसी भी विभिन्न शैलीगत [[पाठ स्वरूपण|टेक्स्ट स्वरूपण]] सम्मेलनों का [[पाठ फ़ाइल|टेक्स्ट फ़ाइल]], जैसे स्रोत कोड, मार्कअप भाषा और समान प्रकार की सामग्री का अनुप्रयोग है। इन स्वरूपण सम्मेलनों में [[इंडेंटेशन शैली]] का पालन करना तथा स्रोत कोड के [[वाक्य - विन्यास पर प्रकाश डालना]] के लिए अलग-अलग रंग और टाइपफेस का उपयोग किया जाता है या आकार समायोजित करना, और लोगों को पढ़ने और समझने के लिए सामग्री को आसान बनाने के लिए आवश्यक हो सकता है। स्रोत कोड के लिए प्रिटी-प्रिंटर को कभी-कभी कोड फ़ॉर्मेटर या ब्यूटिफायर कहा जाता है।


== सुंदर-मुद्रण गणित ==
== प्रिटी-मुद्रण गणित ==


[[Image:MathematicaTypesetExpression.png|thumb|210px|एक टाइपसेट गणितीय अभिव्यक्ति]]प्रिटी-प्रिंटिंग आमतौर पर [[गणितीय अभिव्यक्ति]]यों को उसी तरह प्रदर्शित करने के लिए संदर्भित करता है जैसे वे पेशेवर रूप से [[सूत्र संपादक]] होंगे। उदाहरण के लिए, मैक्सिमा (सॉफ़्टवेयर) या [[ मेथेमेटिका |मेथेमेटिका]] जैसे कंप्यूटर बीजगणित सिस्टम में सिस्टम <samp>x ^ 2 + 3 * x</samp> जैसा आउटपुट लिख सकता है {{No wrap|"<math>x^2+3x</math>".}} कुछ [[ग्राफिंग कैलकुलेटर]] जैसे Casio 9860 सीरीज, HP-49 सीरीज, [[TI-84 Plus]], [[TI-89]], और [[TI-Nspire]], [[TI-83 Plus]] प्रीटीपीटी के साथ<ref>{{Cite web |title=प्रिटीप्रिंट - ticalc.org|url=https://www.ticalc.org/archives/files/fileinfo/208/20807.html |access-date=2022-04-13 |website=www.ticalc.org}}</ref> ऐड-ऑन, या उसी ऐड-ऑन के साथ TI-84 Plus या MathPrint-सक्षम OSes, प्रिटी-प्रिंटिंग कर सकते हैं। इसके अतिरिक्त, कई नए वैज्ञानिक कैलकुलेटर डॉट मैट्रिक्स स्क्रीन से लैस हैं जो कैसियो एफएक्स-ईएस सीरीज (नेचुरल डिस्प्ले), [[तीव्र ईएल-डब्ल्यू श्रृंखला]] (राइटव्यू), [[एचपी स्मार्टकैल्क श्रृंखला]], [[टीआई-30XB]], और जैसी सुंदर-प्रिंटिंग में सक्षम हैं। [[न्यूमवर्क्स]]।
[[Image:MathematicaTypesetExpression.png|thumb|210px|एक टाइपसेट गणितीय अभिव्यक्ति]]प्रिटी-प्रिंटिंग सामान्यतः [[गणितीय अभिव्यक्ति]]यों को उसी तरह प्रदर्शित करने के लिए संदर्भित करता है जैसे वे कुशल रूप से [[सूत्र संपादक|टाइप]] किया जाता है उदाहरण के लिए, मैक्सिमा (सॉफ़्टवेयर) या [[ मेथेमेटिका |मेथेमेटिका]] जैसे कंप्यूटर बीजगणित सिस्टम में सिस्टम <samp>x ^ 2 + 3 * x</samp> जैसा आउटपुट को {{No wrap|"<math>x^2+3x</math>".}} के रूप में लिख सकते है कुछ [[ग्राफिंग कैलकुलेटर]] जैसे कैसियो 9860 श्रृंखला, एचपी-49 श्रृंखला, [[TI-84 Plus|टीआई-84 प्लस]], [[TI-89|टीआई-89]], और [[TI-Nspire|टीआई-एनस्पायर]], [[TI-83 Plus|टीआई-83 प्लस]] प्रीटीपीटी के साथ<ref>{{Cite web |title=प्रिटीप्रिंट - ticalc.org|url=https://www.ticalc.org/archives/files/fileinfo/208/20807.html |access-date=2022-04-13 |website=www.ticalc.org}}</ref> ऐड-ऑन, या उसी ऐड-ऑन के साथ टीआई-84 प्लस या मैथप्रिंट-सक्षम ओएस, प्रिटी-प्रिंटिंग कर सकते हैं। इसके अतिरिक्त, कई नए वैज्ञानिक कैलकुलेटर डॉट मैट्रिक्स स्क्रीन से लैस हैं जो कैसियो एफएक्स-ईएस सीरीज (नेचुरल डिस्प्ले), [[तीव्र ईएल-डब्ल्यू श्रृंखला]] (राइटव्यू), [[एचपी स्मार्टकैल्क श्रृंखला]], [[टीआई-30XB|टीआई-30एक्सबी]], और [[न्यूमवर्क्स]] जैसी प्रिटी-प्रिंटिंग में सक्षम हैं।  


कई [[टेक्स]]्ट फ़ॉर्मेटिंग प्रोग्राम गणित को टाइपसेट भी कर सकते हैं: TeX को विशेष रूप से उच्च गुणवत्ता वाले गणितीय [[ टाइप बैठना |टाइप बैठना]] के लिए विकसित किया गया था।
कई टेक्स्ट्ट फ़ॉर्मेटिंग प्रोग्राम गणित को टाइपसेट भी कर सकते हैं टेक्स को विशेष रूप से उच्च गुणवत्ता वाले गणितीय [[ टाइप बैठना |टाइपसेटिंग]] के लिए विकसित किया गया था।


== सुंदर-प्रिंटिंग मार्कअप और टैग-आधारित कोड ==
== प्रिटी-प्रिंटिंग मार्कअप और टैग-आधारित कोड ==
[[File:HTML source code example.svg|thumb|HTML स्रोत कोड, इसके तत्वों के पदानुक्रमित संबंधों (जिन्हें टैग कहा जाता है) को बेहतर ढंग से दिखाने के लिए सुंदर-मुद्रित]]मार्कअप लैंग्वेज इंस्टेंसेस में प्रिटी-प्रिंटिंग आमतौर पर टैग और स्ट्रिंग सामग्री के [[इंडेंटेशन (टाइपसेटिंग)]] से जुड़ी होती है, ताकि पदानुक्रम और नेस्टिंग को नेत्रहीन रूप से निर्धारित किया जा सके। हालांकि टैग-आधारित भाषाओं की वाक्य-विन्यास संरचनाएं महत्वपूर्ण रूप से भिन्न नहीं होती हैं, लेकिन मार्कअप भाषा की व्याख्या कैसे की जाती है या इसके द्वारा वर्णित डेटा के कारण इंडेंटेशन में काफी भिन्नता हो सकती है।
[[File:HTML source code example.svg|thumb|एचटीएमएल स्रोत कोड, इसके तत्वों के पदानुक्रमित संबंधों (जिन्हें टैग कहा जाता है) को बेहतर ढंग से दिखाने के लिए प्रिटी-मुद्रित]]मार्कअप लैंग्वेज इंस्टेंसेस में प्रिटी-प्रिंटिंग सामान्यतः टैग और स्ट्रिंग सामग्री के [[इंडेंटेशन (टाइपसेटिंग)]] से जुड़ी होती है, जिससे पदानुक्रम और नेस्टिंग को नेत्रहीन रूप से निर्धारित किया जा सकता है। चूँकि टैग-आधारित भाषाओं की वाक्य-विन्यास संरचनाएं महत्वपूर्ण रूप से भिन्न नहीं होती हैं, किंतु मार्कअप भाषा की व्याख्या कैसे की जाती है या इसके द्वारा वर्णित डेटा के कारण इंडेंटेशन में अधिक भिन्नता हो सकती है।


[[MathML]] में, [[व्हाइटस्पेस चरित्र]] [[XML]] सिंटैक्स द्वारा आवश्यक डेटा, अर्थ या सिंटैक्स को प्रतिबिंबित नहीं करते हैं। [[HTML]] में, टैग्स के बीच के व्हाइटस्पेस वर्णों को टेक्स्ट माना जाता है और पार्स किए गए परिणाम में टेक्स्ट नोड्स के रूप में पार्स किए जाते हैं।<ref>{{cite web |url=https://developer.mozilla.org/en-US/docs/Whitespace_in_the_DOM |title=डोम में व्हाइटस्पेस|first=L. David |last=Baron |publisher=Mozilla Developer Network |accessdate=27 August 2012}}</ref> जबकि मैथएमएल दस्तावेज़ पर इंडेंटेशन उदारता से लागू किया जा सकता है, अतिरिक्त टेक्स्ट नोड्स सामग्री या सामग्री-चिंतनशील टैग तत्वों के सामान्य निकटता में बनाए या नष्ट नहीं किए जाते हैं, यह सुनिश्चित करने के लिए एक HTML दस्तावेज़ की सुंदर-प्रिंटिंग में पर्याप्त अतिरिक्त देखभाल की जानी चाहिए। जटिलता में यह अंतर एक स्वचालित सुंदर-प्रिंट ऑपरेशन के परिप्रेक्ष्य से गैर-तुच्छ है जहां कोई विशेष नियम या किनारे के मामले आवश्यक नहीं हैं, जैसा कि अधिक सरल MathML उदाहरण में है। HTML उदाहरण में टैग तत्वों और सामग्री के विभिन्न पैटर्न के लिए प्रगतिशील परस्पर संबंधित एल्गोरिदम की एक श्रृंखला की आवश्यकता हो सकती है जो एक समान शैली के अनुरूप हो और विभिन्न उदाहरणों में अनुप्रयोग में सुसंगत हो, जैसा कि Markup.ts द्वारा प्रमाणित है।<ref>[https://github.com/prettydiff/prettydiff/blob/master/beautify/markup.ts markup.ts]</ref> [[प्रिटी डिफ]] टूल के लिए HTML, XML और संबंधित तकनीकों को सुशोभित करने के लिए उपयोग किया जाने वाला एप्लिकेशन घटक।
[[MathML|मैथएमएल]] में, [[व्हाइटस्पेस चरित्र]] [[XML|एक्सएमएल]] सिंटैक्स द्वारा आवश्यक डेटा अर्थ या सिंटैक्स को प्रतिबिंबित नहीं करते हैं। [[HTML|एचटीएमएल]] में, टैग्स के बीच के व्हाइटस्पेस वर्णों को टेक्स्ट माना जाता है और पार्स किए गए परिणाम में टेक्स्ट नोड्स के रूप में पार्स किए जाते हैं।<ref>{{cite web |url=https://developer.mozilla.org/en-US/docs/Whitespace_in_the_DOM |title=डोम में व्हाइटस्पेस|first=L. David |last=Baron |publisher=Mozilla Developer Network |accessdate=27 August 2012}}</ref> जबकि मैथएमएल दस्तावेज़ पर इंडेंटेशन उदारता से प्रयुक्त किया जा सकता है, अतिरिक्त टेक्स्ट नोड्स सामग्री या सामग्री-चिंतनशील टैग तत्वों के सामान्य निकटता में बनाए या नष्ट नहीं किए जाते हैं, यह सुनिश्चित करने के लिए एक एचटीएमएल दस्तावेज़ की प्रिटी-प्रिंटिंग में पर्याप्त अतिरिक्त देखभाल की जानी चाहिए। जटिलता में यह अंतर एक स्वचालित प्रिटी-प्रिंट ऑपरेशन के परिप्रेक्ष्य से गैर-तुच्छ है जहां कोई विशेष नियम या किनारे के स्थिति आवश्यक नहीं हैं, जैसा कि अधिक सरल मैथएमएल उदाहरण में है। एचटीएमएल उदाहरण में टैग तत्वों और सामग्री के विभिन्न पैटर्न के लिए प्रगतिशील परस्पर संबंधित एल्गोरिदम की एक श्रृंखला की आवश्यकता हो सकती है जो एक समान शैली के अनुरूप हो और विभिन्न उदाहरणों में अनुप्रयोग में सुसंगत हो, जैसा कि मार्कअप.टीएस द्वारा प्रमाणित है।<ref>[https://github.com/prettydiff/prettydiff/blob/master/beautify/markup.ts markup.ts]</ref> [[प्रिटी डिफ]] उपकरण के लिए एचटीएमएल, एक्सएमएल और संबंधित तकनीकों को सुशोभित करने के लिए उपयोग किया जाने वाला एप्लिकेशन घटक है ।


== प्रोग्रामिंग कोड स्वरूपण ==
== प्रोग्रामिंग कोड स्वरूपण ==
प्रोग्रामर अक्सर प्रोग्रामिंग लैंग्वेज सोर्स कोड को एक विशेष तरीके से फॉर्मेट करने के लिए टूल का उपयोग करते हैं। उचित कोड स्वरूपण पढ़ने और समझने में आसान बनाता है। विभिन्न प्रोग्रामर अक्सर स्वरूपण की विभिन्न शैलियों को पसंद करते हैं, जैसे कोड इंडेंटेशन (टाइपसेटिंग) और व्हाइटस्पेस या [[ कोष्ठक |कोष्ठक]] की स्थिति का उपयोग। एक कोड फ़ॉर्मेटर स्रोत कोड को एक प्रारूप शैली से दूसरे में परिवर्तित करता है। [[प्रोग्रामिंग भाषा]]ओं के स्पष्ट वाक्य-विन्यास के कारण यह अपेक्षाकृत सीधा है। कोड सौंदर्यीकरण में स्रोत कोड को घटक संरचनाओं में पार्स करना शामिल है, जैसे असाइनमेंट स्टेटमेंट्स, यदि ब्लॉक, [[प्रोग्राम लूप]]्स, आदि (प्रवाह को नियंत्रित भी देखें), और कॉन्फ़िगरेशन फ़ाइल में उपयोगकर्ता द्वारा निर्दिष्ट तरीके से उन्हें स्वरूपित करना।
प्रोग्रामर अधिकांशतः प्रोग्रामिंग लैंग्वेज सोर्स कोड को एक विशेष विधि से फॉर्मेट करने के लिए उपकरण का उपयोग करते हैं। उचित कोड स्वरूपण पढ़ने और समझने में आसान बनाता है। विभिन्न प्रोग्रामर अधिकांशतः स्वरूपण की विभिन्न शैलियों को पसंद करते हैं, जैसे कोड इंडेंटेशन (टाइपसेटिंग) और व्हाइटस्पेस या [[ कोष्ठक |कोष्ठक]] की स्थिति का उपयोग एक कोड फ़ॉर्मेटर स्रोत कोड को एक प्रारूप शैली से दूसरे में परिवर्तित करता है। [[प्रोग्रामिंग भाषा]]ओं के स्पष्ट वाक्य-विन्यास के कारण यह अपेक्षाकृत सीधा है। कोड सौंदर्यीकरण में स्रोत कोड को घटक संरचनाओं में पार्स करना सम्मिलित है, जैसे असाइनमेंट स्टेटमेंट्स, यदि ब्लॉक, [[प्रोग्राम लूप]], आदि (प्रवाह को नियंत्रित भी देखें) और कॉन्फ़िगरेशन फ़ाइल में उपयोगकर्ता द्वारा निर्दिष्ट विधि से उन्हें स्वरूपित करना है ।


कोड ब्यूटीफायर स्टैंडअलोन एप्लिकेशन के रूप में मौजूद हैं और [[ पाठ संपादक |पाठ संपादक]] ्स और एकीकृत विकास वातावरण में निर्मित हैं। उदाहरण के लिए, [[Emacs]] के विभिन्न भाषा मोड आकर्षक रूप से कोड के इंडेंटेशन (टाइपसेटिंग) ब्लॉक कर सकते हैं।<ref>{{cite web |url=https://www.gnu.org/software/emacs/manual/html_node/emacs/Program-Indent.html#Program-Indent |title=कार्यक्रमों के लिए इंडेंटेशन|first=Richard M. |last=Stallman |publisher=Free Software Foundation |work=GNU Emacs Manual |accessdate=20 October 2011}}</ref>
कोड ब्यूटीफायर स्टैंडअलोन एप्लिकेशन के रूप में उपस्थित हैं और [[ पाठ संपादक |टेक्स्ट संपादक]] और एकीकृत विकास वातावरण में निर्मित हैं। उदाहरण के लिए, [[Emacs|एमएसीएस]] के विभिन्न भाषा मोड आकर्षक रूप से कोड के इंडेंटेशन (टाइपसेटिंग) ब्लॉक कर सकते हैं।<ref>{{cite web |url=https://www.gnu.org/software/emacs/manual/html_node/emacs/Program-Indent.html#Program-Indent |title=कार्यक्रमों के लिए इंडेंटेशन|first=Richard M. |last=Stallman |publisher=Free Software Foundation |work=GNU Emacs Manual |accessdate=20 October 2011}}</ref>




=== एचटीएमएल ===
=== एचटीएमएल ===
{{see|HTML Tidy}}
{{see|एचटीएमएल सुव्यवस्थित}}
 
=== लिस्प सुंदर-प्रिंटर ===
प्रीटी-प्रिंटिंग का एक प्रारंभिक उदाहरण [[बिल गोस्पर]] का GRINDEF (यानी 'ग्रिंड फंक्शन') प्रोग्राम (c. 1967) था, जिसमें [[ लिस्प प्रोग्रामिंग भाषा |लिस्प प्रोग्रामिंग भाषा]] प्रोग्राम को फॉर्मेट करने के लिए प्रूनिंग के साथ [[संयोजन अनुकूलन]] का उपयोग किया गया था। लिस्प कार्यक्रम के निष्पादन योग्य (सूची संरचना) रूप पर संचालित प्रारंभिक संस्करण और विभिन्न कार्यों के विशेष अर्थों से अनजान थे। बाद के संस्करणों में गैर-निष्पादन योग्य टिप्पणियों को शामिल करने के लिए और अनपेक्षित रूप में [[ मैक्रो पढ़ें |मैक्रो पढ़ें]] ज़ को संरक्षित करने के लिए विशेष रीड कन्वेंशन थे। उन्होंने विशेष कार्यों जैसे विशेष इंडेंटेशन सम्मेलनों की भी अनुमति दी <code>if</code>.<ref>Ira Goldstein, "Pretty Printing : Converting List to Linear Structure", Artificial Intelligence Memo 279, Massachusetts Institute of Technology, February 1973. [http://www.softwarepreservation.org/projects/LISP/MIT/AIM-279-Goldstein-Pretty_Printing.pdf/view full text]</ref><ref>Richard C. Waters, "Using the new common Lisp pretty printer", ''ACM SIGPLAN Lisp Pointers'' '''5''':2:27-34, April–June 1992. [https://web.archive.org/web/20170706120420/ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-1102.pdf full text]</ref> ग्राइंड शब्द का उपयोग कुछ लिस्प हलकों में सुंदर-छपाई के पर्याय के रूप में किया गया था।<ref>[[Jargon File]], ''s.v.'' grind</ref>
 


=== लिस्प प्रिटी-प्रिंटर ===
प्रीटी-प्रिंटिंग का एक प्रारंभिक उदाहरण [[बिल गोस्पर]] का ग्राइंडएफ (अथार्त 'ग्रिंड फंक्शन') प्रोग्राम (c. 1967) था, जिसमें [[ लिस्प प्रोग्रामिंग भाषा |लिस्प प्रोग्रामिंग भाषा]] प्रोग्राम को फॉर्मेट करने के लिए प्रूनिंग के साथ [[संयोजन अनुकूलन]] का उपयोग किया गया था। लिस्प कार्यक्रम के निष्पादन योग्य (सूची संरचना) रूप पर संचालित प्रारंभिक संस्करण और विभिन्न कार्यों के विशेष अर्थों से अनभिज्ञ थे। इसके पश्चात के संस्करणों में गैर-निष्पादन योग्य टिप्पणियों को सम्मिलित करने और पढ़े गए मैक्रोज़ को अनविस्तारित रूप में संरक्षित करने के लिए विशेष रीड कन्वेंशन थीं। उन्होंने <code>if</code> जैसे विशेष कार्यों जैसे विशेष इंडेंटेशन सम्मेलनों की भी अनुमति दी.<ref>Ira Goldstein, "Pretty Printing : Converting List to Linear Structure", Artificial Intelligence Memo 279, Massachusetts Institute of Technology, February 1973. [http://www.softwarepreservation.org/projects/LISP/MIT/AIM-279-Goldstein-Pretty_Printing.pdf/view full text]</ref><ref>Richard C. Waters, "Using the new common Lisp pretty printer", ''ACM SIGPLAN Lisp Pointers'' '''5''':2:27-34, April–June 1992. [https://web.archive.org/web/20170706120420/ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-1102.pdf full text]</ref> ग्राइंड शब्द का उपयोग कुछ लिस्प हलकों में प्रिटी-प्रिंटिंग के पर्याय के रूप में किया गया था।<ref>[[Jargon File]], ''s.v.'' grind</ref>
=== परियोजना शैली नियम ===
=== परियोजना शैली नियम ===
कई ओपन सोर्स प्रोजेक्ट्स ने कोड लेआउट के लिए नियम स्थापित किए हैं। सबसे विशिष्ट [[जीएनयू]] स्वरूपण हैं<ref>[https://www.gnu.org/prep/standards/standards.html#Formatting GNU style]</ref> और बीएसडी शैली।<ref>[http://www.freebsd.org/cgi/man.cgi?query=style&sektion=9 BSD style]</ref> दोनों के बीच सबसे बड़ा अंतर ब्रेसिज़ का स्थान है: जीएनयू शैली में, ओपनिंग और क्लोजिंग ब्रेसिज़ एक ही इंडेंट के साथ लाइनों पर होते हैं। बीएसडी शैली पूर्ववर्ती पंक्ति के अंत में एक उद्घाटन ब्रेस रखती है, और समापन ब्रेसिज़ का पालन अन्य द्वारा किया जा सकता है। इंडेंट का आकार और व्हॉट्सएप का स्थान भी भिन्न होता है।
कई ओपन सोर्स प्रोजेक्ट्स ने कोड लेआउट के लिए नियम स्थापित किए हैं। सबसे विशिष्ट [[जीएनयू]] स्वरूपण हैं<ref>[https://www.gnu.org/prep/standards/standards.html#Formatting GNU style]</ref> और बीएसडी शैली<ref>[http://www.freebsd.org/cgi/man.cgi?query=style&sektion=9 BSD style]</ref> दोनों के बीच सबसे बड़ा अंतर ब्रेसिज़ का स्थान है: जीएनयू शैली में, ओपनिंग और क्लोजिंग ब्रेसिज़ एक ही इंडेंट के साथ लाइनों पर होते हैं। बीएसडी शैली पूर्ववर्ती पंक्ति के अंत में एक उद्घाटन ब्रेस रखती है, और समापन ब्रेसिज़ का पालन अन्य द्वारा किया जा सकता है। इंडेंट का आकार और व्हॉट्सएप का स्थान भी भिन्न होता है।


=== स्वरूपण और सौंदर्यीकरण कोड का उदाहरण ===
=== स्वरूपण और सौंदर्यीकरण कोड का उदाहरण ===
निम्नलिखित उदाहरण कुछ विशिष्ट सी संरचनाओं को दिखाता है और कैसे विभिन्न इंडेंटेशन शैली के नियम उन्हें प्रारूपित करते हैं। बिना किसी स्वरूपण के, यह इस तरह दिखता है:
निम्नलिखित उदाहरण कुछ विशिष्ट सी संरचनाओं को दिखाता है और कैसे विभिन्न इंडेंटेशन शैली के नियम उन्हें प्रारूपित करते हैं। बिना किसी स्वरूपण के यह इस तरह दिखता है:
<syntaxhighlight lang="c">
<syntaxhighlight lang="c">
int foo(int k){if(k<1||k>2){printf("out of range\n");
int foo(int k){if(k<1||k>2){printf("out of range\n");
Line 38: Line 36:
</syntaxhighlight>
</syntaxhighlight>
इंडेंट स्टाइल#GNU स्टाइल के अनुसार इंडेंट करने के लिए कहने पर [[इंडेंट (यूनिक्स)]] निम्नलिखित आउटपुट उत्पन्न करता है:
इंडेंट स्टाइल#GNU स्टाइल के अनुसार इंडेंट करने के लिए कहने पर [[इंडेंट (यूनिक्स)]] निम्नलिखित आउटपुट उत्पन्न करता है:
जीएनयू नियमों के अनुसार इंडेंट करने के लिए कहने पर जीएनयू इंडेंट प्रोग्राम निम्नलिखित आउटपुट उत्पन्न करता है:
<syntaxhighlight lang="c">
<syntaxhighlight lang="c">
int
int
Line 84: Line 84:




== यह भी देखें ==
== यह भी देखें                                                                                                                                     ==
संबंधित अवधारणाएँ
संबंधित अवधारणाएँ
*लचीला टैबस्टॉप, कई स्रोत कोड संपादकों की एक विशेषता है जो संरेखित इंडेंट का पता लगाता है और बनाए रखता है
*लचीला टैबस्टॉप के कई स्रोत कोड संपादकों की एक विशेषता है जो संरेखित इंडेंट का पता लगाता है और बनाए रखता है
* [[ न्यूनतमकरण (प्रोग्रामिंग) ]], सोर्स कोड को कॉम्पैक्ट बनाना, भले ही इंसानों के लिए इसे समझना मुश्किल हो जाए
* [[ न्यूनतमकरण (प्रोग्रामिंग) ]], सोर्स कोड को कॉम्पैक्ट बनाना,तथापि इंसानों के लिए इसे समझना कठिन हो जाता है
* [[अस्पष्टता (सॉफ्टवेयर)]], जानबूझकर स्रोत कोड को मनुष्यों के लिए समझना बहुत कठिन बना देता है, भले ही वह कुछ जटिल हो
* [[अस्पष्टता (सॉफ्टवेयर)]], अभिप्राय से स्रोत कोड को मनुष्यों के लिए समझना बहुत कठिन बना देता है, तथापि वह कुछ जटिल हो
उपयोगिताओं
उपयोगिताओं


* [[शिलालेख]], एक टेक्स्ट-टू-पोस्टस्क्रिप्ट कन्वर्टर, सुंदर-प्रिंटिंग सुविधाओं के साथ
*प्रिटी-प्रिंटिंग सुविधाओं के साथ एक टेक्स्ट-टू-पोस्टस्क्रिप्ट कनवर्टर को एन्क्रिप्ट करें


==संदर्भ==
==संदर्भ==
Line 101: Line 101:
* [https://www.ctan.org/pkg/lgrind?lang=en lgrind], Comprehensive TEX Archive Network
* [https://www.ctan.org/pkg/lgrind?lang=en lgrind], Comprehensive TEX Archive Network
* [http://doi.acm.org/10.1145/362790.362796 NEATER2: a PL/I source statement reformatter] ''Kenneth Conrow, Ronald G. Smith'': Commun. ACM 13(11): 669-675 (1970)
* [http://doi.acm.org/10.1145/362790.362796 NEATER2: a PL/I source statement reformatter] ''Kenneth Conrow, Ronald G. Smith'': Commun. ACM 13(11): 669-675 (1970)
* [http://gtoal.com/languages/algol60/KDF9/SOAP%20description%20and%20Algol60%20source%20-%20CCU6.pdf SOAP - Simplify Obscure Algol Programs] ''R. S. Scowen, D. Allin, A. L. Hillman, M. Shimell'': National Physical Laboratory Central Computer Unit report [https://discovery.nationalarchives.gov.uk/details/r/C4192654 CCU6] (April, 1969) Includes formatted listing of SOAP source code.
* [http://gtoal.com/languages/algol60/KDF9/SOAP%20description%20and%20Algol60%20source%20-%20CCU6.pdf SOAP - Simplify Obscure Algol Programs] ''R. S. Scowen, D. Allin, A. L. Hillman, M. Shimell'': Naटीआईonal Physical Laboratory Central Computer Unit report [https://discovery.nationalarchives.gov.uk/details/r/C4192654 CCU6] (April, 1969) Includes formatted lisटीआईng of SOAP source code.
** [https://web.archive.org/web/20061012173444/http://comjnl.oxfordjournals.org/cgi/content/abstract/14/2/133 SOAP - A Program which Documents and Edits ALGOL 60 Programs.] ''R. S. Scowen, D. Allin, A. L. Hillman, M. Shimell'': Comput. J. 14(2): 133-135 (1971)
** [https://web.archive.org/web/20061012173444/http://comjnl.oxfordjournals.org/cgi/content/abstract/14/2/133 SOAP - A Program which Documents and Edits ALGOL 60 Programs.] ''R. S. Scowen, D. Allin, A. L. Hillman, M. Shimell'': Comput. J. 14(2): 133-135 (1971)
** [https://gtoal.com/languages/algol60/KDF9/soap.a60.html Original SOAP Source Code from the KDF9]
** [https://gtoal.com/languages/algol60/KDF9/soap.a60.html Original SOAP Source Code from the KDF9]
* [http://history.dcs.ed.ac.uk/archive/os/emas/users/ecslib/emas-a/impis-unpacked/soapdoc.txt SOAP User's Guide.] (for [[Edinburgh IMP]]) ''Peter Salkeld Robertson'' (1976)
* [http://history.dcs.ed.ac.uk/archive/os/emas/users/ecslib/emas-a/impis-unpacked/soapdoc.txt SOAP User's Guide.] (for [[Edinburgh IMP]]) ''Peter Salkeld Robertson'' (1976)
** [http://history.dcs.ed.ac.uk/archive/os/emas/users/ecslib/emas-a/impis-unpacked/soaps.txt SOAP Source Code] in/for [[Edinburgh IMP|IMP9]]
** [http://history.dcs.ed.ac.uk/archive/os/emas/users/ecslib/emas-a/impis-unpacked/soaps.txt SOAP Source Code] in/for [[Edinburgh IMP|IMP9]]
* [http://history.dcs.ed.ac.uk/archive/os/emas/emas2/compilers/imputils/soap80/soap80li.html Soap80: A Program for Formatting IMP80 Source Programs.] ''J.M. Murison, Edinburgh Regional Computer Center'' (1980)
* [http://history.dcs.ed.ac.uk/archive/os/emas/emas2/compilers/imputils/soap80/soap80li.html Soap80: A Program for Formatटीआईng IMP80 Source Programs.] ''J.M. Murison, Edinburgh Regional Computer Center'' (1980)
** [http://history.dcs.ed.ac.uk/archive/os/emas/emas2/compilers/imputils/soap80/soap80s.imp.html SOAP Source Code] in/for [[Edinburgh IMP|IMP80]] ''E. N. Gregory, University of Kent at Canterbury; Peter D. Stephens, Edinburgh Regional Computer Center''
** [http://history.dcs.ed.ac.uk/archive/os/emas/emas2/compilers/imputils/soap80/soap80s.imp.html SOAP Source Code] in/for [[Edinburgh IMP|IMP80]] ''E. N. Gregory, University of Kent at Canterbury; Peter D. Stephens, Edinburgh Regional Computer Center''
* [http://www.moorecad.com/standardpascal/prettyp.pas PRETTYP.PAS] Early pascal prettyprinter. ''Ledgard et al.''
* [http://www.moorecad.com/standardpascal/prettyp.pas PRETTYP.PAS] Early pascal prettyprinter. ''Ledgard et al.''
Line 112: Line 112:
* [http://www.freebsd.org/cgi/man.cgi?query=style&sektion=9 style(9)] FreeBSD style guidelines
* [http://www.freebsd.org/cgi/man.cgi?query=style&sektion=9 style(9)] FreeBSD style guidelines
* [http://heirloom.sourceforge.net/doctools/vgrind.1b.html vgrind], The [Unix] Heirloom Project
* [http://heirloom.sourceforge.net/doctools/vgrind.1b.html vgrind], The [Unix] Heirloom Project
* [https://www.gnu.org/prep/standards/standards.html#Formatting Formatting your source code] GNU style guidelines
* [https://www.gnu.org/prep/standards/standards.html#Formatting Formatटीआईng your source code] GNU style guidelines
[[Category: उदाहरण सी कोड वाले लेख]] [[Category: सोर्स कोड]] [[Category: पाठ संपादक सुविधाएँ]]
 
 


[[Category: Machine Translated Page]]
[[Category:Articles with hatnote templates targeting a nonexistent page]]
[[Category:Created On 16/06/2023]]
[[Category:Created On 16/06/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Pages with script errors]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:उदाहरण सी कोड वाले लेख]]
[[Category:पाठ संपादक सुविधाएँ]]
[[Category:सोर्स कोड]]

Latest revision as of 11:57, 2 July 2023

प्रिटी-प्रिंटिंग (या प्रिटीप्रिंटिंग) किसी भी विभिन्न शैलीगत टेक्स्ट स्वरूपण सम्मेलनों का टेक्स्ट फ़ाइल, जैसे स्रोत कोड, मार्कअप भाषा और समान प्रकार की सामग्री का अनुप्रयोग है। इन स्वरूपण सम्मेलनों में इंडेंटेशन शैली का पालन करना तथा स्रोत कोड के वाक्य - विन्यास पर प्रकाश डालना के लिए अलग-अलग रंग और टाइपफेस का उपयोग किया जाता है या आकार समायोजित करना, और लोगों को पढ़ने और समझने के लिए सामग्री को आसान बनाने के लिए आवश्यक हो सकता है। स्रोत कोड के लिए प्रिटी-प्रिंटर को कभी-कभी कोड फ़ॉर्मेटर या ब्यूटिफायर कहा जाता है।

प्रिटी-मुद्रण गणित

एक टाइपसेट गणितीय अभिव्यक्ति

प्रिटी-प्रिंटिंग सामान्यतः गणितीय अभिव्यक्तियों को उसी तरह प्रदर्शित करने के लिए संदर्भित करता है जैसे वे कुशल रूप से टाइप किया जाता है उदाहरण के लिए, मैक्सिमा (सॉफ़्टवेयर) या मेथेमेटिका जैसे कंप्यूटर बीजगणित सिस्टम में सिस्टम x ^ 2 + 3 * x जैसा आउटपुट को "". के रूप में लिख सकते है कुछ ग्राफिंग कैलकुलेटर जैसे कैसियो 9860 श्रृंखला, एचपी-49 श्रृंखला, टीआई-84 प्लस, टीआई-89, और टीआई-एनस्पायर, टीआई-83 प्लस प्रीटीपीटी के साथ[1] ऐड-ऑन, या उसी ऐड-ऑन के साथ टीआई-84 प्लस या मैथप्रिंट-सक्षम ओएस, प्रिटी-प्रिंटिंग कर सकते हैं। इसके अतिरिक्त, कई नए वैज्ञानिक कैलकुलेटर डॉट मैट्रिक्स स्क्रीन से लैस हैं जो कैसियो एफएक्स-ईएस सीरीज (नेचुरल डिस्प्ले), तीव्र ईएल-डब्ल्यू श्रृंखला (राइटव्यू), एचपी स्मार्टकैल्क श्रृंखला, टीआई-30एक्सबी, और न्यूमवर्क्स जैसी प्रिटी-प्रिंटिंग में सक्षम हैं।

कई टेक्स्ट्ट फ़ॉर्मेटिंग प्रोग्राम गणित को टाइपसेट भी कर सकते हैं टेक्स को विशेष रूप से उच्च गुणवत्ता वाले गणितीय टाइपसेटिंग के लिए विकसित किया गया था।

प्रिटी-प्रिंटिंग मार्कअप और टैग-आधारित कोड

एचटीएमएल स्रोत कोड, इसके तत्वों के पदानुक्रमित संबंधों (जिन्हें टैग कहा जाता है) को बेहतर ढंग से दिखाने के लिए प्रिटी-मुद्रित

मार्कअप लैंग्वेज इंस्टेंसेस में प्रिटी-प्रिंटिंग सामान्यतः टैग और स्ट्रिंग सामग्री के इंडेंटेशन (टाइपसेटिंग) से जुड़ी होती है, जिससे पदानुक्रम और नेस्टिंग को नेत्रहीन रूप से निर्धारित किया जा सकता है। चूँकि टैग-आधारित भाषाओं की वाक्य-विन्यास संरचनाएं महत्वपूर्ण रूप से भिन्न नहीं होती हैं, किंतु मार्कअप भाषा की व्याख्या कैसे की जाती है या इसके द्वारा वर्णित डेटा के कारण इंडेंटेशन में अधिक भिन्नता हो सकती है।

मैथएमएल में, व्हाइटस्पेस चरित्र एक्सएमएल सिंटैक्स द्वारा आवश्यक डेटा अर्थ या सिंटैक्स को प्रतिबिंबित नहीं करते हैं। एचटीएमएल में, टैग्स के बीच के व्हाइटस्पेस वर्णों को टेक्स्ट माना जाता है और पार्स किए गए परिणाम में टेक्स्ट नोड्स के रूप में पार्स किए जाते हैं।[2] जबकि मैथएमएल दस्तावेज़ पर इंडेंटेशन उदारता से प्रयुक्त किया जा सकता है, अतिरिक्त टेक्स्ट नोड्स सामग्री या सामग्री-चिंतनशील टैग तत्वों के सामान्य निकटता में बनाए या नष्ट नहीं किए जाते हैं, यह सुनिश्चित करने के लिए एक एचटीएमएल दस्तावेज़ की प्रिटी-प्रिंटिंग में पर्याप्त अतिरिक्त देखभाल की जानी चाहिए। जटिलता में यह अंतर एक स्वचालित प्रिटी-प्रिंट ऑपरेशन के परिप्रेक्ष्य से गैर-तुच्छ है जहां कोई विशेष नियम या किनारे के स्थिति आवश्यक नहीं हैं, जैसा कि अधिक सरल मैथएमएल उदाहरण में है। एचटीएमएल उदाहरण में टैग तत्वों और सामग्री के विभिन्न पैटर्न के लिए प्रगतिशील परस्पर संबंधित एल्गोरिदम की एक श्रृंखला की आवश्यकता हो सकती है जो एक समान शैली के अनुरूप हो और विभिन्न उदाहरणों में अनुप्रयोग में सुसंगत हो, जैसा कि मार्कअप.टीएस द्वारा प्रमाणित है।[3] प्रिटी डिफ उपकरण के लिए एचटीएमएल, एक्सएमएल और संबंधित तकनीकों को सुशोभित करने के लिए उपयोग किया जाने वाला एप्लिकेशन घटक है ।

प्रोग्रामिंग कोड स्वरूपण

प्रोग्रामर अधिकांशतः प्रोग्रामिंग लैंग्वेज सोर्स कोड को एक विशेष विधि से फॉर्मेट करने के लिए उपकरण का उपयोग करते हैं। उचित कोड स्वरूपण पढ़ने और समझने में आसान बनाता है। विभिन्न प्रोग्रामर अधिकांशतः स्वरूपण की विभिन्न शैलियों को पसंद करते हैं, जैसे कोड इंडेंटेशन (टाइपसेटिंग) और व्हाइटस्पेस या कोष्ठक की स्थिति का उपयोग एक कोड फ़ॉर्मेटर स्रोत कोड को एक प्रारूप शैली से दूसरे में परिवर्तित करता है। प्रोग्रामिंग भाषाओं के स्पष्ट वाक्य-विन्यास के कारण यह अपेक्षाकृत सीधा है। कोड सौंदर्यीकरण में स्रोत कोड को घटक संरचनाओं में पार्स करना सम्मिलित है, जैसे असाइनमेंट स्टेटमेंट्स, यदि ब्लॉक, प्रोग्राम लूप, आदि (प्रवाह को नियंत्रित भी देखें) और कॉन्फ़िगरेशन फ़ाइल में उपयोगकर्ता द्वारा निर्दिष्ट विधि से उन्हें स्वरूपित करना है ।

कोड ब्यूटीफायर स्टैंडअलोन एप्लिकेशन के रूप में उपस्थित हैं और टेक्स्ट संपादक और एकीकृत विकास वातावरण में निर्मित हैं। उदाहरण के लिए, एमएसीएस के विभिन्न भाषा मोड आकर्षक रूप से कोड के इंडेंटेशन (टाइपसेटिंग) ब्लॉक कर सकते हैं।[4]


एचटीएमएल

लिस्प प्रिटी-प्रिंटर

प्रीटी-प्रिंटिंग का एक प्रारंभिक उदाहरण बिल गोस्पर का ग्राइंडएफ (अथार्त 'ग्रिंड फंक्शन') प्रोग्राम (c. 1967) था, जिसमें लिस्प प्रोग्रामिंग भाषा प्रोग्राम को फॉर्मेट करने के लिए प्रूनिंग के साथ संयोजन अनुकूलन का उपयोग किया गया था। लिस्प कार्यक्रम के निष्पादन योग्य (सूची संरचना) रूप पर संचालित प्रारंभिक संस्करण और विभिन्न कार्यों के विशेष अर्थों से अनभिज्ञ थे। इसके पश्चात के संस्करणों में गैर-निष्पादन योग्य टिप्पणियों को सम्मिलित करने और पढ़े गए मैक्रोज़ को अनविस्तारित रूप में संरक्षित करने के लिए विशेष रीड कन्वेंशन थीं। उन्होंने if जैसे विशेष कार्यों जैसे विशेष इंडेंटेशन सम्मेलनों की भी अनुमति दी.[5][6] ग्राइंड शब्द का उपयोग कुछ लिस्प हलकों में प्रिटी-प्रिंटिंग के पर्याय के रूप में किया गया था।[7]

परियोजना शैली नियम

कई ओपन सोर्स प्रोजेक्ट्स ने कोड लेआउट के लिए नियम स्थापित किए हैं। सबसे विशिष्ट जीएनयू स्वरूपण हैं[8] और बीएसडी शैली[9] दोनों के बीच सबसे बड़ा अंतर ब्रेसिज़ का स्थान है: जीएनयू शैली में, ओपनिंग और क्लोजिंग ब्रेसिज़ एक ही इंडेंट के साथ लाइनों पर होते हैं। बीएसडी शैली पूर्ववर्ती पंक्ति के अंत में एक उद्घाटन ब्रेस रखती है, और समापन ब्रेसिज़ का पालन अन्य द्वारा किया जा सकता है। इंडेंट का आकार और व्हॉट्सएप का स्थान भी भिन्न होता है।

स्वरूपण और सौंदर्यीकरण कोड का उदाहरण

निम्नलिखित उदाहरण कुछ विशिष्ट सी संरचनाओं को दिखाता है और कैसे विभिन्न इंडेंटेशन शैली के नियम उन्हें प्रारूपित करते हैं। बिना किसी स्वरूपण के यह इस तरह दिखता है:

int foo(int k){if(k<1||k>2){printf("out of range\n");
printf("this function requires a value of 1 or 2\n");}else{
printf("Switching\n");switch(k){case 1:printf("1\n");break;case
2:printf("2\n");break;}}}

इंडेंट स्टाइल#GNU स्टाइल के अनुसार इंडेंट करने के लिए कहने पर इंडेंट (यूनिक्स) निम्नलिखित आउटपुट उत्पन्न करता है:

जीएनयू नियमों के अनुसार इंडेंट करने के लिए कहने पर जीएनयू इंडेंट प्रोग्राम निम्नलिखित आउटपुट उत्पन्न करता है:

int
foo (int k)
{
  if (k < 1 || k > 2)
    {
      printf ("out of range\n");
      printf ("this function requires a value of 1 or 2\n");
    }
  else
    {
      printf ("Switching\n");
      switch (k)
        {
        case 1:
          printf ("1\n");
          break;
        case 2:
          printf ("2\n");
          break;
        }
    }
}

बीएसडी नियमों के अनुसार स्वरूपण करते समय यह इस आउटपुट का उत्पादन करता है:

int
foo(int k) {
	if (k < 1 || k > 2) {
		printf("out of range\n");
		printf("this function requires a value of 1 or 2\n");
	} else {
		printf("Switching\n");
		switch (k) {
		case 1:
			printf("1\n");
			break;
		case 2:
			printf("2\n");
			break;
		}
	}
}


यह भी देखें

संबंधित अवधारणाएँ

  • लचीला टैबस्टॉप के कई स्रोत कोड संपादकों की एक विशेषता है जो संरेखित इंडेंट का पता लगाता है और बनाए रखता है
  • न्यूनतमकरण (प्रोग्रामिंग) , सोर्स कोड को कॉम्पैक्ट बनाना,तथापि इंसानों के लिए इसे समझना कठिन हो जाता है
  • अस्पष्टता (सॉफ्टवेयर), अभिप्राय से स्रोत कोड को मनुष्यों के लिए समझना बहुत कठिन बना देता है, तथापि वह कुछ जटिल हो

उपयोगिताओं

  • प्रिटी-प्रिंटिंग सुविधाओं के साथ एक टेक्स्ट-टू-पोस्टस्क्रिप्ट कनवर्टर को एन्क्रिप्ट करें

संदर्भ

  1. "प्रिटीप्रिंट - ticalc.org". www.ticalc.org. Retrieved 2022-04-13.
  2. Baron, L. David. "डोम में व्हाइटस्पेस". Mozilla Developer Network. Retrieved 27 August 2012.
  3. markup.ts
  4. Stallman, Richard M. "कार्यक्रमों के लिए इंडेंटेशन". GNU Emacs Manual. Free Software Foundation. Retrieved 20 October 2011.
  5. Ira Goldstein, "Pretty Printing : Converting List to Linear Structure", Artificial Intelligence Memo 279, Massachusetts Institute of Technology, February 1973. full text
  6. Richard C. Waters, "Using the new common Lisp pretty printer", ACM SIGPLAN Lisp Pointers 5:2:27-34, April–June 1992. full text
  7. Jargon File, s.v. grind
  8. GNU style
  9. BSD style


बाहरी संबंध