2010-09-07 13 views
12

वस्तुतः हर भाषा जो मुझे पता है वह मूल रूप से थीम पर एक भिन्नता है: आप चर और फ़ंक्शन बनाते हैं, फिर सशर्त और अन्य संरचनाओं का उपयोग करके उन्हें कुशल बनाते हैं। मैं कार्यात्मक प्रोग्रामिंग को समझता हूं और जैसे 'पारंपरिक' भाषाओं से कुछ अलग है, लेकिन नीचे वे लगभग समान हैं। आप अभी भी चर के साथ काम कर रहे हैं (कुछ हद तक, भले ही वे अपरिवर्तनीय हैं और ऐसे), और कार्यों को बनाते हैं।

क्या कोई ऐसी भाषा या प्रणाली है जो अब हम जो भी उपयोग करते हैं उससे पूरी तरह दूर हो जाती है और इसका एक अलग दृष्टिकोण है?क्या कोई प्रोग्रामिंग प्रतिमान चर और कार्यों में हेरफेर करने के आधार पर आधारित नहीं है?

+0

आप कुछ ऐसा चाहते हैं जिसमें कोई फ़ंक्शन नहीं है और परिणाम संग्रहीत करने का कोई तरीका नहीं है? – foraidt

+0

आपको http://en.wikipedia.org/wiki/Programming_paradigm –

+0

@mxp पर नहीं देखना चाहिए - नहीं, मैं जो पूछ रहा हूं वह यह है कि क्या हमारे वर्तमान सिस्टम का विकल्प है या नहीं। जाहिर है, मूल्यों को स्टोर करने का एक तरीका होगा, मैं सिर्फ यह पूछ रहा हूं कि इसके लिए कोई और दृष्टिकोण है या नहीं। – bennybdbc

उत्तर

8

प्रति भाषा नहीं है, लेकिन analog computers कुछ लोकप्रिय डिजिटल कंप्यूटरों से काफी अलग हैं।

+0

यह उत्तर पोस्टर के "विषय पर भिन्नता" परिभाषा से बाहर होने के नजदीकी है। –

2

http://en.wikipedia.org/wiki/Programming_paradigm और दाईं ओर दिए गए लिंक बॉक्स में जुड़े सभी पृष्ठ पढ़ें। इस पर निर्भर करते हुए कि आप इसे कैसे देखते हैं, कुछ अलग हैं या वे मूल रूप से वही हैं।

6

ठीक है, Piet है। यह बहुत अलग है। (नीचे पीट में हैलो वर्ल्ड है।) फिर भी, आप तर्क दे सकते हैं कि आप डेटा संरचना (इस मामले में एक स्टैक) से निपट रहे हैं जिसमें कई पूर्णांक हैं और फिर आप स्टैक से चीजों को जोड़ रहे हैं और निकाल रहे हैं, मूल्यों में हेरफेर करना, इत्यादि। वास्तव में यह अभी भी वही है।

alt text

+0

यह बहुत अच्छा लग रहा है ... – pop850

1

बाहर चेक Forth, यह एक नहीं बल्कि अलग प्रणाली जहां काफी सब कुछ एक ढेर से छेड़छाड़ के बारे में है। यह लगभग एक बहुत ही प्राचीन वीएम की तरह है।

8

ग्राफिकल भाषाओं में कई प्रयास किए गए हैं। से सिस्टम नेशनल इंस्ट्रूमेंट्स शायद सबसे सफल है। यह डेटा प्रवाह के डेटा का उपयोग करता है जो डेटा पर कार्य करता है।

एक ग्राफिकल भाषा का एक और प्रयास UML है। मुझे लगता है कि जूरी इस पर बाहर है। मानकों की समिति में शामिल होने से पहले यह शायद एक अच्छा विचार था और इसे हर किसी के लिए कुछ में बदल दिया।

इलेक्ट्रो-मैकेनिकल सिस्टम की एक बड़ी मात्रा PLC एस द्वारा नियंत्रित की जाती है, जो ladder logic के साथ प्रोग्राम किए गए हैं। यह अनिवार्य रूप से अत्यधिक विश्वसनीय परिमित राज्य मशीन बनाने के लिए एक अनुशासन है, लेकिन प्रक्रियात्मक भाषाओं के लिए बहुत कम समानता भालू है।

