लिस्प के बोलीभाषा लोगो प्रोग्रामिंग भाषा को सीखने के लिए एक उपकरण के रूप में डिजाइन किया गया था। इसकी विशेषताएं – इंटरैक्टिविटी, मॉड्यूलरिटी, एक्स्टेंसिबिलिटी, डेटा प्रकारों की लचीलापन – इस लक्ष्य से पालन करें।
अन्तरक्रियाशीलता
यद्यपि लोगो के कुछ संस्करण संकलित हैं, लेकिन इसे आम तौर पर एक व्याख्या की गई भाषा के रूप में लागू किया जाता है। इस दृष्टिकोण की अंतःक्रियाशीलता उपयोगकर्ता को व्यक्तिगत निर्देशों पर तत्काल प्रतिक्रिया प्रदान करती है, इस प्रकार डिबगिंग और सीखने की प्रक्रिया में सहायता करता है। त्रुटि संदेश वर्णनात्मक हैं। उदाहरण के लिए
fowad
I don’t know how to fowad
(शब्द फॉवाड एक आदिम नहीं है – लोगो में से एक शब्द में निर्मित – न ही एक प्रक्रिया जिसे आपने परिभाषित किया है।)
forward
Not enough inputs to forward
(अब जब आपने इसे सही ढंग से लिखा है, लोगो आगे शब्द जानता है, लेकिन आपका निर्देश नहीं चला सकता क्योंकि आगे अतिरिक्त जानकारी की आवश्यकता है।
forward 100
(लोगो खुश है। कोई त्रुटि संदेश नहीं है। कछुए १०० कदम आगे बढ़ता है।)
मॉड्यूलरिटी और एक्सटेंसिबिलिटी
लोगो कार्यक्रम आमतौर पर छोटी प्रक्रियाओं के संग्रह होते हैं। आम तौर पर, प्रक्रियाओं को उन्हें एक पाठ संपादक में लिखकर परिभाषित किया जाता है। प्रक्रिया के नाम के बाद विशेष शब्द का पालन किया जाता है। बाद की रेखाएं प्रक्रिया परिभाषा बनाती हैं। अंतिम सिग्नल शब्द जो आप समाप्त कर चुके हैं।
हमारे कछुए ग्राफिक्स उदाहरण में हमने एक वर्ग को आकर्षित करने की प्रक्रिया को परिभाषित किया
to square
repeat 4 [forward 50 right 90]
end
और इसे किसी अन्य प्रक्रिया के उपप्रसंचार के रूप में इस्तेमाल किया
to flower
repeat 36 [right 10 square]
end
इसी प्रकार, फूल कुछ बड़ा निर्माण इमारत हो सकता है
to garden
repeat 25 [set-random-position flower]
end
नहीं, सेट-यादृच्छिक-स्थिति एक आदिम नहीं है, लेकिन यादृच्छिक है और इसलिए सेटपोजिशन (या सेटपोज़ या सेटक्सी) है। या आप यादृच्छिक के साथ आगे और दाएं का उपयोग कर सेट-यादृच्छिक-स्थिति लिख सकते हैं।
लोगो प्रक्रिया को परिभाषित करने के बाद यह लोगो प्राइमेटिव्स की तरह काम करता है। वास्तव में, जब आप लोगो कार्यक्रमों को देखते हैं तो यह जानने का कोई तरीका नहीं है कि कौन से शब्द प्राइमेटिव हैं और जो उपयोगकर्ता परिभाषित नहीं हैं जबतक कि आप विशेष लोगो कार्यान्वयन को नहीं जानते। हमारी भाषा के नमूने में हमने प्रक्रिया से किसी आइटम से यादृच्छिक रूप से चयन करने के लिए प्रक्रिया का उपयोग किया, उदाहरण के लिए प्रक्रिया में।
to who
output pick [Sandy Dale Dana Chris]
end
लोगो पिक के कुछ संस्करणों में एक आदिम है जबकि दूसरों में आपको इसे स्वयं लिखना है। किसी भी मामले में कौन दिखता और काम करेगा।
लोगो आपको जटिल चरणों को छोटे चरणों में बनाने की अनुमति देता है। लोगो में प्रोग्रामिंग अपनी शब्दावली को जोड़कर किया जाता है, इसे नए शब्दों को शब्दों के संदर्भ में पढ़ा जाता है जो इसे पहले से ही जानता है। इस तरह से लोग बोली जाने वाली भाषा सीखने के तरीके के समान होते हैं।
लचीलापन
लोगो शब्दों और सूचियों के साथ काम करता है। एक लोगो शब्द वर्णों की एक स्ट्रिंग है। एक लोगो सूची शब्दों और सूचियों का एक आदेशित संग्रह है। संख्याएं शब्द हैं, लेकिन वे विशेष हैं क्योंकि आप उनके साथ अंकगणित जैसी चीजें कर सकते हैं।
कई प्रोग्रामिंग भाषाएं यह जानना चाहती हैं कि आप किस प्रकार का डेटा उपयोग करने का दावा करते हैं। यह कंप्यूटर के लिए चीजों को आसान बनाता है, लेकिन प्रोग्रामर के लिए कठिन है। कुछ संख्याओं को जोड़ने से पहले आपको यह निर्दिष्ट करना होगा कि वे पूर्णांक या वास्तविक संख्याएं हैं या नहीं। कंप्यूटर को ऐसी चीजों को जानने की जरूरत है। लेकिन ज्यादातर लोग इस बारे में नहीं सोचते हैं इसलिए लोगो आपके लिए इसका ख्याल रखता है। जब अंकगणित लोगो करने के लिए कहा जाता है तो यह करता है।
print 3 + 4
7
print 3 / 4
.75
यदि आप लोगो से अपरिचित हैं लेकिन अन्य प्रोग्रामिंग भाषाओं में काम करते हैं, तो निम्न अनुक्रम आपको आश्चर्यचकित कर सकता है:
print word “apple “sauce
applesauce
print word “3 “4
34
print 12 + word “3 “4
46
यहां एक पुनरावर्ती प्रक्रिया है जो तथ्यों की गणना करती है:
to factorial :number
if :number = 1 [output 1]
output :number * factorial :number – 1
end
print factorial 3
6
print factorial 5
120
शब्दों की सूची को उलट करने की प्रक्रिया यहां दी गई है:
to reverse :stuff
ifelse equal? count :stuff 1
[output first :stuff]
[output sentence reverse butfirst :stuff first :stuff]
end
print reverse [apples and pears]
pears and apples
आप ब्रायन हार्वे के दिलचस्प लोगो नमूना को भी देखना चाहेंगे।
संवर्द्धन
सिर्फ चित्रित विशेषताएं लोगो के सभी संस्करणों के लिए आम हैं। कुछ लोगो कार्यान्वयन में उन्नत भाषा सुविधाएं शामिल हैं।
लबादा के लिए ऑब्जेक्ट लोगो नामक एक ऑब्जेक्ट उन्मुख लोगो था।
माइक्रोवर्ल्ड लोगो में मल्टी-टास्किंग शामिल है ताकि कई स्वतंत्र प्रक्रियाएं एक साथ चल सकें। एक ही क्षमता नियंत्रण लैब, एक लेगो लोगो उत्पाद के लिए सॉफ्टवेयर में है। स्टारलोगो एक और अधिक व्यापक समानांतर लोगो है।
एक पारंपरिक लोगो में कछुए के लिए आदेश
repeat 9999 [forward 1 right 1]
निष्पादित करने में कुछ समय लगेगा। निर्देष
repeat 9999 [forward 1 right 1] print “HELLO
कछुए चलने के बाद हेल्लो शब्द प्रकट होगा।
माइक्रोवर्ल्ड लोगो टाइपिंग में
launch [repeat 9999 [forward 1 right 1]] print “HELLO
कछुए जा रहा शुरू होगा। जैसे ही पहली प्रक्रिया लॉन्च की गई है, हेल्लो शब्द दिखाई देगा। या
forever [forward 1 right 1] print “HELLO
एक प्रक्रिया शुरू करेगी जो तब तक जारी रहेगी जब तक आप इसे रोक नहीं देते। फिर, कछुए की प्रक्रिया शुरू होने के तुरंत बाद हेल्लो शब्द दिखाई देगा।
Source: http://el.media.mit.edu/logo-foundation/what_is_logo/logo_programming.html
COPYRIGHT ©2014 LOGO FOUNDATION. ALL RIGHTS RESERVED