2008-10-28 12 views
6

मैंने ZX81 पर बेसिक में प्रोग्रामिंग शुरू किया, फिर BASICA, GW-BASIC, और QBasic। मैं सी (आह, टर्बो सी 3.1) पर चले गए, मुझे शायद ही कभी पता था ...)लुआ और पायथन के साथ एम्बेड करने योग्य, क्या मूलभूत स्थान है?

जब मैंने माइक्रोकंट्रोलर में शुरुआत की, तो मैंने लंबैक्स से BASIC Stamp के साथ regressed। हालांकि, मूलभूत/भयानक था क्योंकि यह समझना इतना आसान था और गलती करने में इतना मुश्किल था। मैं असेंबली और सी में चले गए क्योंकि मुझे अतिरिक्त शक्ति (गति, क्षमता, संसाधन इत्यादि) की आवश्यकता थी, लेकिन मुझे पता है कि अगर बार बहुत अधिक था तो बहुत से लोग प्रोग्रामिंग माइक्रोकंट्रोलर में कभी नहीं पहुंच पाएंगे।

मैं अपने स्वयं के चिप बेसिक व्याख्याकर्ता को बनाने के लिए खुजली ले रहा हूं, लेकिन मुझे आश्चर्य है कि अब बेसिक की आवश्यकता है कि लुआ और पायथन आसानी से एम्बेड किए जा सकें, और बस बेसिक के रूप में पहुंचने योग्य हैं।

  • क्या, यदि कोई है, तो बेसिक अन्य भाषाओं में फायदे हैं?
  • यह अभी भी क्यों है?
  • यदि मैं एक दुभाषिया के साथ एक सामान्य उद्देश्य माइक्रोकंट्रोलर बोर्ड बनाने का निर्णय लेता हूं, तो क्या बीएएसआईसी का संस्करण बनाने का कोई कारण है?

अन्य भाषाओं में से कई को मृत माना जाता है, लेकिन बेसिक बस लटकता रहता है।

उत्तर

6

एक वास्तुकला के रूप में, करने के लिए मुख्य दावा बेसिक की प्रसिद्धि यह है कि आप बेसिक दुभाषियों को बहुत छोटा कर सकते हैं - केवल कुछ केबी। डीजी नोवा के दिनों में यह एक जीत थी क्योंकि आप बिजनेस बेसिक जैसे सिस्टम का उपयोग 64K रैम (या इससे भी कम) वाली मशीन पर बहुउद्देश्यीय अनुप्रयोग बनाने के लिए कर सकते थे।

बेसिक (विशेष रूप से वीबी) एक विरासत प्रणाली है और इसमें एक बड़ा मौजूदा कोड-बेस है। तर्कसंगत रूप से वीबी वास्तव में एक भाषा है (कुछ COM पर एक पतली रैपर कहेंगे) जिसमें मूलभूत सिंटैक्स है। इन दिनों, मुझे भाषा के लोगों की परिचितता के अलावा भाषा को रखने और मौजूदा कोड बेस को बनाए रखने के लिए भाषा को रखने का कोई कारण नहीं है। मैं निश्चित रूप से नए विकास की वकालत नहीं उस में (ध्यान दें कि VB.Net वास्तव में बुनियादी नहीं है, लेकिन सिर्फ एक वीबी की तरह वाक्य रचना है। प्रकार प्रणाली जिस तरह से वीबी का था कि में टूटी नहीं है।)

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

आधुनिक वास्तुकला बहुत जटिल हैं और सीखने के लिए एक बड़ा कूबड़ है। आप लोगों को इस बात पर भरोसा कर सकते हैं कि बच्चे बेसिक और 8-बिट कंप्यूटर के दिनों में आसानी से प्रोग्राम कैसे सीख सकते हैं और मुझे लगता है कि तर्क में कुछ योग्यता है। वहां एक छेद छोड़ा गया है जो प्रोग्रामिंग को इतना कठिन बनाने में सक्षम बनाता है। खिलौने की भाषाएं यहां ज्यादा उपयोग नहीं हैं - प्रोग्रामिंग के लिए आकर्षक होने के लिए आपको सीखने वाली भाषा के साथ कुछ प्रासंगिक बनाने की इच्छा रखना संभव है।