फिर गूढ़, अस्पष्ट और वैकल्पिक भाषाएं हैं जो बड़े पैमाने पर लोगों को याद दिलाने के अलावा कोई व्यावहारिक उद्देश्य नहीं देती हैं कि ट्यूरिंग-पूर्ण की आवश्यकता नहीं है कि भाषा समझदार हो। कुछ इस श्रेणी में ट्यूरिंग मशीन खुद ही डाल सकते हैं, लेकिन BrainF*ck, और Piet वास्तव में इस भीड़ में मेरे लिए खड़े हो सकते हैं।

गूढ़ भाषा whenever भी एक दिलचस्प अभ्यास है जिसमें इसका कोई प्रवाह नियंत्रण नहीं है।

संपादित करें: मैं लगभग Befunge भूल गया था। इसका स्रोत टेक्स्ट ASCII वर्णों का ग्रिड है, जहां प्रत्येक सेल एक ऑपोड है। निष्पादन चार दिशाओं में से किसी एक में चलता है, और इसलिए चार अलग-अलग अनुक्रमों में एक एकल ऑपोड के माध्यम से प्रवाह करना संभव है। यह एक और गूढ़ भाषा है, और इसे एक संकलक लिखने के लिए जितना संभव हो सके (1 99 3 में) के रूप में डिजाइन किया गया था। ऐसा नहीं है कि वास्तव में किसी ने इसे करने से रोक दिया है।

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

सभी गूढ़ भाषाओं की दादाजी INTERCAL है जो 1 9 72 में बनाई गई थी। यह एक ऐसी भाषा है जो सतही रूप से कोबोल जैसा दिखता है, लेकिन इसके कई quirks के बीच यह आवश्यक है कि कार्यक्रम जारी रखने के क्रम में पर्याप्त विनम्र (लेकिन बहुत विनम्र नहीं) क्रियान्वित। विनम्रता के समर्थन में, PLEASE DODO का विनम्र रूप है। एक उल्लेखनीय विस्तार COME FROM कथन है, जो नामित स्थान से यहां पर प्रवाह का कारण बन सकता है।

+2

+1 पीट – hydrogen

+0

@hydrogen का उल्लेख करने के लिए +1, जबकि यह निश्चित रूप से ऐसी भाषा नहीं है जिसमें मैं कोड लिखूंगा, यह निश्चित रूप से सुंदर है। – RBerteig

+0

ग्रेट उत्तर, धन्यवाद। सीढ़ी तर्क निश्चित रूप से दिलचस्प लग रहा है। – bennybdbc

15

Functional Programming की उच्च हाथ वाली बर्खास्तगी के बावजूद, मुझे लगता है कि आपको इसे फिर से देखने की आवश्यकता है, केवल पुष्टि के पूर्वाग्रह का उपयोग करने के बजाय इसे "अधिक से अधिक" के रूप में खारिज करने के लिए। एक कार्यात्मक शैली में कोड लिखना imperative style में कोड लिखने से गहराई से अलग है। यदि यह आप के लिए काफी अलग नहीं है, फिर भी, क्यों नहीं इन ?:

  • Logic programming में से किसी पर एक नज़र के रूप में Prolog और (IIRC) Mercury जैसी भाषाओं द्वारा typified ले।
  • ConcatenativeForth जैसी भाषाएं बहुत trippy हैं।
  • Function-level programming (कार्यात्मक के विपरीत!) चर से छुटकारा पाएं यदि यह गणना के बारे में आपको अपमानित करता है। J इन दिनों इस क्षेत्र में आपकी एकमात्र पसंद है।
  • Array programming उपर्युक्त से काफी निकटता से संबंधित है। इस के क्लासिक उदाहरण के लिए APL पर एक नज़र डालें (हालांकि J और K दोनों में इस के निर्माण के तत्व हैं)।

