प्रिटीप्रिंट
प्रिटी-प्रिंटिंग (या प्रिटीप्रिंटिंग) किसी भी विभिन्न शैलीगत पाठ स्वरूपण सम्मेलनों का पाठ फ़ाइलों, जैसे स्रोत कोड, मार्कअप भाषा और समान प्रकार की सामग्री का अनुप्रयोग है। इन स्वरूपण सम्मेलनों में इंडेंटेशन शैली का पालन करना, स्रोत कोड के वाक्य - विन्यास पर प्रकाश डालना के लिए अलग-अलग रंग और टाइपफेस का उपयोग करना, या आकार समायोजित करना, लोगों को पढ़ने और समझने के लिए सामग्री को आसान बनाने के लिए आवश्यक हो सकता है। स्रोत कोड के लिए प्रिटी-प्रिंटर को कभी-कभी कोड फ़ॉर्मेटर या ब्यूटिफायर कहा जाता है।
सुंदर-मुद्रण गणित
प्रिटी-प्रिंटिंग आमतौर पर गणितीय अभिव्यक्तियों को उसी तरह प्रदर्शित करने के लिए संदर्भित करता है जैसे वे पेशेवर रूप से सूत्र संपादक होंगे। उदाहरण के लिए, मैक्सिमा (सॉफ़्टवेयर) या मेथेमेटिका जैसे कंप्यूटर बीजगणित सिस्टम में सिस्टम x ^ 2 + 3 * x जैसा आउटपुट लिख सकता है "". कुछ ग्राफिंग कैलकुलेटर जैसे Casio 9860 सीरीज, HP-49 सीरीज, TI-84 Plus, TI-89, और TI-Nspire, TI-83 Plus प्रीटीपीटी के साथ[1] ऐड-ऑन, या उसी ऐड-ऑन के साथ TI-84 Plus या MathPrint-सक्षम OSes, प्रिटी-प्रिंटिंग कर सकते हैं। इसके अतिरिक्त, कई नए वैज्ञानिक कैलकुलेटर डॉट मैट्रिक्स स्क्रीन से लैस हैं जो कैसियो एफएक्स-ईएस सीरीज (नेचुरल डिस्प्ले), तीव्र ईएल-डब्ल्यू श्रृंखला (राइटव्यू), एचपी स्मार्टकैल्क श्रृंखला, टीआई-30XB, और जैसी सुंदर-प्रिंटिंग में सक्षम हैं। न्यूमवर्क्स।
कई टेक्स्ट फ़ॉर्मेटिंग प्रोग्राम गणित को टाइपसेट भी कर सकते हैं: TeX को विशेष रूप से उच्च गुणवत्ता वाले गणितीय टाइप बैठना के लिए विकसित किया गया था।
सुंदर-प्रिंटिंग मार्कअप और टैग-आधारित कोड
मार्कअप लैंग्वेज इंस्टेंसेस में प्रिटी-प्रिंटिंग आमतौर पर टैग और स्ट्रिंग सामग्री के इंडेंटेशन (टाइपसेटिंग) से जुड़ी होती है, ताकि पदानुक्रम और नेस्टिंग को नेत्रहीन रूप से निर्धारित किया जा सके। हालांकि टैग-आधारित भाषाओं की वाक्य-विन्यास संरचनाएं महत्वपूर्ण रूप से भिन्न नहीं होती हैं, लेकिन मार्कअप भाषा की व्याख्या कैसे की जाती है या इसके द्वारा वर्णित डेटा के कारण इंडेंटेशन में काफी भिन्नता हो सकती है।
MathML में, व्हाइटस्पेस चरित्र XML सिंटैक्स द्वारा आवश्यक डेटा, अर्थ या सिंटैक्स को प्रतिबिंबित नहीं करते हैं। HTML में, टैग्स के बीच के व्हाइटस्पेस वर्णों को टेक्स्ट माना जाता है और पार्स किए गए परिणाम में टेक्स्ट नोड्स के रूप में पार्स किए जाते हैं।[2] जबकि मैथएमएल दस्तावेज़ पर इंडेंटेशन उदारता से लागू किया जा सकता है, अतिरिक्त टेक्स्ट नोड्स सामग्री या सामग्री-चिंतनशील टैग तत्वों के सामान्य निकटता में बनाए या नष्ट नहीं किए जाते हैं, यह सुनिश्चित करने के लिए एक HTML दस्तावेज़ की सुंदर-प्रिंटिंग में पर्याप्त अतिरिक्त देखभाल की जानी चाहिए। जटिलता में यह अंतर एक स्वचालित सुंदर-प्रिंट ऑपरेशन के परिप्रेक्ष्य से गैर-तुच्छ है जहां कोई विशेष नियम या किनारे के मामले आवश्यक नहीं हैं, जैसा कि अधिक सरल MathML उदाहरण में है। HTML उदाहरण में टैग तत्वों और सामग्री के विभिन्न पैटर्न के लिए प्रगतिशील परस्पर संबंधित एल्गोरिदम की एक श्रृंखला की आवश्यकता हो सकती है जो एक समान शैली के अनुरूप हो और विभिन्न उदाहरणों में अनुप्रयोग में सुसंगत हो, जैसा कि Markup.ts द्वारा प्रमाणित है।[3] प्रिटी डिफ टूल के लिए HTML, XML और संबंधित तकनीकों को सुशोभित करने के लिए उपयोग किया जाने वाला एप्लिकेशन घटक।
प्रोग्रामिंग कोड स्वरूपण
प्रोग्रामर अक्सर प्रोग्रामिंग लैंग्वेज सोर्स कोड को एक विशेष तरीके से फॉर्मेट करने के लिए टूल का उपयोग करते हैं। उचित कोड स्वरूपण पढ़ने और समझने में आसान बनाता है। विभिन्न प्रोग्रामर अक्सर स्वरूपण की विभिन्न शैलियों को पसंद करते हैं, जैसे कोड इंडेंटेशन (टाइपसेटिंग) और व्हाइटस्पेस या कोष्ठक की स्थिति का उपयोग। एक कोड फ़ॉर्मेटर स्रोत कोड को एक प्रारूप शैली से दूसरे में परिवर्तित करता है। प्रोग्रामिंग भाषाओं के स्पष्ट वाक्य-विन्यास के कारण यह अपेक्षाकृत सीधा है। कोड सौंदर्यीकरण में स्रोत कोड को घटक संरचनाओं में पार्स करना शामिल है, जैसे असाइनमेंट स्टेटमेंट्स, यदि ब्लॉक, प्रोग्राम लूप्स, आदि (प्रवाह को नियंत्रित भी देखें), और कॉन्फ़िगरेशन फ़ाइल में उपयोगकर्ता द्वारा निर्दिष्ट तरीके से उन्हें स्वरूपित करना।
कोड ब्यूटीफायर स्टैंडअलोन एप्लिकेशन के रूप में मौजूद हैं और पाठ संपादक ्स और एकीकृत विकास वातावरण में निर्मित हैं। उदाहरण के लिए, Emacs के विभिन्न भाषा मोड आकर्षक रूप से कोड के इंडेंटेशन (टाइपसेटिंग) ब्लॉक कर सकते हैं।[4]
एचटीएमएल
लिस्प सुंदर-प्रिंटर
प्रीटी-प्रिंटिंग का एक प्रारंभिक उदाहरण बिल गोस्पर का GRINDEF (यानी 'ग्रिंड फंक्शन') प्रोग्राम (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;
}
}
}
यह भी देखें
संबंधित अवधारणाएँ
- लचीला टैबस्टॉप, कई स्रोत कोड संपादकों की एक विशेषता है जो संरेखित इंडेंट का पता लगाता है और बनाए रखता है
- न्यूनतमकरण (प्रोग्रामिंग) , सोर्स कोड को कॉम्पैक्ट बनाना, भले ही इंसानों के लिए इसे समझना मुश्किल हो जाए
- अस्पष्टता (सॉफ्टवेयर), जानबूझकर स्रोत कोड को मनुष्यों के लिए समझना बहुत कठिन बना देता है, भले ही वह कुछ जटिल हो
उपयोगिताओं
- शिलालेख, एक टेक्स्ट-टू-पोस्टस्क्रिप्ट कन्वर्टर, सुंदर-प्रिंटिंग सुविधाओं के साथ
संदर्भ
- ↑ "प्रिटीप्रिंट - ticalc.org". www.ticalc.org. Retrieved 2022-04-13.
- ↑ Baron, L. David. "डोम में व्हाइटस्पेस". Mozilla Developer Network. Retrieved 2012-08-27.
- ↑ markup.ts
- ↑ Stallman, Richard M. "कार्यक्रमों के लिए इंडेंटेशन". GNU Emacs Manual. Free Software Foundation. Retrieved 2011-10-20.
- ↑ Ira Goldstein, "Pretty Printing : Converting List to Linear Structure", Artificial Intelligence Memo 279, Massachusetts Institute of Technology, February 1973. full text
- ↑ Richard C. Waters, "Using the new common Lisp pretty printer", ACM SIGPLAN Lisp Pointers 5:2:27-34, April–June 1992. full text
- ↑ Jargon File, s.v. grind
- ↑ GNU style
- ↑ BSD style
बाहरी संबंध
- Algorithm 268: ALGOL 60 reference language editor William M. McKeeman: Commun. ACM 8(11): 667-668 (1965)
- lgrind, Comprehensive TEX Archive Network
- NEATER2: a PL/I source statement reformatter Kenneth Conrow, Ronald G. Smith: Commun. ACM 13(11): 669-675 (1970)
- SOAP - Simplify Obscure Algol Programs R. S. Scowen, D. Allin, A. L. Hillman, M. Shimell: National Physical Laboratory Central Computer Unit report CCU6 (April, 1969) Includes formatted listing of SOAP source code.
- 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)
- Original SOAP Source Code from the KDF9
- SOAP User's Guide. (for Edinburgh IMP) Peter Salkeld Robertson (1976)
- SOAP Source Code in/for IMP9
- Soap80: A Program for Formatting IMP80 Source Programs. J.M. Murison, Edinburgh Regional Computer Center (1980)
- SOAP Source Code in/for IMP80 E. N. Gregory, University of Kent at Canterbury; Peter D. Stephens, Edinburgh Regional Computer Center
- PRETTYP.PAS Early pascal prettyprinter. Ledgard et al.
- Pascal With Style (1979)
- style(9) FreeBSD style guidelines
- vgrind, The [Unix] Heirloom Project
- Formatting your source code GNU style guidelines