इससे ऐसी भाषा की समस्या होती है जो बच्चों के लिए सीखना आसान है लेकिन फिर भी उन्हें प्रासंगिक प्रोग्राम (या यहां तक ​​कि गेम) लिखने की अनुमति मिलती है जो वे वास्तव में चाहते हैं। इसे व्यापक रूप से प्रासंगिक माना जाना चाहिए।

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

0

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

मैं सबसे महत्वपूर्ण कारण कहूंगा कि बेसिक अभी भी विजुअल बेसिक है। 90 के दशक में लंबे समय तक, वीबी एक सी ++ ट्यूरिंग टैरपिट में से किसी एक में गिरने के बिना विंडोज़ के लिए जीयूआई, कॉम और डीबी कोड लिखने का एकमात्र तरीका था। [शायद डेल्फी भी एक अच्छा विकल्प था, लेकिन दुर्भाग्यवश यह कभी भी वीबी के रूप में लोकप्रिय नहीं हुआ]। मुझे लगता है कि यह इस वीबी और वीबीए कोड की वजह से है जिसका अभी भी उपयोग किया जा रहा है और यह भी बनाए रखा है कि बेसिक अभी भी मर चुका नहीं है।

उस ने कहा, मैं कहूंगा कि बेसिक दुभाषिया (यहां तक ​​कि एलएलवीएम या कुछ समान का उपयोग कर संकलक भी) लिखने के लिए आज बहुत अच्छा तर्क है। यदि आप QBasic जैसा कुछ लागू करते हैं तो आपको एक साफ, सरल उपयोग करने में आसान और तेज़ भाषा मिल जाएगी। आपको किसी भी भाषा डिजाइन के मुद्दों को हल करने की आवश्यकता नहीं होगी और सबसे अच्छा हिस्सा यह है कि लोग आपकी भाषा को पहले ही जानते होंगे।

1

अच्छा प्रश्न ...

मूल रूप से (sic!), मैं कोई जवाब नहीं है। मैं बस इतना कहूंगा कि लुआ सीखना बहुत आसान है, संभवतः बेसिक के रूप में आसान (जो मेरी पहली भाषाओं में से एक था, मैंने 8-बिट कंप्यूटरों पर बोलीभाषाओं का उपयोग किया ...), लेकिन अधिक शक्तिशाली है (ओओ को अनुमति देना या कार्यात्मक शैलियों और यहां तक ​​कि उन्हें मिश्रण) और किसी भी तरह कठोर (कोई goto ...)।

मुझे अच्छी तरह से पाइथन नहीं पता है, लेकिन जो मैंने पढ़ा है, वह लूआ से आसान, शक्तिशाली और सख्त है।

इसके अलावा, दोनों "मानक" वास्तविक रूप से हैं, यानी। बेसिक के विपरीत कोई भिन्नताएं नहीं हैं (विभिन्न संस्करणों के बगल में) जिनमें कई प्रकार हैं।

दोनों ने ध्यान से वीएम, कुशल, (अधिकतर) बेकार तैयार किया है। यदि आप अपना खुद का व्याख्याता बनाते हैं, तो आपको या तो मौजूदा वीएम लेना चाहिए और मूल स्रोत से इसके लिए बाइटकोड उत्पन्न करना चाहिए, या अपना खुद का बनाना चाहिए। ज़रूर मज़ा सामान है, लेकिन समय लेने वाली और कीड़े होने का खतरा ...

तो, मैं तो बस जाने हैं बेसिक एक अच्छा सेवानिवृत्ति है ... :-P

पुनश्च .: क्यों उस पर लटक रहा है? शायद माइक्रोसॉफ्ट उस के लिए विदेशी नहीं है ... (वीबी, वीबीए, वीबीस्क्रिप्ट ...)
कुछ दर्शकों के साथ भी बहुत सारी बोलीभाषाएं हैं (रीयलबासिक, डार्कबासिक, आदि)।

1