असल में, बस programming paradigms उपलब्ध के दर्जनों में से किसी को देखो और पुष्टि पूर्वाग्रह के माध्यम से समझ और ज्ञान के बजाय बर्खास्तगी के लिए वर्णन पढ़ें। आप "अलग" की अस्पष्ट परिभाषा के लिए पर्याप्त रूप से अलग दिखाई देने वाले प्रत्येक के लिए एक भाषा सीखें और मज़े करें।

+0

+1 अच्छा जवाब। सिर्फ रिकॉर्ड के लिए, मैं अपने प्रश्न में कार्यात्मक प्रोग्रामिंग नहीं डाल रहा था, मैं बस अन्य जवाब प्राप्त करना चाहता था। – bennybdbc

+0

मुझे नहीं लगता था कि आप इसे नीचे डाल रहे थे। मैंने सोचा कि आप इसे अवैध आधार पर खारिज कर रहे थे। ;) –

+0

"हाई-हाथ बर्खास्तगी" और एक पुट-डाउन के बीच क्या अंतर है? वास्तव में, टैट ने * कार्यात्मक प्रोग्रामिंग को बर्खास्त नहीं किया था और आपका जवाब उसे समझने में कठोर है कि वह जो पढ़ता है उसे समझने या सीखने के आरोप में। उनके प्रश्न के पैरामीटर पूरी तरह वैध हैं और उनके द्वारा उपयोग की जाने वाली शर्तें सही हैं। दोनों कार्यात्मक और ओओ प्रतिमान समान हैं * जैसा कि वे चर और कार्यों * की घोषणा की विशेषता रखते हैं, जो उनके प्रश्न से संबंधित है। –

3

यह इस बात पर निर्भर करता है कि आप किस बारे में पूछ रहे हैं, लेकिन उत्तर शायद नहीं है।

कारण यह है कि सभी मौजूदा कंप्यूटर भाषाएं Turing Complete हैं, ठीक है, ट्यूरिंग पूर्ण है। इसका मतलब है कि इनमें से किसी भी भाषा को इस समूह के किसी अन्य व्यक्ति द्वारा अनुकरण किया जा सकता है। फिर किसी भी प्रोग्रामिंग भाषा में एक कंपाइलर या दुभाषिया हो सकता है जो हमारे वर्तमान कंप्यूटर (सन्निकटन) पर चल सकता है। इन वास्तुकला में कोड और डेटा की अवधारणा है।

तो, यदि आपको लगता है कि कार्यात्मक प्रोग्रामिंग और अनिवार्य ('पारंपरिक') प्रोग्रामिंग समान हैं क्योंकि वे कंप्यूटर पर चलते हैं, तो कोई अन्य विकल्प नहीं है।

कोड और डेटा फ़ंक्शंस और डेटा संरचनाओं (चर) में अनुवाद करते हैं। वे विविधता की अनुमति देते हैं:

  1. कार्यात्मक प्रोग्रामिंग के लिए अपरिवर्तनीयता मुख्य कारक है।
  2. कोड और डेटा के बीच अंतर धुंधला किया जा सकता है। उदाहरण के लिए homoiconicity का अर्थ है कि एक फ़ंक्शन डेटा संरचना के रूप में उपयोग किया जा सकता है। लिस्प भाषाएं देखें।
  3. इससे संबंधित self-modifying code है।

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

  1. तर्क प्रोग्रामिंग:

    तरीके एक भाषा को व्यक्त करने के अंतिम समूह उन एक अनुकूलन या एक डेटा संरचना पर खोज प्रक्रिया के रूप में मॉडलिंग की कर रहे हैं।

  2. Evolutionary Computation मानक प्रोग्रामिंग भाषा में प्रोग्राम आउटपुट करता है। लेकिन संभावित रूप से एक वर्णनात्मक भाषा लिखी जा सकती है जिसे परिणामस्वरूप प्रोग्राम ढूंढने और इसे निष्पादित करने के लिए "निष्पादित" किया जा सकता है। इसका उपयोग कई मशीन सीखने के तरीकों के लिए भी किया जा सकता है।

यह सब कुछ अकादमिक है। मेरी सलाह यह है कि अलग-अलग द्वारा आपका क्या मतलब है इसकी पहचान करने का प्रयास करें। संभावना है कि कार्यात्मक प्रोग्रामिंग आपके उद्देश्यों के लिए काफी अलग है।

