प्रिटीप्रिंट
प्रिटी-प्रिंटिंग (या प्रिटीप्रिंटिंग) किसी भी विभिन्न शैलीगत टेक्स्ट स्वरूपण सम्मेलनों का टेक्स्ट फ़ाइल, जैसे स्रोत कोड, मार्कअप भाषा और समान प्रकार की सामग्री का अनुप्रयोग है। इन स्वरूपण सम्मेलनों में इंडेंटेशन शैली का पालन करना तथा स्रोत कोड के वाक्य - विन्यास पर प्रकाश डालना के लिए अलग-अलग रंग और टाइपफेस का उपयोग किया जाता है या आकार समायोजित करना, और लोगों को पढ़ने और समझने के लिए सामग्री को आसान बनाने के लिए आवश्यक हो सकता है। स्रोत कोड के लिए प्रिटी-प्रिंटर को कभी-कभी कोड फ़ॉर्मेटर या ब्यूटिफायर कहा जाता है।
प्रिटी-मुद्रण गणित
प्रिटी-प्रिंटिंग सामान्यतः गणितीय अभिव्यक्तियों को उसी तरह प्रदर्शित करने के लिए संदर्भित करता है जैसे वे कुशल रूप से टाइप किया जाता है उदाहरण के लिए, मैक्सिमा (सॉफ़्टवेयर) या मेथेमेटिका जैसे कंप्यूटर बीजगणित सिस्टम में सिस्टम 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;
}
}
}
यह भी देखें
संबंधित अवधारणाएँ
- लचीला टैबस्टॉप के कई स्रोत कोड संपादकों की एक विशेषता है जो संरेखित इंडेंट का पता लगाता है और बनाए रखता है
- न्यूनतमकरण (प्रोग्रामिंग) , सोर्स कोड को कॉम्पैक्ट बनाना,तथापि इंसानों के लिए इसे समझना कठिन हो जाता है
- अस्पष्टता (सॉफ्टवेयर), अभिप्राय से स्रोत कोड को मनुष्यों के लिए समझना बहुत कठिन बना देता है, तथापि वह कुछ जटिल हो
उपयोगिताओं
- प्रिटी-प्रिंटिंग सुविधाओं के साथ एक टेक्स्ट-टू-पोस्टस्क्रिप्ट कनवर्टर को एन्क्रिप्ट करें
संदर्भ
- ↑ "प्रिटीप्रिंट - ticalc.org". www.ticalc.org. Retrieved 2022-04-13.
- ↑ Baron, L. David. "डोम में व्हाइटस्पेस". Mozilla Developer Network. Retrieved 27 August 2012.
- ↑ markup.ts
- ↑ Stallman, Richard M. "कार्यक्रमों के लिए इंडेंटेशन". GNU Emacs Manual. Free Software Foundation. Retrieved 20 October 2011.
- ↑ 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: Naटीआईonal Physical Laboratory Central Computer Unit report CCU6 (April, 1969) Includes formatted lisटीआईng 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 Formatटीआईng 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
- Formatटीआईng your source code GNU style guidelines