रॉकिंग कुर्सियों पर दो पुराने टाइमर की तरह लगने के जोखिम पर, मुझे जोर से कहना है कि "बच्चे आज बेसिक की सराहना नहीं करते हैं" और फिर विरोधाभासी रूप से कहते हैं, "वे नहीं जानते कि उन्हें यह कितना अच्छा लगा है। "

बेसिक सबसे बड़ी ताकत हमेशा इसकी समझदारी थी। यह कुछ ऐसा था जो लोग प्राप्त कर सकते थे। अकादमिक और भाषा डेवलपर्स द्वारा इसे लंबे समय से अनदेखा किया गया था।

जब आप बेसिक को कार्यान्वित करना चाहते हैं, तो मुझे लगता है कि आप लाइन-क्रमांकित बेसिक के बारे में बात नहीं कर रहे हैं, लेकिन एक संरचित रूप है। इसके साथ समस्या यह है कि जैसे ही आप संरचित प्रोग्रामिंग - फ़ंक्शन में आगे बढ़ना शुरू करते हैं, ' नहीं हो सकता है, मुझे बस उस स्थान पर जाना है?', आदि - यह वास्तव में अस्पष्ट है कि क्या फायदे हैं, यदि कोई है, तो बेसिक होगा पाइथन कहो, कहो।

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

यदि वास्तविक प्रश्न "अच्छा है, तो मैं एक दुभाषिया को लागू करना चाहता हूं और इसलिए यह निवेश पर वापस आने के लिए नीचे आता है," तो यह एक व्याकरण की समस्या बन जाती है जो वास्तव में लागू करने में आसान है। मैं सुझाव दूंगा कि बेसिक में वास्तव में उस संबंध में कई फायदे नहीं हैं (जब तक कि आप वास्तव में लाइन संख्याओं और एक बहुत सीमित व्याकरण पर वापस आएं)।

संक्षेप में, मैं नहीं सोचता कि आपको मूलभूत दुभाषिया में अपना प्रयास निवेश करना चाहिए।

+0

मैं यह सुझाव देना चाहता हूं कि पार्सिंग इन दिनों एक कंपाइलर/व्याख्या लिखने में वास्तव में एक बड़ी समस्या नहीं है। कठिन भाग सभी जटिल अर्थशास्त्र हैं। पाइथन को बंद करने, जेनरेटर, बंदर पैचिंग की आवश्यकता होगी - सभी बहुत अच्छे, लेकिन एक कंट्रोल दर्द पर यू कंट्रोलर पर सही हो। – Pramod

+0

पर्याप्त मेला: यदि सवाल वास्तव में है "क्या पाइथन लागू करना आसान है?" तो जवाब स्पष्ट रूप से 'नहीं, इतना नहीं है।' मैंने सवाल उठाया 'क्या बेसिक जैसी भाषा न्यूबीज के लिए पाइथन जैसी भाषा के लिए बेहतर है?' –

10

[यह वास्तव में उससे अधिक नकारात्मक लग रहा है। मैं नहीं कह रहा हूं बेसिक सभी बुराई की जड़ है, others have said that। मैं कह रहा हूं कि यह एक विरासत है जिसे हम पीछे छोड़ सकते हैं।]

"क्योंकि यह समझना इतना आसान था और गलती करने में इतना मुश्किल था" यह निश्चित रूप से बहस योग्य है। मुझे पूरी तरह से अपारदर्शी बुनियादी के साथ कुछ बुरे अनुभव हुए हैं। व्यावसायिक सामान - वाणिज्यिक उत्पाद - पूरी तरह से भयानक कोड। काम छोड़ना और गिरा देना पड़ा।

"क्या, यदि कोई है, तो फायदे अन्य भाषाओं के आधार पर फायदे हैं?" कोई नहीं, वास्तव में।

"यह अभी भी क्यों है?" दो कारण: (1) माइक्रोसॉफ्ट, (2) सभी आईटी विभाग जिन्होंने वीबी करना शुरू किया और अब वीबी विरासत कोड की लाखों लाइनें हैं।