संपादित करें: मैंने अभी अभिव्यक्ति का उपयोग देखा है "सशर्त और अन्य संरचनाओं का उपयोग करके उन्हें कुशल बनाना"। नियंत्रण प्रवाह संरचनाओं को कोड और डेटा के लिए अलग-अलग संरचनाओं की आवश्यकता नहीं होती है। उदाहरण के लिए, एक सशर्त if को filter के रूप में व्यक्त किया जा सकता है या एक लूप को map के रूप में व्यक्त किया जा सकता है। उच्च आदेश कार्यों और आलसी मूल्यांकन को देखते हुए आप केवल if या for के बिना कार्य कर सकते हैं, केवल फ़ंक्शंस और डेटा संरचनाओं का उपयोग कर सकते हैं। इसका मतलब यह नहीं है कि आप वास्तव में ऐसा करने की क्षमता खो देते हैं। यदि आप ऐसा कुछ देखना चाहते हैं तो आपको Haskell में रुचि हो सकती है।

इसके अलावा, जिन भाषाओं में देखने के लिए अन्य उत्तर देखने ऐसे चित्रमय भाषाओं और esortic भाषाओं के रूप में, अलग, जबकि अभी भी नियंत्रण structs दृष्टिकोण के साथ डाटा संरचनाओं के लिए आवेदन किया कार्यों का उपयोग कर।

+0

आपके दूसरे पैराग्राफ पर एक टिप्पणी: ट्यूरिंग पूर्णता * अनुक्रमिक * कंप्यूटिंग की विशेषता है। लेकिन हमारे पास समेकन के लिए ऐसा कोई सार्वभौमिक मॉडल नहीं है: समवर्ती भाषाओं (विशेष रूप से मॉडल वितरण वाले) की अलग-अलग अभिव्यक्ति होती है। – Gilles

+0

@Giles: क्या आप एक समवर्ती भाषा का उदाहरण दे सकते हैं जो _more_ शक्तिशाली है कि ट्यूरिंग पूर्ण हो? या अगर मैंने आपको गलत समझा, तो _expressiveness_ से आपका क्या मतलब है? पीआई कैलकुस जैसे समवर्ती प्रोग्रामिंग के लिए मॉडल हैं। –

0

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

प्रतिमान आपको वह सार तत्व देते हैं जिन्हें आप ढूंढ रहे हैं। अच्छा ऑब्जेक्ट उन्मुख या कार्यात्मक कोड आपके द्वारा वर्णित कुछ भी नहीं दिखाई देगा। और आपको ऐसा करने के लिए भाषाओं की आवश्यकता नहीं है। मैंने सादे सी में लिखित महान ऑब्जेक्ट ओरिएंटेड कोड और सी ++ में कार्यात्मक कोड देखा है। हालांकि सही नौकरी के लिए सही भाषा का उपयोग करने में बहुत मदद मिलती है। दुर्भाग्य से चीजें भी दूसरी तरफ काम करती हैं। यदि आप प्रतिमानों को समझने के लिए समय नहीं लेते हैं तो भी आप योजना या स्मॉलटॉक में अनिवार्य कोड लिखेंगे।

3

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

10 INPUT "PASSWORD: ";A$ 
20 IF A$="PASSWORD" THEN GOTO 40 
30 PRINT "TRY AGAIN" : GOTO 10 
40 PRINT "WELCOME" 

MS-DOS कार्यक्रमों को एक ही कर रहे हैं::

20 साल पहले, कंप्यूटर प्रोग्राम का उपयोग "धारावाहिक" तर्क, एक मूल कार्यक्रम की तरह बनाए गए थे वे एक छलबल के लिए चलाने के लिए, तो उपयोगकर्ता इनपुट के लिए इंतज़ार कर, फिर फिर से चलाओ। यूनिक्स सिस्टम पर, यहां तक ​​कि यह एक मल्टीटास्किंग सिस्टम है, गेम बहुत समान है, एक से अधिक उपयोगकर्ता प्रोग्राम चला सकते हैं।

  • घटना पर ही आधारित सिस्टम:

    दो berakthrough लहर थे प्रोग्राम प्रवाह मौलिक (ईवेंट हैंडलर्स, कॉलबैक, श्रोता) बदल गया है;

  • वेब सिस्टम, विशेष रूप से AJAX: प्रोग्राम विभिन्न मशीनों (वितरित प्रसंस्करण, क्लाइंट-सर्वर आर्किटेक्चर, सेवा) पर चल रहा है।

