पीडब्ल्यूसीटी

PWCT सॉफ्टवेयर डेवलपमेंट के लिए एक खुला स्त्रोत   दृश्य प्रोग्रामिंग भाषा  है।

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

इतिहास
* PWCT को दिसंबर 2005 में SourceForge पर पंजीकृत किया गया था
 * PWCT 1.0 को 18 अक्टूबर 2008 को जारी किया गया था
 * PWCT 1.1 को 20 फरवरी 2009 को जारी किया गया था
 * PWCT 1.2 को 4 मई 2009 को जारी किया गया था
 * PWCT 1.3 को 30 मई 2009 को जारी किया गया था
 * PWCT 1.4 को 28 अगस्त 2009 को जारी किया गया था
 * PWCT 1.5 को 27 मार्च 2010 को जारी किया गया था
 * PWCT 1.6 को 16 मई 2010 को जारी किया गया था
 * PWCT 1.7 को 15 सितंबर 2010 को जारी किया गया था
 * PWCT 1.8 18 अक्टूबर 2011 को जारी किया गया था (अंतिम अपडेट : 22 अप्रैल 2013)
 * PWCT 1.9 7 मई 2013 को जारी किया गया था (नवीनतम अपडेट : 2 जनवरी 2021)

अवधारणा


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

PWCT के अंदर दृश्य स्रोत को लक्ष्य डिज़ाइनर का उपयोग करके डिज़ाइन किया गया है जहाँ प्रोग्रामर दृश्य भाषा घटकों के साथ बातचीत के माध्यम से स्टेप ट्री उत्पन्न कर सकता है।

PWCT के अंदर, दृश्य स्रोत लक्ष्यों का एक संग्रह है, प्रत्येक लक्ष्य में चरणों का वृक्ष होता है और चरण वृक्ष के अंदर प्रत्येक चरण/नोड में एक या अधिक डेटा प्रविष्टि प्रपत्र हो सकते हैं। स्टेप्स ट्री उन रंगों का उपयोग करता है जो प्रोग्रामर को स्टेप टाइप के बारे में बताते हैं। कुछ चरण उप चरणों की अनुमति देते हैं, अन्य चरण इसकी अनुमति नहीं देते हैं, साथ ही कुछ चरण प्रोग्रामर के लिए टिप्पणियों से अधिक नहीं हैं। स्टेप्स ट्री प्रोग्रामर को दो आयाम देता है जहां नोड और दूसरे नोड के बीच संबंध बगल में हो सकता है या इसमें शामिल होता है जहां प्रोग्रामर डेप्थ-फर्स्ट या विड्थ-फर्स्ट जा सकता है जब वह स्टेप्स ट्री के साथ इंटरैक्ट करता है।

प्रोग्रामर एक ही समय में चरणों/नोड्स के समूह पर एक ऑपरेशन करने के लिए आयाम का उपयोग कर सकता है (ऊपर ले जाएँ / नीचे ले जाएँ / कट / कॉपी / डिलीट करें)।

उपयोगकर्ता इंटरफ़ेस डिज़ाइन करने के लिए प्रोग्रामर प्रपत्र डिज़ाइनर का उपयोग कर सकता है।

प्रोग्रामर उस समय आयाम का उपयोग कर सकता है जहां वह जान सकता है कि प्रत्येक चरण (दिनांक और समय) कब बनाया गया है और विकास प्रक्रिया के दौरान किसी भी बिंदु पर केवल चरणों को देखने के लिए समय आयाम के साथ आगे बढ़ सकता है।

लक्ष्य डिज़ाइनर के अंदर, उपयोगकर्ता विज़ुअल घटकों का चयन करने के लिए माउस या कीबोर्ड का उपयोग कर सकता है और स्टेप्स ट्री में नए चरण उत्पन्न कर सकता है। माउस का उपयोग करके हम उपयोग के लिए तैयार घटकों को देखने के लिए पर्यावरण का पता लगा सकते हैं। कंपोनेंट का नाम टाइप करके कीबोर्ड का उपयोग करके, प्रोग्रामर किसी भी कंपोनेंट को जल्दी से प्राप्त कर सकता है और उसका उपयोग करना शुरू कर सकता है।

विशेषताएं

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

दृश्य भाषाएँ
PWCT दृश्य प्रोग्रामिंग भाषा घटकों को अगली श्रेणियों में वर्गीकृत किया गया है
 * CPWCT: दृश्य घटक जो C प्रोग्रामिंग भाषा में स्रोत कोड उत्पन्न करते हैं।
 * PythonPWCT: दृश्य घटक जो Python प्रोग्रामिंग भाषा में स्रोत कोड उत्पन्न करते हैं।
 * हार्बरपीडब्ल्यूसीटी: दृश्य घटक जो हार्बर प्रोग्रामिंग भाषा में स्रोत कोड उत्पन्न करते हैं।
 * सुपरनोवा पीडब्ल्यूसीटी : दृश्य घटक जो सुपरनोवा प्रोग्रामिंग भाषा में स्रोत कोड उत्पन्न करते हैं।
 * C#PWCT: दृश्य घटक जो C# प्रोग्रामिंग भाषा में स्रोत कोड उत्पन्न करते हैं।

आलोचना

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

यह भी देखें

 * ऐलिस (सॉफ्टवेयर)
 * लैब व्यू
 * लावा (प्रोग्रामिंग भाषा)
 * कार्यक्रम
 * स्क्रैच (प्रोग्रामिंग भाषा)
 * दृश्य प्रोग्रामिंग भाषा

अग्रिम पठन

 * Fayed, Al-Qurishi, Alamri, et al. (2020) PWCT: a novel general-purpose visual programming language in support of pervasive application development, Springer
 * Fayed, Al-Qurishi, Alamri, Aldariseh (2017) PWCT: visual language for IoT and cloud computing applications and systems, ACM
 * Fayed (2017) General-Purpose Visual Language and Information System with Case-Studies in Developing Business Applications, King Saud University
 * Fayed (2013) Using C#.NET through Programming Without Coding Technology, Code Project
 * Fayed (2013) Using Python inside Programming Without Coding Technology, Code Project
 * Fayed (2013) The Time Machine and the PWCT Visual Programming Language, Code Project