"अन्य भाषाओं में से कई को मृत माना जाता है ..." हां। मूलभूत रूप से कोबोल, पीएल/आई और आरपीजी के साथ विरासत है जो कभी-कभी मूल्य की तुलना में अधिक लागत होती है। लेकिन" यदि यह तोड़ नहीं है तो इसे ठीक न करें "बड़ी आईटी की नीति, वहां वे बैठे, संसाधनों को चूसना जो इसे आसानी से बनाए रखने के लिए कुछ छोटे, सरल और सस्ता के साथ बदल सकते हैं। इसके अलावा यह "असफल" नहीं है - यह सिर्फ असमान रूप से महंगा है।

30 वर्षीय कोबोल पुन: कार्य करने के लिए एक भयानक स्थिति है 2016 में हम 30 साल के एमएस बेसिक को देख रहे हैं, जिसे हम समझ नहीं सकते हैं, बिना जीना नहीं चाहते हैं, और यह तय नहीं कर सकते कि कैसे प्रतिस्थापित करना है।

"लेकिन मूल बस " पर लटकता रहता है ऐसा लगता है कि कुछ लोग बेसिक प्यार करते हैं। अन्य इसे अभी तक देखते हैं उसकी खराब डिजाइन की गई भाषा; इसका लाभ बाजार के शुरुआती होने और बड़े विक्रेताओं द्वारा समर्थित किया जा रहा है (आईबीएम, शुरुआत में)। खराब डिजाइन, शुरुआती बाजार केवल हमें विरासत के साथ छोड़ देता है जिसे हम दशकों से पीड़ित करेंगे।

मेरे पास अभी भी मेरा 1 9 65-संस्करण डार्टमाउथ बेसिक मैनुअल है। मैं अच्छे पुराने दिनों के लिए लंबा नहीं हूँ।

+0

ब्रावो - अच्छा जवाब। आईटी की गति को देखते हुए, हालांकि, क्षेत्र के भीतर इस तरह के कुटिल रूढ़िवाद परेशान कर रहा है ... – new123456

1

ठीक है, इन लोगों को वे इसे बंद कर पैसे कमा सकते हैं कि केवल मूल अभी भी मोबाइल की दुनिया में एक जगह नहीं है नहीं है कि लगता है कि लगता है, लेकिन यह भी:

http://www.nsbasic.com/symbian/

2

क्यों जुमेंटम को आज़माएं और देखें कि यह आपके लिए कैसे काम करता है?

http://jumentum.sourceforge.net/

यह, micrcontrollers

Elua परियोजना भी माइक्रोकंट्रोलर्स

http://elua.berlios.de/

2

बुनियादी बनी रहती है, विशेष रूप से स्टांप कार्यान्वयन में के लिए Lua है के लिए एक खुला स्रोत बुनियादी है, क्योंकि यह कम है सबसे अधिक आसान-से-सीखने वाली प्रोग्रामिंग भाषाओं की तुलना में स्तर। अधिकांश एम्बेडेड बेसिक कार्यान्वयन के लिए बेसिक निर्देशों को सीधे बहुत कम ओवरहेड के साथ सिंगल या मशीन निर्देशों के समूहों को मानचित्र पर मानचित्रित किया जाता है। लूआ या पायथन जैसे "उच्च स्तर" भाषाओं में लिखे गए एक ही कार्यक्रम उन माइक्रोक्रोनरोलर पर बहुत धीमी गति से चलेंगे।

पीएस: नामकरण समानता के बावजूद, पीबीएएसआईसी जैसे मूलभूत संस्करणों में, सामान्य बेसिक के साथ सामान्य रूप से बहुत कम है। वे बहुत अलग तरीकों से अलग हो गए हैं।

1

मैंने भी एक ZX81 पर शुरुआत की। लेकिन Tony Hoare ने कहा, बेसिक में प्रोग्रामिंग रोमन अंकों का उपयोग करके लंबे विभाजन करने की कोशिश कर रहा है।

अन्य भाषाओं बहुत मृत माना जाता है, लेकिन बुनियादी बस पर लटका रहता है।

दुख की बात है हाँ। मैं इसके लिए बिल गेट्स को दोषी ठहराता हूं ... बेसिक एक पुजारी के साथ एक स्ट्रेचर पर था जो इसके लिए आखिरी संस्कार कहता था, और फिर एमएस इसे वापस स्मॉलपॉक्स की तरह लाया।