इस बीच, संकलन और कार्यक्रम निर्माण बदल गया है, लेकिन मुझे लगता है कुछ कम:

  • metaprogramming (आईडीई आधारित कोड जनरेटर, पूर्वप्रक्रमक),
  • thecnique pluging,
  • गतिशील पुस्तकालयों ।

    • आभासी मशीनों (जावा),
    • दुभाषिया प्लेटफार्मों (PHP),
    • प्रणाली सेवाओं,
    • चौखटे,
    • पोर्टल:

    इसके अलावा, प्रोग्रामिंग लक्ष्य वातावरण बहुत कुछ बदल सिस्टम (ड्रूपल)।

    • लोटस नोट्स (ही भाषा है, और अब: जावा),
    • एमएस एक्सेल (विजुअल बेसिक)

    कुछ बड़ा, वसा कार्यक्रमों मंच बन गया।

मैं किसी भी नए laguage का उल्लेख नहीं था, लेकिन यह एक ही भाषा में भी बहुत अलग प्रोग्रामिंग हो सकता है, जैसे कि, जावा में दोनों मोबाइल फोन के लिए एक जे 2 एमई खेल लेखन और Oracle SQL के लिए संग्रहित प्रक्रियाओं लेखन,।

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

  • एक PHP स्क्रिप्ट SQL क्वेरी निष्पादित करती है, और एक टेम्पलेटिंग सिस्टम प्राप्त डेटा को तैयार HTML टेम्पलेट में सम्मिलित करता है।
  • एक PHP स्क्रिप्ट एसक्यूएल से एक्सएमएल में प्राप्त डेटा डालती है, और ब्राउज़र एक्सएसएलटी रूपांतरण का उपयोग करके इसे अंतिम HTML में परिवर्तित करता है।
  • एक जावास्क्रिप्ट ऐप PHP स्क्रिप्ट को डेटा अनुरोध करता है, जो एसएसएल परिणाम जेएसओएन प्रारूप में वापस भेजता है, तो जेएस ऐप अंतिम एचटीएमएल प्रस्तुत करता है।

क्या एचटीएमएल + एक्सएसएलटी एक प्रोग्रामिंग भाषा है? नहीं। क्या वे वही कार्य करते हैं जो PHP सर्वर-साइड करता है, या जेएस क्लाइंट-साइड पर करता है? Absolutelly। क्या यह एक आम मंच है? हां, सभी ब्राउज़र इसका समर्थन करते हैं।

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

(मैं यहाँ मेरा उत्तर विभाजित ; अगले भाग में, मैं आपको एक दिखाऊंगा, जिसे मैं थोड़ी देर के लिए खेल रहा हूं।)

0

Turing Machine पर अध्ययन करें। विकिपीडिया आलेख में कुछ सिमुलेटर सूचीबद्ध हैं जिन्हें आप प्रोग्राम चला सकते हैं। यह कम से कम सौंदर्यशास्त्र से अलग होगा।

1

जैसा कि मैंने कहा, आज बहुत सारे प्लेटफॉर्म या वातावरण हैं, जिन्हें प्रोग्राम किया जा सकता है। कुछ प्लेटफ़ॉर्म के मामले में, आप भाषाओं की लंबी सूची से चुन सकते हैं, उदा। माइक्रोसॉफ्ट .NET, जिसे विजुअलबासिक, सी # आदि में प्रोग्राम किया जा सकता है; अन्य मामलों, बहुत अलग प्लेटफॉर्म एक ही भाषा का उपयोग करते हैं, उदा। जावा, जिसका उपयोग एंड्रॉइड में किया जाता है, ओरेकल एसक्यूएल सर्वर संग्रहीत प्रक्रियाओं और इसी तरह।

इसके अलावा, गैर-प्रोग्रामिंग भाषाएं हैं, जो किसी डोमेन को कवर करती हैं या वे किसी प्रकार की कॉन्फ़िगरेशन को स्पष्ट करती हैं, जो वास्तविक प्रोग्रामिंग भाषा के रूप में बहुत सरल है, लेकिन प्रोग्रामिंग भाषा से बेहतर उपयोग की जा सकती है। एक उदाहरण: पीएलसी 'सीढ़ी तर्क प्रोग्रामिंग।

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

कंप्यूटर विज्ञान में, प्रवाह आधारित प्रोग्रामिंग (FBP) एक प्रोग्रामिंग प्रतिमान कि "ब्लैक बॉक्स की नेटवर्क के रूप में अनुप्रयोगों को परिभाषित करता है: चलो विकिपीडिया देखते हैं, Dataflow प्रोग्रामिंग (भी बुलाया प्रवाह आधारित प्रोग्रामिंग) क्या है "प्रक्रियाओं, जो संदेश पासिंग द्वारा पूर्वनिर्धारित कनेक्शन पर डेटा का आदान-प्रदान करते हैं, जहां कनेक्शन प्रक्रियाओं के लिए बाहरी रूप से निर्दिष्ट हैं। ये ब्लैक बॉक्स प्रक्रियाओं आंतरिक रूप से बदल के सामने आए बिना अलग अनुप्रयोगों के लिए फार्म पुन: कनेक्ट किया जा सकता है अंतहीन। एफबीपी इस प्रकार स्वाभाविक रूप से घटक उन्मुख है।

से: http://en.wikipedia.org/wiki/Flow-based_programming, भी http://en.wikipedia.org/wiki/Dataflow_programming

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

3 भाषा तत्व हैं।

  • घटक घोषणा

    सीएमपी: तुलना करें

यह एक घटक उदाहरण, "सीएमपी" नाम है, जो की तुलना का एक प्रकार है संदर्भित करता है।

  • संदेश परिभाषा

    src.out >> cmp.value cmp.gt >> dst1.in cmp.lt >> cmp.eq dst2.in >>

  • dst3.in

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

  • गुण

    (बंदरगाहों भेजने या संदेश प्राप्त करने के लिए घटकों की पिन बिंदु हैं। Wkikpedia लेख देखें।)

    cmp.base = 8

यह एक बंदरगाह के मूल्य को परिभाषित करता है घटक उदाहरण के।

(इन लाइनों को एकसाथ रखते हुए, हमें एक छोटा डेटाफ्लो प्रोग्राम मिलता है, जिसका अर्थ है: एक वैल्यू स्रोत से आता है, सीएमपी इसका मूल्य जांचता है, और इसे डीएसटी 1 तक पास करता है, अगर यह 8 से अधिक है, dst2, अगर यह 8 से कम है , और यह वास्तव में 8. है dst3 अगर)

मुझे लगता है, इस भाषा अपने मानदंडों को पूरा करती है, यह प्रक्रियात्मक नहीं है, वहाँ कोई पारंपरिक चर, कोई सबरूटीन, कोई चक्र रहे हैं।

यह हास्यास्पद कुछ गंभीर परियोजनाओं, जो dataflow प्रोग्रामिंग लागू करता है देखते हैं कि है, लेकिन वे भी यह उल्लेख नहीं है:

(मेरे पास कोई वेब पेज है मेरे डेटाफ्लो प्रोजेक्ट के लिए अभी तक, यह निर्माणाधीन है।)

डेटाफ्लो प्रोग्राम प्रदर्शित किए जा सकते हैं, या edi हो सकते हैं ग्राफ के रूप में टेड (SynthEdit देखें)।

+0

+1 महान उत्तर के लिए धन्यवाद, और सभी प्रयासों के लिए धन्यवाद। वेब पेज पूरा होने पर अपनी परियोजना में लिंक जोड़ें, यह बहुत दिलचस्प लगता है। – bennybdbc

+0

हम थोड़ा धीमा हो गए हैं, लेकिन हम इस पर काम कर रहे हैं http://homeaut.com/ – ern0

संबंधित मुद्दे